langchain-ai/langgraph · error · NotImplementedError

{type(self).__name__} must override process() or aprocess()

Error message

{type(self).__name__} must override process() or aprocess()

What it means

Error "{type(self).__name__} must override process() or aprocess()" thrown in langchain-ai/langgraph.

Source

Thrown at libs/langgraph/langgraph/stream/_types.py:162

        owning mux — needed for transformers that build mini-muxes
        via `mux._make_child(...)` (e.g. `SubgraphTransformer`).
        """

    def process(self, event: ProtocolEvent) -> bool:
        """Handle an event on the sync lane.

        Called for every event before it is appended to the main event
        log. Subclasses must override either `process` or `aprocess`.
        The default raises so a missing override fails loudly rather
        than silently passing every event through.

        Args:
            event: The protocol event to observe.

        Returns:
            True to keep the event in the main log, False to suppress it.
        """
        raise NotImplementedError(
            f"{type(self).__name__} must override process() or aprocess()"
        )

    async def aprocess(self, event: ProtocolEvent) -> bool:
        """Handle an event on the async lane.

        The mux awaits this before dispatching to the next transformer,
        so a slow `aprocess` serializes the pipeline. Use it only when
        a later transformer — or a consumer reading the event
        synchronously — must see the result of the async work (e.g.
        PII redaction that mutates `event` in place).

        The default delegates to `process`, so purely-sync transformers
        run unchanged under `astream()`.

        Args:
            event: The protocol event to observe.

View on GitHub (pinned to 38031739e5)

When it happens

Trigger: Thrown at libs/langgraph/langgraph/stream/_types.py:162 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/399b7f7c67608cb0. Report an issue: GitHub.