Skip to content

feat: (ctl-api) skip auto-retries on terminal step errors#1104

Open
onprem wants to merge 27 commits intomainfrom
ps/skip-auto-retries-when-no-builds
Open

feat: (ctl-api) skip auto-retries on terminal step errors#1104
onprem wants to merge 27 commits intomainfrom
ps/skip-auto-retries-when-no-builds

Conversation

@onprem
Copy link
Copy Markdown
Contributor

@onprem onprem commented Apr 30, 2026

Introduces a generic terminal-error mechanism so signals can mark a step failure as terminal — meaning retrying without external action cannot change the outcome (e.g., missing component build, build in error state). The conductor short-circuits auto-retry and surfaces a stable reason_code for the dashboard / CLI to render.

Without this, a freshly-created install where a component had no successful build would burn the full auto-retry budget (3) on each sync/plan step before failing, even though the underlying condition will never resolve mid-run.

Screenshot 2026-04-30 at 8 16 27 PM

the step in not auto-retried.

Screenshot 2026-04-30 at 8 16 34 PM

@onprem onprem force-pushed the ps/skip-auto-retries-when-no-builds branch from 6506b28 to 4dc02fd Compare April 30, 2026 14:31
@onprem onprem marked this pull request as ready for review April 30, 2026 14:47
// succeed. Step-level auto-retry short-circuits on this marker
// (see signal.IsTerminalError).
return signal.NewTerminalError(
"component_build_errored",
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.

we should probably have a component build terminal error type for these

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

So have one defined globally that we can reuse right? Will do.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

done!

@onprem onprem force-pushed the ps/skip-auto-retries-when-no-builds branch from 7fa1844 to 83de0e3 Compare April 30, 2026 15:09
onprem added 2 commits April 30, 2026 21:28
Introduces a generic terminal-error mechanism so signals can mark a step
failure as terminal — meaning retrying without external action cannot
change the outcome (e.g., missing component build, build in error
state). The conductor short-circuits auto-retry and surfaces a stable
reason_code for the dashboard / CLI to render.

Without this, a freshly-created install where a component had no
successful build would burn the full auto-retry budget (3) on each
sync/plan step before failing, even though the underlying condition
will never resolve mid-run.
Signed-off-by: Prem Saraswat <prem@nuon.co>
@onprem onprem force-pushed the ps/skip-auto-retries-when-no-builds branch from 83de0e3 to c36e8e6 Compare April 30, 2026 15:58
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 2, 2026

This PR was marked as stale, and will be closed after 3 more days. Add the #keep-open label to prevent this from being closed.

@github-actions github-actions Bot added the stale label May 2, 2026
@github-actions github-actions Bot removed the stale label May 2, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 2, 2026

This PR was marked as stale, and will be closed after 3 more days. Add the #keep-open label to prevent this from being closed.

@github-actions github-actions Bot added the stale label May 2, 2026
@github-actions github-actions Bot removed the stale label May 3, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 3, 2026

This PR was marked as stale, and will be closed after 3 more days. Add the #keep-open label to prevent this from being closed.

@github-actions github-actions Bot added the stale label May 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants