Hi,
I am seeing a weird secrets status issue on a Fly Machines app where the runtime
environment looks correct, but flyctl secrets list keeps reporting every
secret as Staged.
Environment:
- Fly Machines app
flyctl v0.4.51 linux/amd64, BuildDate2026-05-12T15:53:23Z- app has 8 Machines across app/worker process groups
- UTC window around
2026-05-13 21:37-21:59+
The command:
flyctl secrets list -a <app> --json \
| jq -r 'group_by(.status)[] | "\(.[0].status): \(length)"'
keeps returning:
Staged: 55
The confusing part is that the running Machines appear to have the correct
runtime environment.
Things I tried that did not clear the staged status:
flyctl secrets deploy -a flyctl secrets sync -a flyctl secrets sync
-a && flyctl secrets deploy -a
I also tried importing current runtime values as non-staged secrets, setting one
targeted non-staged secret to its current runtime value, and doing a normal
current-image app deploy through our repo wrapper / flyctl deploy using the
current image and config.
For example, the targeted set was:
flyctl secrets set SENTRY_ENABLE_LOGS= -a
Deploys/releases did happen; the Machines were updated and became healthy each
time.
I found a few possibly related threads:
- Staged secrets aren't deployed
- Secrets aren't updating
- Flyctl update for managing secrets
- flyctl secrets sync
So I am wondering if this is just stale secret version/status metadata rather
than a real runtime secrets problem.
Can secret version/status metadata get stuck for a Machines app? If so, is there
any operator-side way to reset/reconcile the app-level minimum secret version or
status state?
Is this a bug on fly’s end?
I can share the app name / Machine IDs privately with Fly staff if useful.
Thanks!