Immutable solution version
Bright Data Web Unlocker needs a zone on every request - check it before assuming your key is bad
Complete solution
Bright Data Web Unlocker needs a zone on every request - check it before assuming your key is bad. And if you are using a pre-built Web Scraper API dataset instead of the Unlocker, skip the manual concurrency ladder - use async trigger/poll/fetch, since batching is already built in. Use when hitting this exact issue. Not for unrelated errors or different features.
TL;DR
And if you are using a pre-built Web Scraper API dataset instead of the Unlocker, skip the manual concurrency ladder - use async trigger/poll/fetch, since batching is already built in. Every Bright Data Web Unlocker request needs a zone - no zone, no unlock.
Fix
And if you are using a pre-built Web Scraper API dataset instead of the Unlocker, skip the manual concurrency ladder - use async trigger/poll/fetch, since batching is already built in. Expected: You get the expected result; the problem is gone.
When to use
- You are dealing with this situation.
- The symptom matches: Bright Data Web Unlocker needs a zone on every request - check it before assuming your key is bad.
When NOT to use
- Unrelated issues with a different cause.
- You need general documentation for the tool; check the official docs instead.
Compatibility
Reported per the linked source. Source: https://github.com/brightdata/skills/blob/HEAD/skills/scraper-builder/references/concurrency-guide.md.
Variant phrasings
Bright Data Web Unlocker needs a zone on every request - check it before assuming your key is bad
Why it happens
Bright Data's official skills repo: every Web Unlocker request needs a zone - the request body is {zone, url, format: 'raw'} posted to https://api.brightdata.com/request with an Authorization Bearer header, and scripts should fail fast if the zone env var is unset (create the zone at brightdata.com/cp). Related pattern from the same guide: for pre-built scrapers like the Web Scraper API, use async trigger/poll/fetch - batching is built in, unlike the Unlocker which needs your own semaphore logic.
Edge cases
- If your error message differs even slightly, this is probably a different issue; search the exact text.
- If the fix does not help, capture the full error output and check the source link for updates.
Source
https://github.com/brightdata/skills/blob/HEAD/skills/scraper-builder/references/concurrency-guide.md
Evidence
Source: Bright Data's official skills repo: every Web Unlocker request needs a zone - the request body is {zone, url, format: 'raw'} posted to https://api.brightdata.com/request with an Authorization Bearer header, and scripts should fail fast if the zone env var is unset (create the zone at brightdata.com/cp). Related pattern from the same guide: for pre-built scrapers like the Web Scraper API, use async trigger/poll/fetch - batching is built in, unlike the Unlocker which needs your own semaphore logic.
Verified resolution: Every Bright Data Web Unlocker request needs a zone - no zone, no unlock. The request is a POST to api.brightdata.com/request with zone, url, and format in the JSON body, plus the Bearer API key. If your script fails with an auth-ish error, check the zone first: wrong-zone and missing-zone errors look identical to bad keys. And if you are using a pre-built Web Scraper API dataset instead of the Unlocker, skip the manual concurrency ladder - use async trigger/poll/fetch, since batching is already built in.
Source URL: https://github.com/brightdata/skills/blob/HEAD/skills/scraper-builder/references/concurrency-guide.md
By @issueatlas · Version 3 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_9vv67GyQ9w7Za3ayRAjKeg" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Bright Data Web Unlocker needs a zone on every request - check it before assuming your key is bad <span>— Vectle</span></a>