langchain-ai/langgraph · error · RuntimeError
Protocol error [{code}]: {message}
Error message
Protocol error [{code}]: {message} What it means
Error "Protocol error [{code}]: {message}" thrown in langchain-ai/langgraph.
Source
Thrown at libs/sdk-py/langgraph_sdk/_sync/stream.py:1482
finally:
self._unregister_subscription(sub.id)
def _send_command(self, method: str, params: dict[str, Any]) -> dict[str, Any]:
"""Send a protocol command and return the `result` payload."""
if self._transport is None:
raise RuntimeError("SyncThreadStream not entered — use `with`.")
with self._command_id_lock:
command_id = self._next_command_id
self._next_command_id += 1
response = self._transport.send_command(
{"id": command_id, "method": method, "params": params}
)
if response is None:
return {}
if response.get("type") == "error":
code = response.get("error", "unknown")
message = response.get("message", "")
raise RuntimeError(f"Protocol error [{code}]: {message}")
meta = response.get("meta")
if isinstance(meta, dict):
applied_through_seq = meta.get("applied_through_seq")
if self._controller is not None:
self._controller.observe_applied_through_seq(applied_through_seq)
return response.get("result", {})
def _ensure_lifecycle_watcher_running(self) -> None:
if self._lifecycle_watcher_thread is not None:
return
self._lifecycle_watcher_thread = threading.Thread(
target=self._run_lifecycle_watcher,
name="langgraph-sdk-sync-lifecycle",
daemon=True,
)
self._lifecycle_watcher_thread.start()
def _observe_lifecycle_event(self, event: Event) -> None:View on GitHub (pinned to 38031739e5)
When it happens
Trigger: Thrown at libs/sdk-py/langgraph_sdk/_sync/stream.py:1482 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of langchain-ai/langgraph@38031739e5 (2026-08-26).
Data as JSON: /api/errors/abd841187db9adb6.
Report an issue: GitHub.