exo-explore/exo · error · RuntimeError

started process has no pid

Error message

started process has no pid

What it means

Error "started process has no pid" thrown in exo-explore/exo.

Source

Thrown at src/exo/utils/async_process.py:105

                stdout_read_fd, stdout_write_fd = os.pipe()
                stderr_read_fd, stderr_write_fd = os.pipe()

                process = mp.Process(
                    target=_run_with_captured_stdio,
                    name=self._name,
                    args=(
                        DupFd(stdout_write_fd),
                        DupFd(stderr_write_fd),
                        self._target,
                        *self._args,
                    ),
                    kwargs={} if self._kwargs is None else self._kwargs,
                    daemon=self._daemon,
                )
                process.start()
                pid = process.pid
                if pid is None:
                    raise RuntimeError("started process has no pid")

                # important to close parent write-side FD to prevent hangs
                stdout_write_fd = _close_fd(stdout_write_fd)
                stderr_write_fd = _close_fd(stderr_write_fd)

                self._process = process
                self._pid = pid
                self._started.set()

                async with create_task_group() as tg:
                    tg.start_soon(_drain_fd, stdout_read_fd, self._stdout_tx)
                    stdout_read_fd = None
                    tg.start_soon(_drain_fd, stderr_read_fd, self._stderr_tx)
                    stderr_read_fd = None
                    task_status.started()
                    await self.wait()
        except BaseException as exc:
            if not self._started.is_set():

View on GitHub (pinned to 21a54c5ea0)

When it happens

Trigger: Thrown at src/exo/utils/async_process.py:105 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of exo-explore/exo@21a54c5ea0 (2026-08-26). Data as JSON: /api/errors/07e5032f7cdc14fe. Report an issue: GitHub.