Hi Fly team/community,
I am seeing a persistent false Staged status from fly secrets list for one Machines app. This looks very similar to the recent report where secrets kept showing as Staged despite deploys, but I found a more specific release-index mismatch that seems to explain it.
Sanitized details:
- Affected app: one development Machines app only.
- Current machine release/version: v536.
fly releases -a <app> --jsonshows latest release v536 and the machine metadata also reports release v536.fly secrets list -a <app> --jsonreports all 58 app secrets asStaged.- The app is healthy and runtime behavior confirms newly-set secrets are applied.
- Production apps in the same account are unaffected; their secret statuses show all
Deployed.
What I already tried on the affected development app:
fly secrets deployfly secrets sync- setting a non-sensitive config secret without
--stage - same-image
fly deploy - re-importing/rehydrating the existing dev secrets without printing values
- upgrading flyctl from 0.4.51 to 0.4.57
All of those created healthy complete releases / machine updates, but fly secrets list still reports every secret as Staged.
The interesting part: from reading flyctl v0.4.57 source, the secrets list status appears to compute deployment status by comparing each secret updated_at against the current machine release created_at, where release timestamps come from the UIEX releases endpoint.
For this affected app, the UIEX endpoint used by flyctl appears stale:
fly releases -a <app> --json: latest release is v536https://api.fly.io/api/v1/apps/<app>/releases?limit=200: latest/max release returned is v487, so it does not include the active machine release v536
If I recompute the status using the Machines secrets timestamps plus the release timestamp from fly releases --json, I get:
{
"secrets_count": 58,
"computed_counts": {"Deployed": 58},
"machine_versions": ["536"],
"graphql_latest_release_version": 536,
"uiex_latest_release_version": 487,
"uiex_has_machine_versions": false
}
So this looks like a false Staged status caused by a stale/incomplete releases endpoint for this app, not an actual secrets deployment failure.
Questions:
- Is the UIEX releases endpoint expected to be authoritative for secret status calculation?
- Can Fly refresh or repair the release index for this app so
fly secrets liststops reporting falseStaged? - Is there any runtime risk if
fly secrets listshows Staged but the active machine release is newer than all secretupdated_attimestamps? - Is there a safer workaround than recreating the development app or machine?
I intentionally omitted secret names, values, digests, account identifiers, and app names from this public post. Happy to provide exact app/machine IDs privately to Fly staff if needed.
Thanks!