{"record":{"id":"d3efa5c4440e7b04","repo":"langchain-ai/langgraph","slug":"streamchannel-name-r-is-bound-to-async-mode-sy","errorCode":null,"errorMessage":"StreamChannel {name!r} is bound to async mode — sync interleave() cannot consume async channels.","messagePattern":"StreamChannel (.+?) is bound to async mode — sync interleave\\(\\) cannot consume async channels\\.","errorType":"exception","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"libs/langgraph/langgraph/stream/run_stream.py","lineNumber":270,"sourceCode":"        \"\"\"\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                    )\n                ch._subscribed = True\n                channels[name] = ch\n\n            done: set[str] = set()\n\n            while len(done) < len(channels):\n                best: tuple[int, str] | None = None\n                for name, ch in channels.items():\n                    if name in done:\n                        continue","sourceCodeStart":252,"sourceCodeEnd":288,"githubUrl":"https://github.com/langchain-ai/langgraph/blob/38031739e551638e373fb553453256c23feeb41f/libs/langgraph/langgraph/stream/run_stream.py#L252-L288","documentation":"Error \"StreamChannel {name!r} is bound to async mode — sync interleave() cannot consume async channels.\" thrown in langchain-ai/langgraph.","triggerScenarios":"Thrown at libs/langgraph/langgraph/stream/run_stream.py:270 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"}