Skip to content

Reject max_attempts=None in RetryPolicy instead of crashing - #1212

Open
magic-peach wants to merge 1 commit into
dapr:mainfrom
magic-peach:fix/retry-policy-none-max-attempts-crash
Open

Reject max_attempts=None in RetryPolicy instead of crashing#1212
magic-peach wants to merge 1 commit into
dapr:mainfrom
magic-peach:fix/retry-policy-none-max-attempts-crash

Conversation

@magic-peach

Copy link
Copy Markdown

Description

RetryPolicy's constructor types max_attempts as Optional[int], but the validation compared it directly against -1, so RetryPolicy(max_attempts=None) raised an unhelpful TypeError instead of the same ValueError every other invalid constructor argument gets. settings.DAPR_API_MAX_RETRIES, the actual default, can never itself become None at runtime, so this only affects a caller who explicitly passes None, which the type hint invites. Fixed with a one line guard.

Issue reference

Please reference the issue this PR will close: N/A, self-discovered while reviewing dapr/clients/retry.py, no existing issue filed.

Checklist

  • Code compiles correctly
  • Created/updated tests
  • Extended the documentation

The constructor's type hint allows max_attempts to be None, but the
validation compared it directly against -1, raising an unhelpful
TypeError instead of the same ValueError every other invalid value
gets. Now None is rejected with the same clear message.

Signed-off-by: Akanksha Trehun <akankshatrehun@gmail.com>
@magic-peach
magic-peach requested review from a team as code owners September 14, 2026 14:19
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