Comfy-Org/ComfyUI · error · ValueError

Seed API error ({response.error.code}): {response.error.mess

Error message

Seed API error ({response.error.code}): {response.error.message}

What it means

Raised after a ByteDance Seed (LLM) responses-API call when the parsed response body carries a top-level error object. The error code and message from the BytePlus API are embedded verbatim, so this is the upstream service rejecting the request (auth, model access, bad parameter, quota) rather than a local validation failure.

Source

Thrown at comfy_api_nodes/nodes_bytedance_llm.py:231

        if video_inputs:
            content.extend(await _build_video_content_blocks(cls, video_inputs))
        content.append(BytePlusInputText(text=prompt))

        response = await sync_op(
            cls,
            ApiEndpoint(path=BYTEPLUS_RESPONSES_ENDPOINT, method="POST"),
            response_model=BytePlusResponseObject,
            data=BytePlusResponseCreateRequest(
                model=model_id,
                input=[BytePlusInputMessage(role="user", content=content)],
                instructions=system_prompt or None,
                temperature=temperature,
                store=False,
                stream=False,
            ),
        )
        if response.error:
            raise ValueError(f"Seed API error ({response.error.code}): {response.error.message}")
        result = _get_text_from_response(response)
        if not result:
            raise ValueError("Empty response from Seed model.")
        return IO.NodeOutput(result)


class ByteDanceLLMExtension(ComfyExtension):
    @override
    async def get_node_list(self) -> list[type[IO.ComfyNode]]:
        return [ByteDanceSeedNode]


async def comfy_entrypoint() -> ByteDanceLLMExtension:
    return ByteDanceLLMExtension()

View on GitHub (pinned to 1c6d8d45b3)

Solutions

  1. Check the numeric code in the message: 401/403 style codes mean credentials/permissions, 429 quota, 4xx parameter issues.
  2. Verify the ByteDance API key is set and valid in ComfyUI (settings > API keys) and that the account has Seed model access.
  3. For quota errors, reduce parallel requests or add spacing between Seed node executions.
  4. For parameter errors, simplify the request (drop videos, shorten prompt) to isolate the offending input.
Defensive patterns

Strategy: try-catch

Try / catch

try:
    out = await seed_node.execute(...)
except ValueError as e:
    msg = str(e)
    if "Seed API error" in msg:
        code = msg.split("(")[1].split(")")[0]
        if code in ("429", "1704"):  # quota-style codes: back off and retry
            await asyncio.sleep(5)
            out = await seed_node.execute(...)
        else:
            raise

Prevention

When it happens

Trigger: POST to BYTEPLUS_RESPONSES_ENDPOINT returns a payload with a non-null response.error — invalid API key, unknown model_id, malformed request body, exceeded rate limit/quota, or account not enabled for the model.

Common situations: Missing or expired ByteDance API credentials in ComfyUI's API-key manager; using a model label whose SEED_MODELS id is not enabled on the account; hitting QPS/TPM quotas during batched workflows; regional availability gaps.

Related errors


AI-assisted analysis of Comfy-Org/ComfyUI@1c6d8d45b3 (2026-08-14). Data as JSON: /api/errors/a6c353e7eaed7ced. Report an issue: GitHub.