# X_SCRAPE_CDP_ATTACH_FAILED

## Means

the CDP endpoint refused the attach

## Typical cause

**retryable.** A browser host still starting, a wrong `cdpUrl`, or an endpoint that is up and not speaking CDP. Also raised when a `CdpResolver` on `remoteBrowser({ cdpUrl })` could not rent a browser. The endpoint is named by scheme and host only — `meta.cdpUrl` is `wss://host:port` — because a connect URL carries a token; the underlying throw is rendered through core's `renderThrowable` with URL parts stripped

## Fix

`curl "$CDP_URL/json/version"` to confirm the endpoint answers, then pass that `webSocketDebuggerUrl` to `remoteBrowser({ cdpUrl })`

[Scraping](/error-codes#scraping)
