# Symptom

```
InvalidUpdateError: Expected dict, got ['whoops']
For troubleshooting, visit: https://docs.langchain.com/oss/python/langgraph/errors/INVALID_GRAPH_NODE_RETURN_VALUE
```

## Confirm

The error names the value, not the node. Add a print or breakpoint at each node's return, or bisect by commenting nodes out, until you find the one returning a list, a string, or None.

## Cause

Nodes must return a dict containing keys from the state schema. The usual offenders: an early `return` that returns a bare value, an exception handler that returns the exception object, or a node that was written to return the value instead of the update dict.

## Fix

```python
def my_node(state: State):
    result = compute(state)
    return {"some_key": result}  # dict, always
```

Audit every return in the node, including the implicit `return None` at the end of a function that sometimes falls through.

## Verify

`graph.invoke` with a minimal input. Then run the full input that failed. The error is deterministic; if it is gone on the minimal input it is gone.