Skip to main content
本参考页面说明如何识别 Web Unlocker API 错误、同一错误在两种接入模式下的呈现方式,以及最常见错误代码的解决方法。

如何判断错误来自 Web Unlocker 还是目标网站?

每个 Web Unlocker 错误都带有描述失败原因的 x-brd-error 响应头。大多数错误还带有机器可读的错误代码:unlocker 层错误使用 x-brd-error-code,透传的代理层错误使用 x-brd-err-code。如果响应中没有 x-brd-error,则该响应来自目标网站本身,包括目标网站自己的错误页面和 4xx/5xx 状态码,这些内容会原样传递给您。 请基于错误代码(而不是错误消息文本)编写分支逻辑,因为消息中包含选择器、主机名、超时时间等与具体请求相关的细节。

错误在两种接入模式下分别出现在哪里?

两种接入模式返回相同的错误代码,区别在于 HTTP 状态码所在的位置: 在原生代理模式下,国家和会话选项从 JSON body 参数改为用户名标志(例如 -country-us),但产生的错误代码相同。 同一失败在 Direct API 下的响应:
Direct API 响应
在原生代理下的响应:
原生代理响应

哪些响应头携带错误代码?

按层级分为两组错误响应头: 两组响应头在两种接入模式下都可能出现。状态码为 400403407 的响应还带有 RFC9209 Proxy-Status 响应头,其 details 字段会重复代理层代码(例如 details="policy_20020: Bad Port used...")。下文列出的 502 解锁失败不携带该响应头。

哪些错误可以通过重试解决?

由 peer 或解锁尝试本身导致的错误值得重试,因为每次请求使用不同的 peer。由目标网站自身属性或您的请求参数导致的错误,每次尝试都会返回相同结果。

错误目录

HTTP 错误 400

400 表示请求在解锁尝试开始前就被拒绝,原因是 zone 配置或请求本身不允许该请求。这类响应不包含 x-brd-debug 响应头。

premium

feature_not_active

ub_bad_endpoint_robots

请求校验(仅 Direct API,真实外层 400)

HTTP 错误 401(仅 Direct API)

API key 认证发生在请求到达 unlocker 之前,因此这类错误返回真实的外层 401,带有纯文本 body,不包含 x-brd-* 响应头。

HTTP 错误 403

访问受 Bright Data 政策限制。这类错误大多在 x-brd-err-code 中携带代理层代码,详见代理错误目录

HTTP 错误 407

代理层认证失败。在原生代理下,407 是外层状态码,状态原因短语中带有摘要信息。在 Direct API 下,同样的 407 出现在 x-brd-status-code 中。

HTTP 错误 429

sr_rate_limit

HTTP 错误 502

502 表示解锁尝试本身失败,原因在 x-brd-error-code 中。

reject_block

resolve_failed_*

http_status

expect_element

domcontentloaded_event_timeout

document_load_failed

net_err_cert_date_invalid

net_err_cert_common_name_invalid

net_err_cert_authority_invalid

net_err_closed

rate_limit

proxy_error

no_peers

HTTP 错误 503

服务不可用。浏览器检查失败或未完成。目标网站自身返回的 503 会原样交付,不带 x-brd-error 响应头。