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
- Check the numeric code in the message: 401/403 style codes mean credentials/permissions, 429 quota, 4xx parameter issues.
- Verify the ByteDance API key is set and valid in ComfyUI (settings > API keys) and that the account has Seed model access.
- For quota errors, reduce parallel requests or add spacing between Seed node executions.
- 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
- Store valid ByteDance credentials in ComfyUI's API-key manager before running.
- Throttle batched workflows to stay under QPS/TPM quotas.
- Match the error code to auth vs quota vs parameter categories before retrying.
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
- Empty response from Seed model.
- Seedance session {session.session_id} completed without a gr
- ByteDance request failed. Code: {response.error['code']}, me
- Seed Audio returned no audio (code={response.code}): {respon
- Model refused to respond: {block.refusal}
AI-assisted analysis of Comfy-Org/ComfyUI@1c6d8d45b3 (2026-08-14).
Data as JSON: /api/errors/a6c353e7eaed7ced.
Report an issue: GitHub.