LangGraph graphs with checkpointed/multi-turn state fail the spawn-safety probe
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 58/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Quiet
- Tech stack
- python
- Domain
- backend, distributed-systems
Research direction
Start with _register_passthrough_worker in src/conductor/ai/agents/runtime/runtime.py and probe_spawn_safety in src/conductor/ai/agents/runtime/_worker_entries.py, then reproduce the failure with examples/agents/langgraph/03_memory.py. Compare the checkpointed and multi-turn examples with a passing LangGraph example, and verify that 03_memory.py, 13_multi_turn.py, and 27_persistent_memory.py run successfully without the spawn-safety failure.
Written by the indexing model from the issue text.
Description
Files: src/conductor/ai/agents/runtime/runtime.py (_register_passthrough_worker), src/conductor/ai/agents/runtime/_worker_entries.py (probe_spawn_safety)
Symptom: python examples/agents/langgraph/03_memory.py fails in <1s, client-side, before any server call:
SpawnSafetyError: worker 'memory_agent' is not spawn-safe
AttributeError("Can't get local object 'CompiledStateGraph.attach_node.<locals>._get_updates'")
Define the callable at module level (importable by qualified name).
Cause: The passthrough worker pickles the compiled graph. LangGraph's CompiledStateGraph contains a local closure, so it can never be picklable. The error's advice is unfollowable — the object belongs to LangGraph, not to user code.
Fix: Either avoid pickling the compiled graph in the framework passthrough path, or detect this graph shape and fail with a message naming a supported alternative.
Verify: python examples/agents/langgraph/03_memory.py runs. Same for 13_multi_turn.py and 27_persistent_memory.py.
Scope: 3 of 46 langgraph examples. All three use checkpointed or multi-turn state; the other 43 pass.
- Dominant language
- Python
- Stars
- 104
- Forks
- 43
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 4
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from conductor-oss/python-sdk
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
conductor-oss/python-sdk#507 ·
-
Difficulty 1/5 1-3 hours Newbie friendliness 90/100
conductor-oss/python-sdk#502 ·
-
bug dependencies
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
conductor-oss/python-sdk#486 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
conductor-oss/python-sdk#483 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
conductor-oss/python-sdk#478 ·
All issues in conductor-oss/python-sdk
Similar issues
-
documentation help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
simonw/sqlite-utils#872 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100