fetch/extract/batch run writes a secret-free record under .zenrows/runs/<run-id>/. Read it before reflexively adding more flags.
zenrows trace inspect <run-id> # raw run record
zenrows trace explain <run-id> # what happened and why
zenrows trace replay <run-id> # print the equivalent command to re-run
zenrows trace export <run-id> # JSON, for piping elsewhere
Error codes
| Code | When it happens | Next action |
|---|---|---|
AUTH_MISSING | No API key is configured | zenrows login --api-key <your-key> |
AUTH_INVALID | Zenrows rejected the key | Re-check the key in the dashboard, then zenrows login --api-key <your-key> again |
DOMAIN_FORBIDDEN | The target domain is blocked by Zenrows policy | Permanent, the same request fails again with any flags. Use a different source |
FETCH_EMPTY_RESPONSE | The page returned no usable content | Retry with --js-render and a --wait-for <selector> or --wait <ms> |
PARAM_CONFLICT_AUTO_MANUAL | --js-render / --premium-proxy passed without --manual | Drop those flags to keep the automatic default, or add --manual |
PARAM_PROXY_COUNTRY_REQUIRES_PREMIUM | --proxy-country used in manual mode without --premium-proxy | Add --premium-proxy (10 credits), or drop --manual to use auto mode |
POLICY_MAX_CREDITS_EXCEEDED | Out of credits, or over max_credits_per_run | Claim the Free-plan account (if unclaimed), or add credits/upgrade in the dashboard |
POLICY_EXPERIMENTAL_DISABLED | zenrows browser used before enabling it | zenrows policy set allow_browser true, only once Fetch/Extract genuinely can’t do the job |
MCP_CLIENT_UNSUPPORTED | --client isn’t a known MCP client id | Use one of the supported client ids, or generate a generic config snippet |
CAPABILITY_UNAVAILABLE | The command’s backend capability isn’t enabled yet | Use a local spec/validation path, or escalate to Protected Fetch/Extract |