diff --git a/codex-rs/app-server/tests/common/test_app_server.rs b/codex-rs/app-server/tests/common/test_app_server.rs index 3b9f774d8f..d5b969b44c 100644 --- a/codex-rs/app-server/tests/common/test_app_server.rs +++ b/codex-rs/app-server/tests/common/test_app_server.rs @@ -257,10 +257,20 @@ impl TestAppServer { } } - let mut process = cmd - .kill_on_drop(true) - .spawn() - .context("codex-mcp-server proc should start")?; + cmd.kill_on_drop(true); + let mut retries = 0; + let mut process = loop { + let process = cmd.spawn(); + if !process + .as_ref() + .is_err_and(|error| error.kind() == std::io::ErrorKind::ExecutableFileBusy) + || retries == 2 + { + break process.context("codex-mcp-server proc should start")?; + } + retries += 1; + tokio::time::sleep(Duration::from_millis(10)).await; + }; let stdin = process .stdin .take()