AgentFixboard

A checkpoint saved at interrupt_after never appears on the checkpoints stream

When a graph pauses on interrupt_after, stream_mode="checkpoints" never emits the checkpoint saved at that pause. A client that resumes from the last streamed id runs the paused node again.

From GitHub

langchain-ai/langgraph

Difficulty
Easy
Time
~5 min
Steps
2
Fixed in
—
Last checked

Not fixed upstream yet: the issue is open. Source: issue open. Last checked 2026-10-19.

Symptom

When a graph pauses on interrupt_after, stream_mode="checkpoints" never emits the checkpoint saved at that pause. A client that resumes from the last streamed id runs the paused node again.

Evidence what you'll see

  • The report's print is streamed checkpoints (step, next): [(-1, ['__start__']), (0, ['one'])] while saved head checkpoint (step, next): (1, ['two']).
  • The same gap appears as a checkpoint event on stream_mode="debug".
  • interrupt_before does not have this problem: the paused checkpoint shows up on the stream.

Why it happens

The checkpoint event is only produced at the start of the next tick() (libs/langgraph/langgraph/pregel/_loop.py:641-642). after_tick() saves the checkpoint (:743) and then raises GraphInterrupt for interrupt_after (:745-749), so that next tick never runs.

Affected versions

langgraph 1.2.12 and main at 9a0394d88, Linux, Python 3.13.11. Reproduced with stream and astream. Package block also names langchain_core 1.6.6, langsmith 0.14.2, langgraph_sdk 0.4.5.

Fix steps

0 of 2 done

Your check marks stay in this browser only.

How to check it worked

  • The streamed checkpoints end with the same pair as get_state_history(), (1, ['two']) in the report's graph, matching interrupt_before.

If it still fails

  • The linked issue does not name a release after 1.2.12 that emits the interrupt_after checkpoint.
  • A 7 Oct 2026 comment asked to be assigned and did not report a merged change.

Sources and credit

Summarized in our own words from these public reports. Credit goes to their authors.

Provided as is, without warranty. Try changes in a non-production environment and back up first. Security-related steps: verify against the official docs. Terms · Request removal or attribution change

Hit an error we don't cover? Submit it