BigPizzaV3/CodexPlusPlus · error · anyhow::Error
failed to query CDP browser identity on loopback addresses:
Error message
failed to query CDP browser identity on loopback addresses: {} What it means
Raised in browser_identity when querying the CDP /json/version browser identity failed on all loopback addresses; the aggregated message lists each attempt's error (HTTP failure, deserialization failure, or rejected WebSocket URL/port). Means the DevTools endpoint returned nothing usable for identity validation.
Source
Thrown at crates/codex-plus-core/src/cdp.rs:178
.send()
.await
.context("failed to query CDP browser identity")?
.error_for_status()
.context("CDP browser identity query failed")?
.json::<CdpBrowserIdentity>()
.await
.context("failed to deserialize CDP browser identity")?;
validate_cdp_websocket_url(&identity.web_socket_debugger_url, debug_port)?;
identity.browser_id()?;
anyhow::Ok(identity)
}
.await;
match result {
Ok(identity) => return Ok(identity),
Err(error) => errors.push(format!("{url}: {error:#}")),
}
}
bail!(
"failed to query CDP browser identity on loopback addresses: {}",
errors.join("; ")
)
}
async fn query_targets_url(
client: &reqwest::Client,
url: &str,
debug_port: u16,
) -> anyhow::Result<Vec<CdpTarget>> {
let response = client
.get(url)
.send()
.await
.context("failed to query CDP targets")?
.error_for_status()
.context("CDP target query failed")?;
View on GitHub (pinned to f2074595a2)
Solutions
- Verify the browser exposes /json/version on the expected port
- Check webSocketDebuggerUrl points at loopback and the same port
- Retry after a browser restart; inspect the per-URL errors in the message
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at crates/codex-plus-core/src/cdp.rs:178 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of BigPizzaV3/CodexPlusPlus@f2074595a2 (2026-08-23).
Data as JSON: /api/errors/5f503bf5de0e86e4.
Report an issue: GitHub.