Minimal offline reproduction for langchain-ai/langgraph issue #8693.
Python 3.10.2, no model or external API call required.
| LangGraph | {} |
{1: "value"} |
32-hex-key dict | normal string-key dict | scalar control |
|---|---|---|---|---|---|
| 1.2.10 | remains interrupted | TypeError: expected string or bytes-like object |
remains interrupted | resumes correctly | resumes correctly |
| 1.2.11 | remains interrupted | TypeError: expected string or bytes-like object |
remains interrupted | resumes correctly | resumes correctly |
Current LangGraph resume handling distinguishes a targeted interrupt-id map from an ordinary dictionary by checking whether every dictionary key looks like a 32-character xxh3 digest. That heuristic misclassifies an empty dictionary because all([]) is true, crashes on non-string keys passed to the regex helper, and can silently treat a business dictionary whose key happens to look like an interrupt id as a targeted resume map.
Official LangGraph reference defines Command.resume as either a mapping of interrupt IDs to resume values or a single resume value. Ordinary dictionaries therefore remain valid single resume values unless they actually target pending interrupt IDs.
python3 -m venv .venv
.venv/bin/pip install langgraph==1.2.11
.venv/bin/python repro.pyEvidence files:
results.json— LangGraph 1.2.11results-1.2.10.json— LangGraph 1.2.10version-matrix.md— concise regression matrix
Until the upstream fix lands in the exact version you deploy, avoid ambiguous dictionary resume values where possible. Prefer a scalar or a business object with ordinary string keys for a single interrupt. If you are resuming multiple interrupts, build the targeted map from the actual pending interrupt IDs returned by the current checkpoint rather than synthesizing id-shaped keys.
This repository verifies local control-flow behavior only; it does not call a model or LangSmith service.
XBSTACK tracks the upstream issue state and local verification status here: https://www.xbstack.com/en/tools/mcp-radar/?utm_source=github&utm_medium=referral&utm_campaign=langgraph_resume_dict_8693&utm_content=repository_readme