aaltshuler commented on issue #737: URL: https://github.com/apache/arrow-rs-object-store/issues/737#issuecomment-5362075063
We hit the same boundary while adding typed storage failures downstream. With `object_store` 0.13.2, the public `HttpErrorKind` is sufficient for transport failures (`Connect`, `Request`, `Timeout`, and `Interrupted`). It is not sufficient for exhausted HTTP responses: a real S3-compatible 408, 429, 500, 502, 503, or 504 becomes `object_store::Error::Generic -> RetryError -> RequestError::Status`, while the `client::retry` module is private. We pinned this with a local HTTP responder and `AmazonS3Builder` configured for one retry. Downstream can prove that the public error is `Generic`, but cannot inspect the status without parsing display text, so we must conservatively classify all six as unknown. An `Error::is_temporary()` / retry-disposition API would solve our use case. Exposing a stable typed cause/status for exhausted requests would also work and would preserve the distinction between "the provider already retried this" and "the caller is authorized to replay the larger operation." -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
