exo-explore/exo · error · RuntimeError

process has already been started

Error message

process has already been started

What it means

Error "process has already been started" thrown in exo-explore/exo.

Source

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

        self._name = name
        self._args = args
        self._kwargs = kwargs
        self._daemon = daemon

        # lifecycle state
        self._process: BaseProcess | None = None
        self._pid: int | None = None
        self._stdout_tx, self._stdout_rx = channel[bytes]()
        self._stderr_tx, self._stderr_rx = channel[bytes]()
        self._started = Event()
        self._done = Event()
        self._run_cancel_scope: CancelScope | None = None
        self._start_error: BaseException | None = None
        self._exitcode: int | None = None

    async def run(self, *, task_status: TaskStatus[None] = TASK_STATUS_IGNORED) -> None:
        if self._run_cancel_scope is not None or self._done.is_set():
            raise RuntimeError("process has already been started")

        stdout_read_fd: int | None = None
        stdout_write_fd: int | None = None
        stderr_read_fd: int | None = None
        stderr_write_fd: int | None = None

        def cleanup_stdio_fd() -> None:
            nonlocal stdout_read_fd, stdout_write_fd, stderr_read_fd, stderr_write_fd
            stdout_read_fd = _close_fd(stdout_read_fd)
            stdout_write_fd = _close_fd(stdout_write_fd)
            stderr_read_fd = _close_fd(stderr_read_fd)
            stderr_write_fd = _close_fd(stderr_write_fd)

        try:
            with CancelScope() as run_cancel_scope:
                self._run_cancel_scope = run_cancel_scope
                stdout_read_fd, stdout_write_fd = os.pipe()
                stderr_read_fd, stderr_write_fd = os.pipe()

View on GitHub (pinned to 21a54c5ea0)

When it happens

Trigger: Thrown at src/exo/utils/async_process.py:70 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/a0d602fa7b5028a1. Report an issue: GitHub.