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})"