A transient error reading the billing sweep schedule is read as the schedule being absent #12

Open
opened 2026-09-21 07:18:05 +00:00 by cgalo5758 · 0 comments
Owner

What happens

EnsureSweepSchedule treats any error from describing the billing sweep schedule as "the schedule does not exist" and routes to creating it. Only a not-found error means that. A transient failure to describe therefore ends in a create that fails because the schedule is already there, and the update that would have refreshed the schedule's arguments never runs.

What should happen

Only a not-found error routes to create. Any other error is surfaced rather than swallowed, and a create that loses a race against another boot falls back to updating the schedule that is already registered.

Where

internal/workflows/billing/schedule.go.

Steps

Make the describe call fail with anything other than not-found while the schedule exists, then boot: the console tries to create the schedule, the create fails, and the sweep keeps the arguments it had.

Why it matters

The sweep goes on running with stale arguments after a configuration change, and the underlying error is reported as an absent schedule, which sends the reader looking in the wrong place. The same shape was fixed in the wiki sync schedule; this one carries no stored workspace identifier, so a skipped refresh is the whole of the damage.

Migrated from status/issues.md at b7a0e15

## What happens `EnsureSweepSchedule` treats any error from describing the billing sweep schedule as "the schedule does not exist" and routes to creating it. Only a not-found error means that. A transient failure to describe therefore ends in a create that fails because the schedule is already there, and the update that would have refreshed the schedule's arguments never runs. ## What should happen Only a not-found error routes to create. Any other error is surfaced rather than swallowed, and a create that loses a race against another boot falls back to updating the schedule that is already registered. ## Where [`internal/workflows/billing/schedule.go`](https://git.coopcloud.tech/wiki-cafe/member-console/src/commit/b7a0e15/internal/workflows/billing/schedule.go). ## Steps Make the describe call fail with anything other than not-found while the schedule exists, then boot: the console tries to create the schedule, the create fails, and the sweep keeps the arguments it had. ## Why it matters The sweep goes on running with stale arguments after a configuration change, and the underlying error is reported as an absent schedule, which sends the reader looking in the wrong place. The same shape was fixed in the wiki sync schedule; this one carries no stored workspace identifier, so a skipped refresh is the whole of the damage. Migrated from status/issues.md at b7a0e15
cgalo5758 added the
kind
bug
area/billingarea/ops
labels 2026-09-21 07:18:05 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wiki-cafe/member-console#12