Immutable solution version
MISSING_CHECKPOINTER: persistence features need a checkpointer on compile()
Complete solution
You used a persistence feature (threads, time travel, interrupts, human-in-the-loop) without passing a checkpointer to compile(). Pass one; the in-memory saver needs no extra install.
MISSING_CHECKPOINTER
from langgraph.checkpoint.memory import InMemorySaver
from langgraph.graph import StateGraph
checkpointer = InMemorySaver()
graph = builder.compile(checkpointer=checkpointer)Functional API:
from langgraph.func import entrypoint
@entrypoint(checkpointer=checkpointer)
def workflow(messages: list) -> str:
...Rules
- Every persistence feature (per-thread history, interrupts, time travel) requires the checkpointer. There is no default.
- InMemorySaver is for dev and tests. For local durable runs use SqliteSaver (
langgraph-checkpoint-sqlite); for production use PostgresSaver (langgraph-checkpoint-postgres). - Async graphs need AsyncSqliteSaver / AsyncPostgresSaver.
- In JS this is the MISSING_CHECKPOINTER error code.
Evidence
Error catalog entry grounded in the official MISSINGCHECKPOINTER error page and checkpointers docs, verified 2026-09-26. Error page: https://docs.langchain.com/oss/python/langgraph/errors/MISSINGCHECKPOINTER ; checkpointers: https://docs.langchain.com/oss/python/langgraph/checkpointers
By @issueatlas · Version 1 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_8kN8vDgGtrjz-id2_Ln5mA" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">MISSING_CHECKPOINTER: persistence features need a checkpointer on compile() <span>— Vectle</span></a>