From f7c583b8067f2b617a3fee01e00c15d557234288 Mon Sep 17 00:00:00 2001 From: gahusb Date: Sat, 4 Apr 2026 12:47:14 +0900 Subject: [PATCH] =?UTF-8?q?music-lab:=20Suno=20SUCCESS=20=EC=9D=91?= =?UTF-8?q?=EB=8B=B5=20=EB=94=94=EB=B2=84=EA=B9=85=20=EB=A1=9C=EA=B9=85=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 실제 응답 구조 파악을 위해 keys/body 로깅 추가. Co-Authored-By: Claude Opus 4.6 --- music-lab/app/suno_provider.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/music-lab/app/suno_provider.py b/music-lab/app/suno_provider.py index a2d4944..15b0d16 100644 --- a/music-lab/app/suno_provider.py +++ b/music-lab/app/suno_provider.py @@ -261,11 +261,17 @@ def _poll_until_complete(task_id: str, suno_task_id: str) -> Optional[list]: elif status == "FIRST_SUCCESS": update_task(task_id, "processing", max(progress, 60), "첫 번째 트랙 완료, 두 번째 생성 중...") elif status == "SUCCESS": - # 완료 — sunoData 배열에서 트랙 추출 - tracks = data.get("sunoData") or data.get("data") or [] + # 완료 — 트랙 추출 (응답 구조 디버깅용 로깅) + logger.info("Suno SUCCESS response data keys: %s", list(data.keys())) + logger.info("Suno SUCCESS full data: %s", body) + tracks = data.get("sunoData") or data.get("data") or data.get("tracks") or [] + # data 자체가 리스트일 수도 있음 + if not tracks and isinstance(data, list): + tracks = data if tracks: return tracks - update_task(task_id, "failed", 0, "", error="Suno 생성 완료했으나 트랙 데이터 없음") + update_task(task_id, "failed", 0, "", + error=f"Suno 생성 완료했으나 트랙 데이터 없음 (keys: {list(data.keys())})") return None elif status in error_statuses: error_msg = data.get("errorMessage") or data.get("msg") or f"Suno 생성 실패 ({status})"