{"record":{"id":"a2d72974812d99dc","repo":"langchain-ai/deepagents","slug":"32601","errorCode":"-32601","errorMessage":"Method not found: session/load","messagePattern":"Method not found: session/load","errorType":"error_code","errorClass":"RequestError","httpStatus":null,"severity":"error","filePath":"libs/acp/deepagents_acp/server.py","lineNumber":405,"sourceCode":"        # Return response with both modes (for backward compatibility) and config_options\n        return NewSessionResponse(\n            session_id=session_id,\n            modes=self._modes if self._modes is not None else None,\n            config_options=config_options,\n        )\n\n    async def load_session(\n        self,\n        cwd: str,\n        session_id: str,\n        additional_directories: list[str] | None = None,  # noqa: ARG002  # capability is not advertised\n        mcp_servers: list[McpServer] | None = None,\n        **kwargs: Any,  # noqa: ARG002  # ACP protocol interface parameter\n    ) -> LoadSessionResponse:\n        \"\"\"Restore and replay a persisted ACP session.\"\"\"\n        if not self._load_sessions:\n            method = \"session/load\"\n            raise RequestError.method_not_found(method)\n\n        self._session_cwds[session_id] = cwd\n        agent = self._checkpointed_agent(session_id)\n        metadata = (await agent.aget_state(self._session_config(session_id))).metadata or {}\n        if metadata.get(_ACP_SESSION_METADATA_KEY) is not True:\n            self._forget_session(session_id)\n            raise RequestError.resource_not_found(session_id)\n        if metadata.get(\"cwd\") != cwd:\n            self._forget_session(session_id)\n            raise RequestError.invalid_params(\n                {\"cwd\": \"must match the working directory used to create the session\"}\n            )\n\n        self._session_mcp_servers[session_id] = list(mcp_servers or [])\n        self._initialize_session_options(session_id)\n        if self._restore_session_options(session_id, metadata):\n            self._reset_agent(session_id)\n","sourceCodeStart":387,"sourceCodeEnd":423,"githubUrl":"https://github.com/langchain-ai/deepagents/blob/a1af029e6e73cb17c36bff823d227747b28e91e1/libs/acp/deepagents_acp/server.py#L387-L423","documentation":"`ModelSpec.parse` requires the `provider:model` format and raises `ValueError` when the input has no colon at all. The library uses this strict format everywhere a model is addressed, so a bare model name like `claude-sonnet-4-5` is rejected with a message showing the expected shape.","triggerScenarios":"`ModelSpec.parse(\"claude-sonnet-4-5\")` or any string without `:`; called indirectly via `parse`/`try_parse` from `_get_default_model_spec`, `_sdk_version_from_source`, or when an allowlist entry reaches spec parsing.","commonSituations":"Writing just the model name in `config.toml` (`model = \"claude-sonnet-4-5\"`) where a spec is expected; assuming auto-detection applies — only some paths (via `detect_provider`) accept bare model names; older configs written before the provider prefix became mandatory.","solutions":["Prefix the provider: `anthropic:claude-sonnet-4-5`","If you must accept bare names, resolve them to a spec yourself (e.g. via provider detection) before parsing","Use `ModelSpec.try_parse(...)` to validate first"],"exampleFix":"// before\nspec = ModelSpec.parse(\"claude-sonnet-4-5\")\n// after\nspec = ModelSpec.parse(\"anthropic:claude-sonnet-4-5\")","handlingStrategy":"try-catch","validationCode":"def is_parseable_spec(raw: str) -> bool:\n    return ModelSpec.try_parse(raw) is not None\n\nif not is_parseable_spec(raw):\n    raise ValueError(f\"{raw!r} must be 'provider:model'\")","typeGuard":"def is_model_spec_string(value: object) -> bool:\n    return (\n        isinstance(value, str)\n        and \":\" in value\n        and bool(value.split(\":\", 1)[0])\n        and bool(value.split(\":\", 1)[1])\n    )","tryCatchPattern":"try:\n    spec = ModelSpec.parse(raw)\nexcept ValueError:\n    detected = detect_provider(raw)  # resolve bare model names if supported\n    spec = ModelSpec.parse(f\"{detected}:{raw}\") if detected else DEFAULT_MODEL_SPEC","preventionTips":["Never write bare model names where a spec is expected — always include `provider:`","Copy the exact example format from the error message","Use `try_parse` in interactive/CLI input handling to give friendly feedback"],"tags":["python","model-spec","format","config"],"backgroundTag":"invalid-model-spec","analyzedSha":"a1af029e6e73cb17c36bff823d227747b28e91e1","analyzedAt":"2026-08-29T11:43:24.718Z","schemaVersion":2},"datasetVersion":"2026-08-29T12:17:43.993Z"}