A best sellers category that does not resolve now returns NOT_FOUND instead of
PARSE_ERROR. The extractor always told the two apart, grid rendered with no
cards being an unknown category rather than a layout change, but the fetch ladder
converted every extractor exception into PARSE_ERROR and that judgement never
reached the caller. Two costs: a caller was told their well-formed slug had hit a
layout change, and the alarm that means "go read the extractor" fired on every
typo. Measured on /gp/bestsellers/computers and /gp/bestsellers/toys, which
Amazon answers with 200, no redirect, the page frame rendered, and the word
undefined where the department name belongs.
On the vendor tier, that same verdict now stops the chain instead of failing over.
A category that does not exist will not exist for the next vendor, and the second
call buys the same answer at the same price.
The propagated NOT_FOUND carries the ladder's facts: tier, outbound attempts,
ladder duration, queue and token waits, and the vendors actually tried. Passing
the extractor's error through untouched had dropped all of them, so tool_call
could no longer show that nothing escalated.