{"record":{"id":"b495b3e787ae483e","repo":"openai/codex","slug":"timed-out-connecting-to-remote-control-websocket-a","errorCode":null,"errorMessage":"timed out connecting to remote control websocket at `{}` after {:?}","messagePattern":"timed out connecting to remote control websocket at `(.+?)` after (.+?)","errorType":"exception","errorClass":"io::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/app-server-transport/src/transport/remote_control/websocket.rs","lineNumber":1366,"sourceCode":"            io::Error::other(\"missing remote control enrollment after enrollment step\")\n        })?;\n        (auth, enrollment)\n    };\n    let request = build_remote_control_websocket_request(\n        &remote_control_target.websocket_url,\n        &enrollment,\n        connect_options.installation_id,\n        connect_options.subscribe_cursor,\n    )\n    .await?;\n\n    let websocket_connect_result = tokio::time::timeout(\n        REMOTE_CONTROL_WEBSOCKET_CONNECT_TIMEOUT,\n        connect_async(request),\n    )\n    .await\n    .map_err(|_| {\n        io::Error::new(\n            ErrorKind::TimedOut,\n            format!(\n                \"timed out connecting to remote control websocket at `{}` after {:?}\",\n                remote_control_target.websocket_url, REMOTE_CONTROL_WEBSOCKET_CONNECT_TIMEOUT\n            ),\n        )\n    })?;\n\n    match websocket_connect_result {\n        Ok((websocket_stream, response)) => Ok((websocket_stream, response.map(|_| ()))),\n        Err(err) => {\n            match &err {\n                tungstenite::Error::Http(response)\n                    if websocket_response_reports_missing_remote_app_server(response) =>\n                {\n                    info!(\n                        \"remote control websocket returned HTTP 404; replacing stale enrollment: websocket_url={}, account_id={}, server_id={}, environment_id={}\",\n                        remote_control_target.websocket_url,","sourceCodeStart":1348,"sourceCodeEnd":1384,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/app-server-transport/src/transport/remote_control/websocket.rs#L1348-L1384","documentation":"Error \"timed out connecting to remote control websocket at `{}` after {:?}\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/app-server-transport/src/transport/remote_control/websocket.rs:1366 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":"339751715c64496cb86246bfb3935f40e309dd3d","analyzedAt":"2026-08-25T05:35:09.876Z","schemaVersion":2},"datasetVersion":"2026-08-25T06:17:31.827Z"}