{"record":{"id":"6936d4b580af2901","repo":"langchain-ai/langgraph","slug":"interleave-requires-streamchannel-projections-g","errorCode":null,"errorMessage":"interleave() requires StreamChannel projections, got {type(ch).__name__} for {name!r}","messagePattern":"interleave\\(\\) requires StreamChannel projections, got (.+?) for (.+?)","errorType":"exception","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"libs/langgraph/langgraph/stream/run_stream.py","lineNumber":260,"sourceCode":"            KeyError: If a name doesn't match a registered projection.\n\n        Example:\n            ```python\n            for name, item in run.interleave(\"messages\", \"values\"):\n                if name == \"messages\":\n                    print(\"msg:\", item)\n                else:\n                    print(\"val:\", item)\n            ```\n        \"\"\"\n        from langgraph.stream.stream_channel import StreamChannel\n\n        channels: dict[str, StreamChannel[Any]] = {}\n        try:\n            for name in names:\n                ch = self.extensions[name]\n                if not isinstance(ch, StreamChannel):\n                    raise TypeError(\n                        f\"interleave() requires StreamChannel projections, \"\n                        f\"got {type(ch).__name__} for {name!r}\"\n                    )\n                if ch._is_async is None:\n                    raise TypeError(\n                        f\"StreamChannel {name!r} has not been bound yet. \"\n                        \"Register the transformer with a StreamMux first.\"\n                    )\n                if ch._is_async:\n                    raise TypeError(\n                        f\"StreamChannel {name!r} is bound to async mode — \"\n                        \"sync interleave() cannot consume async channels.\"\n                    )\n                if ch._subscribed:\n                    raise RuntimeError(\n                        f\"StreamChannel {name!r} already has a subscriber; \"\n                        \"use .tee(n) for fan-out.\"\n                    )","sourceCodeStart":242,"sourceCodeEnd":278,"githubUrl":"https://github.com/langchain-ai/langgraph/blob/38031739e551638e373fb553453256c23feeb41f/libs/langgraph/langgraph/stream/run_stream.py#L242-L278","documentation":"Error \"interleave() requires StreamChannel projections, got {type(ch).__name__} for {name!r}\" thrown in langchain-ai/langgraph.","triggerScenarios":"Thrown at libs/langgraph/langgraph/stream/run_stream.py:260 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"38031739e551638e373fb553453256c23feeb41f","analyzedAt":"2026-08-26T18:02:49.312Z","schemaVersion":2},"datasetVersion":"2026-08-26T21:11:00.512Z"}