langchain-ai/langgraph · error · RuntimeError

StreamChannel is already bound

Error message

StreamChannel is already bound

What it means

Error "StreamChannel is already bound" thrown in langchain-ai/langgraph.

Source

Thrown at libs/langgraph/langgraph/stream/stream_channel.py:105

    # ------------------------------------------------------------------

    def _bind_mux(self, mux: StreamMux) -> None:
        self._mux = mux

    def _bind(self, *, is_async: bool) -> None:
        """Bind this channel to sync or async mode.

        Called by the StreamMux after transformer registration. Must be
        called exactly once before any iteration.

        Args:
            is_async: True to enable async iteration, False for sync.

        Raises:
            RuntimeError: If the channel has already been bound.
        """
        if self._is_async is not None:
            raise RuntimeError("StreamChannel is already bound")
        self._is_async = is_async

    # ------------------------------------------------------------------
    # Mux wiring (not called by transformers directly)
    # ------------------------------------------------------------------

    def _wire(self, fn: Callable[[T], None]) -> None:
        """Install the auto-forward callback (called by StreamMux)."""
        self._wire_fn = fn

    # ------------------------------------------------------------------
    # Producer API
    # ------------------------------------------------------------------

    def push(self, item: T) -> None:
        """Append an item. Auto-forwards if wired.

        The local buffer append is a no-op when no subscriber is

View on GitHub (pinned to 38031739e5)

When it happens

Trigger: Thrown at libs/langgraph/langgraph/stream/stream_channel.py:105 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of langchain-ai/langgraph@38031739e5 (2026-08-26). Data as JSON: /api/errors/5d2110632c3f14f3. Report an issue: GitHub.