本页还没有译文
本页 9 段还没译成한국어,下面显示的是英文原文。INVALID_CONCURRENT_GRAPH_UPDATE
还没翻译译自英文(docs.langchain.com)本页 9 段都还没译
A LangGraph StateGraph received concurrent updates to its state from multiple nodes to a state property that doesn't
support it.
One way this can occur is if you are using a fanout or other parallel execution in your graph and you have defined a graph like this:
import { StateGraph, StateSchema, START } from "@langchain/langgraph";
import { z } from "zod/v4"; // [!code highlight]
const State = new StateSchema({
someKey: z.string(),
});
const builder = new StateGraph(State)
.addNode("node", (state) => {
return { someKey: "some_string_value" };
})
.addNode("otherNode", (state) => {
return { someKey: "some_string_value" };
})
.addEdge(START, "node")
.addEdge(START, "otherNode");
const graph = builder.compile();If a node in the above graph returns { someKey: "some_string_value" }, this will overwrite the state value for someKey with "some_string_value".
However, if multiple nodes in e.g. a fanout within a single step return values for someKey, the graph will throw this error because
there is uncertainty around how to update the internal state.
To get around this, you can define a reducer that combines multiple values:
import { StateSchema, ReducedValue } from "@langchain/langgraph";
import { z } from "zod/v4";
const State = new StateSchema({ // [!code highlight]
someKey: new ReducedValue( // [!code highlight]
z.array(z.string()).default(() => []), // [!code highlight]
{
inputSchema: z.array(z.string()),
reducer: (existing, update) => existing.concat(update), // [!code highlight]
}
),
});This will allow you to define logic that handles the same key returned from multiple nodes executed in parallel.
Troubleshooting
The following may help resolve this error:
- If your graph executes nodes in parallel, make sure you have defined relevant state keys with a reducer.