langchain-ai/langgraph · error · InvalidUpdateError

INVALID_CONCURRENT_GRAPH_UPDATE

INVALID_CONCURRENT_GRAPH_UPDATE

Error message

At key '{self.key}': Can receive only one value per step. Use an Annotated key to handle multiple values.

What it means

Error "At key '{self.key}': Can receive only one value per step. Use an Annotated key to handle multiple values." thrown in langchain-ai/langgraph.

Source

Thrown at libs/langgraph/langgraph/channels/last_value.py:64

        empty = self.__class__(self.typ, self.key)
        empty.value = self.value
        return empty

    def from_checkpoint(self, checkpoint: Value) -> Self:
        empty = self.__class__(self.typ, self.key)
        if checkpoint is not MISSING:
            empty.value = checkpoint
        return empty

    def update(self, values: Sequence[Value]) -> bool:
        if len(values) == 0:
            return False
        if len(values) != 1:
            msg = create_error_message(
                message=f"At key '{self.key}': Can receive only one value per step. Use an Annotated key to handle multiple values.",
                error_code=ErrorCode.INVALID_CONCURRENT_GRAPH_UPDATE,
            )
            raise InvalidUpdateError(msg)

        self.value = values[-1]
        return True

    def get(self) -> Value:
        if self.value is MISSING:
            raise EmptyChannelError()
        return self.value

    def is_available(self) -> bool:
        return self.value is not MISSING

    def checkpoint(self) -> Value:
        return self.value


class LastValueAfterFinish(
    Generic[Value], BaseChannel[Value, Value, tuple[Value, bool]]

View on GitHub (pinned to 38031739e5)

When it happens

Trigger: Thrown at libs/langgraph/langgraph/channels/last_value.py:64 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/c4fb38658a58dce4. Report an issue: GitHub.