mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-09-25 02:55:07 +02:00
A subgraph has no saver of its own: it uses the parent's, passed through `CONFIG_KEY_CHECKPOINTER`, or holds `checkpointer=True`. Every state reader resolved that saver, then called `_prepare_state_snapshot`, which re-derived it from `self.checkpointer` and got `None`. A `DeltaChannel` stores nothing in `channel_values`, so without a saver it hydrated empty while plain channels in the same snapshot read correctly. `bulk_update_state` had the same expression, and once an update reached the channel's snapshot cadence it persisted the empty value as a `_DeltaSnapshot`, losing history on disk. Pass the caller's saver in as a required keyword argument. Fixes #8470 Co-authored-by: gururafiki <22777967+gururafiki@users.noreply.github.com> Co-authored-by: Yuan Gao <119447586+DavidGao520@users.noreply.github.com>