# Symptom
INVALID_CHAT_HISTORY from the prebuilt agent's model node after you tried to resume.
## Confirm
Call `graph.get_state(config)` and inspect the recent messages. You will find an AIMessage with `tool_calls` and no ToolMessages answering them.
## Cause
The graph was interrupted before the tools node ran: you set `interrupt_before=["tools"]`, or a tool raised an error the ToolNode did not handle. You then invoked with new input (or a HumanMessage) instead of the pending tool results, so the model node saw a malformed history.
## Fix
Option A, supply the tool results and invoke (appends to history, runs from START):
```python
graph.invoke({"messages": [ToolMessage(content="...", tool_call_id="...")]})
```
Option B, repair and resume from the interrupt:
1. From `get_state`, either delete the unanswered tool calls from the AIMessages or add ToolMessages with matching `tool_call_id` values.
2. `graph.update_state(config, {"messages": fixed_list})`.
3. `graph.invoke(None, config)`.
## Verify
The resume completes the tool calls and the model produces its next message. Then decide whether the interrupt was expected (human-in-the-loop) or a tool bug you should fix.