Skip to content

urlopen raises on 5xx, which bypassed the retry budget

http_transport originally let urllib raise. urlopen raises HTTPError on 4xx and 5xx, so a retryable 500 from Qt propagated as a fatal exception and the retry logic in gerrit._get never saw it, despite 500 being in its retryable set. The transport now returns (status, headers, body) for error responses too, which is what makes the budget and Retry-After handling real rather than decorative.