{"record":{"id":"07e5032f7cdc14fe","repo":"exo-explore/exo","slug":"started-process-has-no-pid","errorCode":null,"errorMessage":"started process has no pid","messagePattern":"started process has no pid","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"src/exo/utils/async_process.py","lineNumber":105,"sourceCode":"                stdout_read_fd, stdout_write_fd = os.pipe()\n                stderr_read_fd, stderr_write_fd = os.pipe()\n\n                process = mp.Process(\n                    target=_run_with_captured_stdio,\n                    name=self._name,\n                    args=(\n                        DupFd(stdout_write_fd),\n                        DupFd(stderr_write_fd),\n                        self._target,\n                        *self._args,\n                    ),\n                    kwargs={} if self._kwargs is None else self._kwargs,\n                    daemon=self._daemon,\n                )\n                process.start()\n                pid = process.pid\n                if pid is None:\n                    raise RuntimeError(\"started process has no pid\")\n\n                # important to close parent write-side FD to prevent hangs\n                stdout_write_fd = _close_fd(stdout_write_fd)\n                stderr_write_fd = _close_fd(stderr_write_fd)\n\n                self._process = process\n                self._pid = pid\n                self._started.set()\n\n                async with create_task_group() as tg:\n                    tg.start_soon(_drain_fd, stdout_read_fd, self._stdout_tx)\n                    stdout_read_fd = None\n                    tg.start_soon(_drain_fd, stderr_read_fd, self._stderr_tx)\n                    stderr_read_fd = None\n                    task_status.started()\n                    await self.wait()\n        except BaseException as exc:\n            if not self._started.is_set():","sourceCodeStart":87,"sourceCodeEnd":123,"githubUrl":"https://github.com/exo-explore/exo/blob/21a54c5ea0230a3bec1e1a786d200126c7e34ec6/src/exo/utils/async_process.py#L87-L123","documentation":"Error \"started process has no pid\" thrown in exo-explore/exo.","triggerScenarios":"Thrown at src/exo/utils/async_process.py:105 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":"21a54c5ea0230a3bec1e1a786d200126c7e34ec6","analyzedAt":"2026-08-26T00:02:16.033Z","schemaVersion":2},"datasetVersion":"2026-08-26T04:18:47.238Z"}