Owns: how classifyScrapeError maps a scrape result to an outcome kind, and what each kind does downstream (price update / retry / delist).
| Response | Kind | Downstream action |
|---|---|---|
| 200 + product + price | success | update price |
| 200 + product, no price | no_data (soft) |
retry |
| 200, isActive:false / category-redirect | stub-page |
delist clock |
| 404 | http4xx |
delist clock |
| WAF challenge / reese84 | block | retry, do not delist |
| timeout / 5xx | transient | retry with cooldown |
Stub — expand before the next change to the scan writeback. Related: Product Liveness.