{"record":{"id":"93df2387a2f148f0","repo":"langchain-ai/langgraph","slug":"thread-run-respond-interrupt-id-interrupt-id-r","errorCode":null,"errorMessage":"thread.run.respond: interrupt_id {interrupt_id!r} does not match any outstanding interrupt in `thread.interrupts`.","messagePattern":"thread\\.run\\.respond: interrupt_id (.+?) does not match any outstanding interrupt in `thread\\.interrupts`\\.","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"libs/sdk-py/langgraph_sdk/_async/stream.py","lineNumber":256,"sourceCode":"                        \"thread.run.respond: no outstanding interrupt. Provide \"\n                        \"an explicit `interrupt_id` or wait for \"\n                        \"`thread.interrupted`.\"\n                    )\n                if len(outstanding) > 1:\n                    ids = [p[\"interrupt_id\"] for p in outstanding]\n                    raise RuntimeError(\n                        f\"thread.run.respond: ambiguous — {len(outstanding)} \"\n                        f\"outstanding interrupts ({ids!r}). Provide an explicit \"\n                        \"`interrupt_id`.\"\n                    )\n                match = outstanding[0]\n            else:\n                match = next(\n                    (p for p in outstanding if p[\"interrupt_id\"] == interrupt_id),\n                    None,\n                )\n                if match is None:\n                    raise RuntimeError(\n                        f\"thread.run.respond: interrupt_id {interrupt_id!r} does \"\n                        \"not match any outstanding interrupt in \"\n                        \"`thread.interrupts`.\"\n                    )\n            params = {\n                \"interrupt_id\": match[\"interrupt_id\"],\n                \"namespace\": match[\"namespace\"],\n                \"response\": response,\n            }\n            return await self._owner._send_command(\"input.respond\", params)\n\n\nasync def _close_after(handle: EventStreamHandle, *, delay: float = 0.0) -> None:\n    \"\"\"Close a handle, optionally after a brief delay. Used to detach\n    closing the old stream from the synchronous rotation step so the new\n    stream can absorb server-side replayed events first.\n    \"\"\"\n    if delay:","sourceCodeStart":238,"sourceCodeEnd":274,"githubUrl":"https://github.com/langchain-ai/langgraph/blob/38031739e551638e373fb553453256c23feeb41f/libs/sdk-py/langgraph_sdk/_async/stream.py#L238-L274","documentation":"Error \"thread.run.respond: interrupt_id {interrupt_id!r} does not match any outstanding interrupt in `thread.interrupts`.\" thrown in langchain-ai/langgraph.","triggerScenarios":"Thrown at libs/sdk-py/langgraph_sdk/_async/stream.py:256 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"38031739e551638e373fb553453256c23feeb41f","analyzedAt":"2026-08-26T18:02:49.312Z","schemaVersion":2},"datasetVersion":"2026-08-26T21:11:00.512Z"}