{"record":{"id":"5750acebe36689de","repo":"Comfy-Org/ComfyUI","slug":"bytedance-request-failed-code-response-error-c","errorCode":null,"errorMessage":"ByteDance request failed. Code: {response.error['code']}, message: {response.error['message']}","messagePattern":"ByteDance request failed\\. Code: (.+?), message: (.+?)","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"comfy_api_nodes/nodes_bytedance.py","lineNumber":427,"sourceCode":"def _seedance2_price_extractor(model_id: str, has_video_input: bool, resolution: str):\n    \"\"\"Returns a price_extractor closure for Seedance 2.0 poll_op.\"\"\"\n    rate = seedance2_price_per_1k_tokens(model_id, has_video_input, resolution)\n    if rate is None:\n        return None\n\n    def extractor(response: TaskStatusResponse) -> float | None:\n        if response.usage is None:\n            return None\n        return response.usage.total_tokens * 1.43 * rate / 1_000.0\n\n    return extractor\n\n\ndef get_image_url_from_response(response: ImageTaskCreationResponse) -> str:\n    if response.error:\n        error_msg = f\"ByteDance request failed. Code: {response.error['code']}, message: {response.error['message']}\"\n        logging.info(error_msg)\n        raise RuntimeError(error_msg)\n    logging.info(\"ByteDance task succeeded, image URL: %s\", response.data[0][\"url\"])\n    return response.data[0][\"url\"]\n\n\nclass ByteDanceImageNode(IO.ComfyNode):\n\n    @classmethod\n    def define_schema(cls):\n        return IO.Schema(\n            node_id=\"ByteDanceImageNode\",\n            display_name=\"ByteDance Image\",\n            category=\"partner/image/ByteDance\",\n            description=\"Generate images using ByteDance models via api based on prompt\",\n            inputs=[\n                IO.Combo.Input(\"model\", options=[\"seedream-3-0-t2i-250415\"]),\n                IO.String.Input(\n                    \"prompt\",\n                    multiline=True,","sourceCodeStart":409,"sourceCodeEnd":445,"githubUrl":"https://github.com/Comfy-Org/ComfyUI/blob/1c6d8d45b3693bfbb32385b410d813a7fd6be216/comfy_api_nodes/nodes_bytedance.py#L409-L445","documentation":"ByteDance image tasks return an error object inside an otherwise-HTTP-200 response. get_image_url_from_response checks response.error and re-raises it as RuntimeError with the API's code and message, after logging it at info level.","triggerScenarios":"Any ByteDanceImageNode task whose ImageTaskCreationResponse carries a non-null error - invalid prompt (moderation), quota exhausted, invalid parameters, or content policy rejection.","commonSituations":"Prompt trips content moderation; account out of credits; model name or size string rejected by the API; transient upstream failure during task creation.","solutions":["Read the code/message pair: content-policy rejections need a prompt change; quota errors need billing/credits.","Fix the parameter the code points at (size, seed range, model id).","Transient codes can be handled by re-queueing the workflow once."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    url = get_image_url_from_response(response)\nexcept RuntimeError as e:\n    code = parse_code(str(e))\n    if code in TRANSIENT_CODES:\n        response = await recreate_task(...)  # single retry\n    else:\n        raise  # moderation/quota errors need human action","preventionTips":["Check response.error on every ByteDance task response instead of assuming 200 means success.","Keep prompts within content policy and monitor account credits before long batch runs."],"tags":["comfyui","bytedance","api-error","moderation","runtime-error"],"backgroundTag":null,"analyzedSha":"1c6d8d45b3693bfbb32385b410d813a7fd6be216","analyzedAt":"2026-08-14T19:37:18.893Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}