Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LangGraph Command(resume=dict) misclassification reproduction

Minimal offline reproduction for langchain-ai/langgraph issue #8693.

Verified versions

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

Root cause boundary

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.

Run

python3 -m venv .venv
.venv/bin/pip install langgraph==1.2.11
.venv/bin/python repro.py

Evidence files:

  • results.json — LangGraph 1.2.11
  • results-1.2.10.json — LangGraph 1.2.10
  • version-matrix.md — concise regression matrix

Production workaround

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.

Compatibility tracking

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

About

Minimal reproduction for LangGraph Command(resume=dict) misclassification on 1.2.10 and 1.2.11

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages