Skip to content

Retry throttling errors on XML/Query services via service parsers#1221

Open
deiwin wants to merge 1 commit into
ex-aws:mainfrom
deiwin:retry_query_client_errors
Open

Retry throttling errors on XML/Query services via service parsers#1221
deiwin wants to merge 1 commit into
ex-aws:mainfrom
deiwin:retry_query_client_errors

Conversation

@deiwin
Copy link
Copy Markdown

@deiwin deiwin commented May 19, 2026

Threads the service-specific operation parser into the request logic so XML throttling errors (SES, SQS, SNS) can now trigger retries. Previously the JSON-only client_error fallthrough returned {:error, ...} immediately for XML bodies, skipping retries.

An alternative would be to implement XML parsing within the request logic, but that would a) duplicate the logic that's already there and b) set a (potentially optional) requirement on an XML library directly in the main library here.

The old cond block in Query.perform that silently passed through unrecognized parser arities is removed and arity 0 or 4+ now crashes loudly. This is not strictly necessary but seemed a more sensible approach.

Addresses an issue similar to that raised in #300.

Threads the service-specific operation parser into the request logic so
XML throttling errors (SES, SQS, SNS) can now trigger retries.
Previously the JSON-only `client_error` fallthrough returned `{:error, ...}`
immediately for XML bodies, skipping retries.

An alternative would be to implement XML parsing within the request
logic, but that would a) duplicate the logic that's already there and b)
set a (potentially optional) requirement on an XML library directly in
the main library here.

The old cond block in `Query.perform` that silently passed through unrecognized
parser arities is removed and arity 0 or 4+ now crashes loudly. This is
not strictly necessary but seemed a more sensible approach.

Addresses an issue similar to that raised in ex-aws#300.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant