{"record":{"id":"04b35dd8522a96a8","repo":"HKUDS/nanobot","slug":"exec-session-manager-is-closed","errorCode":null,"errorMessage":"exec session manager is closed","messagePattern":"exec session manager is closed","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"nanobot/agent/tools/exec_session.py","lineNumber":293,"sourceCode":"        self._lock = asyncio.Lock()\n        self._closed = False\n\n    async def start(\n        self,\n        *,\n        command: str,\n        cwd: str,\n        env: dict[str, str],\n        timeout: int | None,\n        shell_program: str | None,\n        login: bool,\n        yield_time_ms: int,\n        max_output_chars: int,\n        owner_session_key: str | None = None,\n    ) -> tuple[str, _SessionPoll]:\n        async with self._lock:\n            if self._closed:\n                raise RuntimeError(\"exec session manager is closed\")\n            await self._cleanup_locked()\n            if len(self._sessions) >= self.max_sessions:\n                raise RuntimeError(f\"maximum exec sessions reached ({self.max_sessions})\")\n            process = await self._spawn(command, cwd, env, shell_program, login)\n            session_id = uuid.uuid4().hex[:12]\n            session = _ExecSession(\n                session_id=session_id,\n                process=process,\n                command=command,\n                cwd=cwd,\n                timeout=timeout,\n                owner_session_key=owner_session_key,\n                process_tree=True,\n            )\n            self._sessions[session_id] = session\n\n        poll = await session.poll(yield_time_ms, max_output_chars)\n        if poll.done:","sourceCodeStart":275,"sourceCodeEnd":311,"githubUrl":"https://github.com/HKUDS/nanobot/blob/42f37dc4c0e409eac7818a82d165c5f2757bc075/nanobot/agent/tools/exec_session.py#L275-L311","documentation":"Error \"exec session manager is closed\" thrown in HKUDS/nanobot.","triggerScenarios":"Thrown at nanobot/agent/tools/exec_session.py:293 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":"42f37dc4c0e409eac7818a82d165c5f2757bc075","analyzedAt":"2026-08-26T00:18:52.276Z","schemaVersion":2},"datasetVersion":"2026-08-26T04:18:47.238Z"}