Skip to content

fix(uipath-platform): retry 500 responses for GET requests - #1849

Open
chandhanshanth wants to merge 1 commit into
mainfrom
fix/retry-500-get
Open

fix(uipath-platform): retry 500 responses for GET requests#1849
chandhanshanth wants to merge 1 commit into
mainfrom
fix/retry-500-get

Conversation

@chandhanshanth

@chandhanshanth chandhanshanth commented Aug 7, 2026

Copy link
Copy Markdown

Summary

  • 500 responses are now retried when the failing request is a GET, since GET is idempotent and safe to retry regardless of whether the 500 was transient. Other methods keep treating a bare 500 as non-retryable (may reflect a non-idempotent server-side bug).
  • If required this can extended to other idempotent requests.
  • Bumped uipath-platform to 0.2.18 (required by the version-availability CI check for src/ changes).

Test plan

  • pytest tests/services/test_retry.py — added test_enriched_500_get_retryable, test_enriched_500_get_lowercase_retryable, renamed test_enriched_500_not_retryabletest_enriched_500_post_not_retryable
  • ruff check / ruff format --check / mypy src tests on uipath-platform

🤖 Generated with Claude Code

GET is idempotent, so a bare 500 can be safely retried when the request
is a GET, even though it's left non-retryable for other methods since it
may indicate a non-idempotent, non-transient server bug.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 7, 2026 17:29
@github-actions github-actions Bot added test:uipath-langchain Triggers tests in the uipath-langchain-python repository test:uipath-integrations labels Aug 7, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the UiPath Platform SDK’s retry classification so that HTTP 500 responses are treated as retryable only for idempotent GET requests (via EnrichedException), aligning retry behavior with method safety while keeping non-GET 500s non-retryable.

Changes:

  • Extend is_retryable_platform_exception to treat status 500 as retryable when the enriched request method is GET (case-insensitive).
  • Expand and rename retry-related tests to cover 500 behavior for GET vs POST, including lowercase method handling.
  • Bump uipath-platform package version to 0.2.18.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
packages/uipath-platform/src/uipath/platform/common/retry.py Adds GET-only retry classification for HTTP 500 via EnrichedException.http_method.
packages/uipath-platform/tests/services/test_retry.py Updates helper to parameterize request method and adds coverage for 500 GET retryability (incl. lowercase).
packages/uipath-platform/pyproject.toml Increments package version to reflect the behavior change.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:uipath-integrations test:uipath-langchain Triggers tests in the uipath-langchain-python repository

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants