{"record":{"id":"e1e8e26eb2fcd14c","repo":"Comfy-Org/ComfyUI","slug":"sonilo-generation-error-code-message","errorCode":null,"errorMessage":"Sonilo generation error ({code}): {message}","messagePattern":"Sonilo generation error \\((.+?)\\): (.+?)","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"comfy_api_nodes/nodes_sonilo.py","lineNumber":207,"sourceCode":"                raw_line = await resp.content.readline()\n                if not raw_line:\n                    break\n\n                line = raw_line.decode(\"utf-8\").strip()\n                if not line:\n                    continue\n\n                try:\n                    evt = json.loads(line)\n                except json.JSONDecodeError:\n                    logger.warning(\"Sonilo: skipping malformed NDJSON line\")\n                    continue\n\n                evt_type = evt.get(\"type\")\n                if evt_type == \"error\":\n                    code = evt.get(\"code\", \"UNKNOWN\")\n                    message = evt.get(\"message\", \"Unknown error\")\n                    raise Exception(f\"Sonilo generation error ({code}): {message}\")\n                if evt_type == \"duration\":\n                    duration_sec = evt.get(\"duration_sec\")\n                    if duration_sec is not None:\n                        PromptServer.instance.send_progress_text(\n                            f\"Status: Generating\\nVideo duration: {duration_sec:.1f}s\",\n                            node_id,\n                        )\n                elif evt_type in (\"titles\", \"title\"):\n                    # v2m sends a \"titles\" list, t2m sends a scalar \"title\"\n                    if evt_type == \"titles\":\n                        titles = evt.get(\"titles\", [])\n                        if titles:\n                            title = titles[0]\n                    else:\n                        title = evt.get(\"title\") or title\n                    if title:\n                        PromptServer.instance.send_progress_text(\n                            f\"Status: Generating\\nTitle: {title}\",","sourceCodeStart":189,"sourceCodeEnd":225,"githubUrl":"https://github.com/Comfy-Org/ComfyUI/blob/1c6d8d45b3693bfbb32385b410d813a7fd6be216/comfy_api_nodes/nodes_sonilo.py#L189-L225","documentation":"Raised while consuming the Sonilo NDJSON event stream when an event of type \"error\" arrives. The stream itself is healthy (HTTP 200); the server reports an in-generation failure with a code and message which the node surfaces verbatim before any audio completes. Malformed JSON lines are skipped with a warning, so this only fires on well-formed error events.","triggerScenarios":"POST succeeds, streaming begins, and the server emits {\"type\":\"error\",\"code\":...,\"message\":...} mid-stream — e.g. content policy rejection, internal model failure, or quota exhaustion during music generation.","commonSituations":"Prompt content rejected by Sonilo moderation; account quota/credits exhausted mid-request; Sonilo model-side errors occurring after queueing.","solutions":["Read the code/message: content-related codes need a prompt change, quota codes need billing/top-up","Retry once for transient internal errors (UNKNOWN/code not matching known categories)","Check Sonilo account status and remaining credits"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    audio = await _sonilo_generate(...)\nexcept Exception as e:\n    msg = str(e)\n    if \"Sonilo generation error\" in msg:\n        code = msg.split(\"(\")[1].split(\")\")[0]\n        if code in (\"QUOTA\", \"RATE_LIMIT\"):\n            schedule_retry_later()\n        else:\n            raise ValueError(f\"Prompt rejected by Sonilo: {msg}\") from e\n    else:\n        raise","preventionTips":["Pre-check account quota before long music-generation runs","Keep prompts within Sonilo content guidelines to avoid mid-stream moderation errors","Handle stream errors separately from HTTP errors — they have different remedies"],"tags":["sonilo","streaming","ndjson","music-generation"],"backgroundTag":null,"analyzedSha":"1c6d8d45b3693bfbb32385b410d813a7fd6be216","analyzedAt":"2026-08-14T19:37:18.893Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}