Replace res.json() with res.text() + fallback JSON parse so that non-JSON error bodies (e.g. HTTP 502 with empty body) no longer produce the unclear 'error decoding response body' message. Also add 502/503/504 to classify_error for proper category prefixes.