{"record":{"id":"36c46201ac3e60a1","repo":"Comfy-Org/ComfyUI","slug":"runway-task-succeeded-but-no-image-data-found-in-r","errorCode":null,"errorMessage":"Runway task succeeded but no image data found in response.","messagePattern":"Runway task succeeded but no image data found in response\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"comfy_api_nodes/nodes_runway.py","lineNumber":525,"sourceCode":"        initial_response = await sync_op(\n            cls,\n            endpoint=ApiEndpoint(path=PATH_TEXT_TO_IMAGE, method=\"POST\"),\n            response_model=RunwayTextToImageResponse,\n            data=RunwayTextToImageRequest(\n                promptText=prompt,\n                model=Model4.gen4_image,\n                ratio=ratio,\n                referenceImages=reference_images,\n            ),\n        )\n\n        final_response = await get_response(\n            cls,\n            initial_response.id,\n            estimated_duration=AVERAGE_DURATION_T2I_SECONDS,\n        )\n        if not final_response.output:\n            raise ValueError(\"Runway task succeeded but no image data found in response.\")\n\n        return IO.NodeOutput(await download_url_to_image_tensor(get_image_url_from_task_status(final_response)))\n\n\n_TIMING_ABSOLUTE = \"Absolute time (seconds)\"\n_TIMING_FRACTION = \"Fraction of duration (0.0-1.0)\"\n\n\nclass RunwayAleph2KeyframeNode(IO.ComfyNode):\n\n    @classmethod\n    def define_schema(cls):\n        return IO.Schema(\n            node_id=\"RunwayAleph2KeyframeNode\",\n            display_name=\"Runway Aleph2 Keyframe\",\n            category=\"partner/video/Runway\",\n            description=\"Anchor a guidance image to a moment of the input (source) video, so Aleph2 \"\n            \"steers the edit at that point of your footage. Connect this to the 'keyframes' input of \"","sourceCodeStart":507,"sourceCodeEnd":543,"githubUrl":"https://github.com/Comfy-Org/ComfyUI/blob/1c6d8d45b3693bfbb32385b410d813a7fd6be216/comfy_api_nodes/nodes_runway.py#L507-L543","documentation":"Raised by the Runway text-to-image (Gen-4 image) node when the polled task reports success but `output` is empty, so no image URL can be extracted. Submission and polling both completed; only the response payload is missing the expected artifact. The node aborts rather than downloading from a nonexistent URL.","triggerScenarios":"Calling RunwayTextToImageNode; POST succeeds, get_response reaches a terminal state, but final_response.output is falsy.","commonSituations":"Runway server-side content filtering marking output empty without a failure status; API schema changes dropping the output field; rare transient response truncation.","solutions":["Retry with the same or slightly adjusted prompt — content-filter-adjacent empties often clear","Check the Runway task in the dashboard for the id to see if an image exists server-side","Review Runway API changelog for response-model changes"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    out = await runway_text_to_image(...)\nexcept ValueError as e:\n    if \"no image data found\" in str(e):\n        out = await runway_text_to_image(...)  # retry once\n    else:\n        raise","preventionTips":["Retry empty-output completions once before escalating","Keep the task id for manual inspection in the Runway dashboard","Watch Runway release notes for Gen-4 image response changes"],"tags":["runway","api-response","text-to-image","polling"],"backgroundTag":null,"analyzedSha":"1c6d8d45b3693bfbb32385b410d813a7fd6be216","analyzedAt":"2026-08-14T19:37:18.893Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}