Skip to main content
A LangGraph StateGraph received a non-object return type from a node. Here’s an example:
import * as z from "zod";
import { StateGraph } from "@langchain/langgraph";

const State = z.object({
  someKey: z.string(),
});

const badNode = (state: z.infer<typeof State>) => {
  // Should return an object with a value for "someKey", not an array
  return ["whoops"];
};

const builder = new StateGraph(State).addNode("badNode", badNode);
// ...

const graph = builder.compile();
Invoking the above graph will result in an error like this:
await graph.invoke({ someKey: "someval" });
InvalidUpdateError: Expected object, got ['whoops']
For troubleshooting, visit: https://langchain-ai.github.io/langgraphjs/troubleshooting/errors/INVALID_GRAPH_NODE_RETURN_VALUE
Nodes in your graph must return an object containing one or more keys defined in your state.

Troubleshooting

The following may help resolve this error:
  • If you have complex logic in your node, make sure all code paths return an appropriate object for your defined state.

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.