Applied AI
LangGraph DeltaChannel threads cannot be pruned with keep_latest
A DeltaChannel checkpoint may block keep_latest pruning. Budget retention, test the exact channel type and plan safe cleanup.
October 27, 2026
An agent's conversation works, but the scheduled checkpoint cleanup fails. Storage continues to grow even though a keep_latest retention policy is configured. A LangGraph issue reports NotImplementedError while pruning a thread that uses DeltaChannel. The narrow failure matters because long-lived agents can accumulate sensitive state and operating cost while appearing healthy to the user.
Check the channel and the cleanup path
Inventory the state channels used by each graph and the actual checkpoint saver. Run a retention test on a disposable thread built with the same DeltaChannel and installed package versions. Measure checkpoint count and bytes before and after pruning, and keep the full traceback. A scheduled cleanup job finishing with an error should alert; a graph invocation succeeding does not verify retention.
Protect production history before workaround
LangGraph's persistence documentation describes checkpoints as the basis for resuming and inspecting runs. Do not delete or rewrite rows directly without understanding references and recovery requirements. For affected versions, plan a bounded retention window, storage capacity and supported thread-deletion path with the maintainer. If the state design can use a different channel type, test that change on representative threads before migration.
Verify a future fix against real state
Track the issue and any released fix, then test both new and existing DeltaChannel threads. Confirm that the latest checkpoint remains resumable, historical entries are removed as expected, and audit or privacy retention obligations are met. Keep an operational count of threads failing cleanup so a small bug does not become a silent retention policy failure.
Adovo’s view
Memory is part of the product's data responsibility. If a system promises to forget, the cleanup path deserves the same production test as the path that remembers.
