{"record":{"id":"c61cce4f913153be","repo":"Comfy-Org/ComfyUI","slug":"source-generation-id-is-required-connect-the-gene","errorCode":null,"errorMessage":"source_generation_id is required (connect the generation_id output of a prior Luma Ray 3.2 node).","messagePattern":"source_generation_id is required \\(connect the generation_id output of a prior Luma Ray 3\\.2 node\\)\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"comfy_api_nodes/nodes_luma.py","lineNumber":1457,"sourceCode":"                IO.String.Output(display_name=\"generation_id\"),\n            ],\n            hidden=[\n                IO.Hidden.auth_token_comfy_org,\n                IO.Hidden.api_key_comfy_org,\n                IO.Hidden.unique_id,\n            ],\n            is_api_node=True,\n            price_badge=_BADGE_RAY32_VIDEO_5S,\n        )\n\n    @classmethod\n    async def execute(\n        cls, source_generation_id: str, direction: dict, prompt: str, resolution: str, seed: int\n    ) -> IO.NodeOutput:\n        validate_string(prompt, strip_whitespace=False, min_length=1, max_length=6000)\n        gen_id = (source_generation_id or \"\").strip()\n        if not gen_id:\n            raise ValueError(\n                \"source_generation_id is required (connect the generation_id output of a prior Luma Ray 3.2 node).\"\n            )\n        video = Luma2VideoOptions(resolution=resolution, duration=\"5s\")\n        ref = Luma2ImageRef(generation_id=gen_id)\n        if direction[\"direction\"] == \"Forward (continue after)\":\n            video.start_frame = ref\n            if direction.get(\"loop\"):\n                video.loop = True\n        else:\n            video.end_frame = ref\n        request = Luma2GenerationRequest(prompt=prompt, model=\"ray-3.2\", type=\"video\", video=video)\n        return await _ray32_generate(cls, request)\n\n\nclass LumaExtension(ComfyExtension):\n    @override\n    async def get_node_list(self) -> list[type[IO.ComfyNode]]:\n        return [","sourceCodeStart":1439,"sourceCodeEnd":1475,"githubUrl":"https://github.com/Comfy-Org/ComfyUI/blob/1c6d8d45b3693bfbb32385b410d813a7fd6be216/comfy_api_nodes/nodes_luma.py#L1439-L1475","documentation":"Raised by the Luma Ray 3.2 extend node (comfy_api_nodes/nodes_luma.py:1457) when source_generation_id is empty after stripping whitespace. The node continues a prior generation by id; without it there is nothing to extend, so it fails before building the request.","triggerScenarios":"Executing the extend node with source_generation_id unconnected, an empty string, or whitespace-only input.","commonSituations":"User forgets to wire the generation_id output of the prior Ray 3.2 video node; hardcodes an id and pastes a blank; the upstream node was replaced and the edge lost.","solutions":["Connect the generation_id output of the prior Luma Ray 3.2 node into source_generation_id.","If typing an id manually, paste the complete id with no leading/trailing spaces.","Note the id must come from a Ray 3.2 generation still retained upstream."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if not (source_generation_id or \"\").strip():\n    raise ValueError(\"Connect a prior Ray 3.2 node's generation_id output\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always wire generation_id from the producing node instead of hand-typing ids.","Treat an empty extend input as a queue-time graph bug, not a runtime retry case."],"tags":["luma","ray-3-2","extend","generation-id","input-validation","comfy-api-nodes"],"backgroundTag":null,"analyzedSha":"1c6d8d45b3693bfbb32385b410d813a7fd6be216","analyzedAt":"2026-08-14T19:37:18.893Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}