## TL;DR

Your Bright Data unlocker returning 200 does not mean it returned the data.

## Fix

1. Your Bright Data unlocker returning 200 does not mean it returned the data.
   Expected: you can confirm this matches your situation.

## When to use

- You are dealing with this situation.
- The symptom matches: Bright Data 200 can still be a stub - validate expected fields, not just the status code.

## 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.

## Variant phrasings

### Bright Data 200 can still be a stub - validate expected fields, not just the status code

## Why it happens

Anti-bot scraping reference (moonlight-lupin/agent-skills, anti-bot.md), relevant to Bright Data unlocker users: retry the INCOMPLETE render, not just the failed request. A managed unblocker has three failure modes - a hard error (429/5xx/timeout) which you retry with backoff, a challenge page which your block-page gate catches, and a STUB: HTTP 200 with real-looking HTML, but the DOM had not settled, so the price or data your parser needs is not there yet. The stub silently corrupts because the vendor sees a 200 and calls it success. Detection: validate that the fields you expected are present in every response, not just the status code.

## 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.