argoproj / argoproj/argo-workflows

Allow transient errors to not be counted against the retry limit

Open
#6,498 6 comments 1 reaction 0 assignees View on GitHub
area/controller
Dominant language
Go
Stars
17k
Forks
3.7k
Avg merge
1d 20h
Merged PRs (30d)
138

Description

# Summary

Add a flag to `RetryStrategy` to not count errors defined as transient (those defined in the codebase and those that match the `TRANSIENT_ERROR_PATTERN` environment variable) against the retry limit. I could also see never counting transient errors against the retry limit being the way to go instead

# Use Cases

- If you use preemptible nodes (or the equivalent), retries from pod deletion errors are counted against the limit but you may want to always retry those kinds of errors
- If you get an API timeout error you may not want those retries to count against the limit

---

**Message from the maintainers**:

Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

Contributor guide

Open the contributing guide

Research direction

Locate RetryStrategy and the existing transient-error handling, including the TRANSIENT_ERROR_PATTERN environment variable. Read the retry-related tests and trace how errors consume the retry limit. Done means transient errors can be excluded from that limit through the agreed flag or policy, with coverage for defined transient errors and pattern matches.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
backend, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.