carlos / platform Public

moves offline: one stage round per request, and carlos move offline stage

A stage round ran on every moves pass while the record was staging, and
the moves pass runs on every serial bump: an idle or forgotten staging
would have listed both buckets over and over. Now each stage request is
one round. The record's staged_at is the request; a second stage moves
it forward (provision.OfflineRestage, staging to staging, requested_at
untouched so the move still reads as never started). The stager report
names the staged_at its round answered (stage_request), and a pass whose
report already answers the record's runs nothing: one report read, no S3
request. A failed round is retried by running stage again.

The console's view carries staged_at, never_offline (staged and never
started) and the round's request, so the CLI knows which round it waits
for and what an abort means.

carlos move offline stage --host H --to R posts the stage door and waits
for its own round, then says how much is staged and that start comes
next. status while staging says the stage's line instead of the
manifest's items. abort of a move still staging says it removes the
staged copy, not that it moves the instance back. The CLI page documents
the verb.

Copy: MV-O179 to MV-O189 added, pending Luna's review. MV-O181 is the
usage line with stage, which replaces MV-O56; MV-O56 goes back to pending
until Luna approves its replacement.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 25c0db2690c4dfdeea9d25f82ad4867934e9d627 parent 0b4ff76
13 files changed, +576 −72
  • approved_moves_copy_test.go +2 −0
  • docs/site/cli.md +3 −0
  • docs/superpowers/plans/2026-10-06-moves-phase1-copy.md +23 −1
  • internal/console/apiinstancemove_offline.go +43 −28
  • internal/console/apiinstancemove_offline_stage_test.go +22 −14
  • internal/host/movesoffline_stage.go +22 −7
  • internal/host/movesoffline_stage_test.go +20 −1
  • internal/moves/offline.go +4 −0
  • internal/provision/offline_move.go +28 −3
  • internal/provision/offline_stage_test.go +38 −2
  • move.go +134 −8
  • move_test.go +103 −1
  • offline_move_e2e_test.go +134 −7

CI failed — run details

CI log
amadan: log truncated — showing the last 330693 bytes of 717800
2026/10/21 12:37:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:05 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:05 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:05 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:05 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: materialized account bac (Testco) from the bucket
2026/10/21 12:37:06 console: account telemetry bac: dirstore: invalid key "apps/bac//telemetry.json"
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: materialized account bac (Testco) from the bucket
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: control-plane check console in account bab: SQL logic error: no such column: control_plane (1)
2026/10/21 12:37:06 console: control-plane check console in account bab: SQL logic error: no such column: control_plane (1)
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:07 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:07 console: api instances create bab/titogo: refused: acme.go.tito.io still holds replica data from a deleted record (#199); purge it to free the host
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:07 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:07 console: api sidecars create bab/titogo: refused: bot.titogo.bab.sidecar.internal still holds replica data from a deleted record (#199); purge it to free the host
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:07 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:07 console: api instances create bab/titogo: refused: acme.go.tito.io still holds replica data from a deleted record (#199); purge it to free the host
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:07 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:07 console: api sidecars create bab/titogo: refused: bot.titogo.bab.sidecar.internal still holds replica data from a deleted record (#199); purge it to free the host
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:07 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:07 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:07 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:07 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:07 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:08 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:08 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:08 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:08 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 console: api instances create bab/titogo: leftover replica check for acme.go.tito.io: replica client for instances/acme.go.tito.io: resolve region for secret-bucket: no credentials
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 console: api instances create bab/titogo: leftover replica check for acme.go.tito.io: list instances/acme.go.tito.io level 0: list secret-bucket: connection reset
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 console: api instances create bab/titogo: leftover replica check for acme.go.tito.io: list instances/acme.go.tito.io level 0: page secret-bucket: timeout
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 console: api sidecars create bab/titogo: leftover replica check for bot.titogo.bab.sidecar.internal: replica client for instances/bot.titogo.bab.sidecar.internal: resolve region for secret-bucket: no credentials
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 console: api sidecars create bab/titogo: leftover replica check for bot.titogo.bab.sidecar.internal: list instances/bot.titogo.bab.sidecar.internal level 0: list secret-bucket: connection reset
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 console: api sidecars create bab/titogo: leftover replica check for bot.titogo.bab.sidecar.internal: list instances/bot.titogo.bab.sidecar.internal level 0: page secret-bucket: timeout
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:08 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:08 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:08 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:08 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 console: api instances create bab/titogo: refused: acme.go.tito.io still holds replica data from a deleted record (#199); purge it to free the host
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 console: api sidecars create bab/titogo: refused: bot.titogo.bab.sidecar.internal still holds replica data from a deleted record (#199); purge it to free the host
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:08 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:08 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:08 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:09 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:09 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: api instances create bab/titogo: read existing record for acme.go.tito.io: get secret-bucket: connection reset
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: api sidecars create bab/titogo: read existing record for bot.titogo.bab.sidecar.internal: get secret-bucket: connection reset
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:09 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:09 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/21 12:37:09 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/21 12:37:09 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: materialized account bac (Testco) from the bucket
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: materialized account bac (Testco) from the bucket
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: materialized account bac (Testco) from the bucket
2026/10/21 12:37:09 console: tombstone account bac: console: no deployment release store is configured on this box
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: trash marker bab/kass: release: malformed trash marker for bab/kass: invalid character 'n' looking for beginning of object key string
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: purge preflight bab/kass: release: bab/kass is flagged production — a trashed production app should be impossible; refusing to purge
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: purge preflight bab/kass: release: bab/kass is flagged production — a trashed production app should be impossible; refusing to purge
2026/10/21 12:37:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:09 console: bab/kass has no trash marker and still has objects; restoring it here
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:10 edgesfile: could not load box snapshots (bucket list refused) — edge set falls back to the configured list
2026/10/21 12:37:10 console: versions kass: bucket list refused
2026/10/21 12:37:10 console: tags kass: bucket list refused
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/21 12:37:10 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/21 12:37:10 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/21 12:37:10 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/21 12:37:10 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/21 12:37:10 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: deploy signer for bab/hello: key grant signature verification failed (not signed by the deployment's root release key)
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:10 console: deploy signer for bab/hello: mint key grant: invalid name "deploy.bad name!" (letters, digits, . _ - ; up to 64)
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: attach story.carlosframework.com: existing record is not this door's to adopt (read: provision: record bab/story/story.carlosframework.com: provision: invalid maintenance projection or protected fields)
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: attach story.carlosframework.com: existing record is not this door's to adopt (read: <nil>)
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: attach story.carlosframework.com: record write: opStore: timed out after the object landed
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: attach story.carlosframework.com: claim write: opStore: bucket unavailable
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: attach story.carlosframework.com: record write: opStore: bucket unavailable
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: bill pass 2026-08: cost explorer: AccessDeniedException: user is not authorized
2026/10/21 12:37:13 console: bill pass 2026-07: cost explorer: AccessDeniedException: user is not authorized
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: bill pass 2026-08: cost explorer: ThrottlingException: rate exceeded
2026/10/21 12:37:13 console: bill pass 2026-07: cost explorer: ThrottlingException: rate exceeded
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: cost explorer: resolve aws credentials: failed to refresh cached credentials, no EC2 IMDS role found, operation error ec2imds: GetMetadata, exceeded maximum number of attempts, 3, request send failed, Get "http://169.254.169.254/latest/meta-data/iam/security-credentials/": dial tcp 169.254.169.254:80: connect: connection refused — bill pulls disabled for this process; manual bill entry only
2026/10/21 12:37:18 console: bill pass 2026-08: cost explorer: console: cost explorer disabled for this process
2026/10/21 12:37:18 console: bill pass 2026-07: cost explorer: console: cost explorer disabled for this process
2026/10/21 12:37:18 console: bill pass 2026-08: cost explorer: console: cost explorer disabled for this process
2026/10/21 12:37:18 console: bill pass 2026-07: cost explorer: console: cost explorer disabled for this process
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: storage pass: store bab/kass: endpoint down
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: storage pass: store record bab/kass: objstore: apps/bab/kass/store.json: invalid character 'n' looking for beginning of object key string
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: fold storage/census: storage day 2026-08-10: key "my-app/releases" has an invalid account segment "my-app"; attributing to bab
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:18 console: load economics: fleet meters unavailable: console: fleet meters: registry /tmp/TestLoadEconomicsDegradesWithoutRegistry3486792779/003/nonexistent-registry.db: stat /tmp/TestLoadEconomicsDegradesWithoutRegistry3486792779/003/nonexistent-registry.db: no such file or directory
2026/10/21 12:37:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: edge proof: first signed request from the edge — X-Forwarded-For from loopback now needs a proof
2026/10/21 12:37:19 console: a loopback request carried X-Forwarded-For with no valid edge proof; counting it against the peer address. Expected now and then from a process on this box; on every request it means the edge no longer signs (rolled back?) and every client shares one rate limit
2026/10/21 12:37:19 console: a loopback request carried X-Forwarded-For with no valid edge proof; counting it against the peer address. Expected now and then from a process on this box; on every request it means the edge no longer signs (rolled back?) and every client shares one rate limit
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: expiry pass: trash bab/tmp-a: release: write trash marker for bab/tmp-a: hookStore: put refused
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: expiry pass: early purge bab/tmp-a: release: bab/tmp-a was trashed at 2026-10-21T11:37:19Z, not 2026-10-18T12:37:19Z: release: the trash marker is not the one the purge was decided for
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: expiry pass: early purge bab/tmp-a: release: purge apps/bab/tmp-a/releases/v1/site.tar.gz: hookStore: delete refused
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: expiry pass: bab/tmp-a is marked as the control plane; not purging it
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: expiry pass: bab/tmp-a has email estate; not purging it
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: the apps/ listing is empty but 1 trashed row(s) exist here — refusing to release their names; is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: expiry pass: the apps/ listing holds nothing but trash markers, or could not be read; expiring nothing and finalising nothing this pass. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: expiry pass: the apps/ listing holds nothing but trash markers, or could not be read; expiring nothing and finalising nothing this pass. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: expiry pass: the apps/ listing holds nothing but trash markers, or could not be read; expiring nothing and finalising nothing this pass. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: the apps/ listing is empty but 1 trashed row(s) exist here — refusing to release their names; is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: expiry pass: the apps/ listing holds nothing but trash markers, or could not be read; expiring nothing and finalising nothing this pass. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: expiry pass: the apps/ listing holds nothing but trash markers, or could not be read; expiring nothing and finalising nothing this pass. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: expiry pass: the apps/ listing holds nothing but trash markers, or could not be read; expiring nothing and finalising nothing this pass. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/21 12:37:19 console: bab/tmp-due has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: bab/tmp-a is in the trash in the bucket; marking it trashed here
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: expiry pass: early purge bab/tmp-a: hookStore: delete refused
2026/10/21 12:37:19 console: expiry pass: the apps/ listing holds nothing but trash markers, or could not be read; expiring nothing and finalising nothing this pass. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: place bab/titogo: instance ghost.go.tito.io vanished mid-walk, skipping
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: fleet page bab/acme: load heartbeats: bucket list refused
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:21 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:21 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:21 console: geoip published ed972738 (GeoIP2-City, feed:test-feed)
2026/10/21 12:37:21 console: geoip published ed972738 (GeoIP2-City, feed:test-feed)
2026/10/21 12:37:21 console: geoip published ed972738 (GeoIP2-City, feed:test-feed)
2026/10/21 12:37:21 console: geoip feed test-feed: edition Tue, 06 Oct 2026 00:00:00 GMT rejected: checksum
2026/10/21 12:37:21 console: geoip feed test-feed: edition 2026-10 rejected: too large
2026/10/21 12:37:21 console: geoip feed test-feed: edition 2026-10 rejected: wrong type
2026/10/21 12:37:21 console: geoip feed test-feed: edition (none) rejected: download
2026/10/21 12:37:21 console: geoip feed status unreadable; this check's outcome was not recorded
2026/10/21 12:37:21 console: geoip feed status could not be cleared; retrying in 1ms
2026/10/21 12:37:21 console: geoip feed status could not be cleared; retrying in 2ms
2026/10/21 12:37:21 console: geoip published b3760190 (GeoIP2-Country, manual)
2026/10/21 12:37:21 console: geoip feed test-feed: edition (none) rejected: download
2026/10/21 12:37:21 console: geoip published ed972738 (GeoIP2-City, feed:test-feed)
2026/10/21 12:37:21 console: geoip database aaaaaaaa (GeoIP2-City) followed from this box's edge
2026/10/21 12:37:21 console: geoip database aaaaaaaa (GeoIP2-City) followed from this box's edge
2026/10/21 12:37:21 console: geoip database bbbbbbbb (GeoIP2-City) followed from this box's edge
2026/10/21 12:37:21 console: geoip database expired (GeoLite2, 30 days after build) and was closed
2026/10/21 12:37:21 console: geoip database cccccccc (GeoIP2-City) followed from this box's edge
2026/10/21 12:37:21 console: geoip local state unreadable; keeping the loaded database
2026/10/21 12:37:21 console: geoip database dddddddd (GeoIP2-City) followed from this box's edge
2026/10/21 12:37:21 console: geoip database expired (GeoLite2, 30 days after build) and was closed
2026/10/21 12:37:21 console: geoip local state unreadable; keeping the loaded database
2026/10/21 12:37:21 console: geoip database dddddddd (GeoIP2-City) followed from this box's edge
2026/10/21 12:37:21 console: geoip database expired (GeoLite2, 30 days after build) and was closed
2026/10/21 12:37:21 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/21 12:37:21 console: geoip published b3760190 (GeoIP2-Country, manual)
2026/10/21 12:37:21 console: geoip published b3760190 (GeoIP2-Country, manual)
2026/10/21 12:37:21 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/21 12:37:21 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/21 12:37:21 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/21 12:37:21 console: geoip published b3760190 (GeoIP2-Country, manual)
2026/10/21 12:37:21 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/21 12:37:21 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/21 12:37:21 console: geoip database bbbbbbbb expired (GeoLite2, 30 days after build) and was removed
2026/10/21 12:37:21 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/21 12:37:21 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/21 12:37:21 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/21 12:37:21 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/21 12:37:21 console: geoip published ed972738 (GeoIP2-City, feed:x)
2026/10/21 12:37:21 console: geoip published b3760190 (GeoIP2-Country, manual)
2026/10/21 12:37:22 console: geoip published ed972738 (GeoIP2-City, feed:x)
2026/10/21 12:37:22 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/21 12:37:22 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/21 12:37:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:25 console: audit instance-delete titogo: hostops: pending
2026/10/21 12:37:28 console: audit instance-delete titogo: hostops: pending
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: api instances delete bab/shop/old.shop.example.com: dirstore: apps/bab/shop/instances/old.shop.example.com.json: store: compare-and-swap conflict
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: infra pass: console: infra inventory not granted (disabled for this process): awsinv: every read was denied — this deployment has no inventory grant
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:28 console: instance store provision bab/shop/canary: objstore: bucket or IAM user name belongs to another store: carlos-bab-shop-canary
2026/10/21 12:37:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:29 console: instance store provision bab/shop/canary: objstore: bucket or IAM user name belongs to another store: carlos-bab-shop-canary
2026/10/21 12:37:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:29 console: instance store provision bab/shop/canary: objstore: bucket or IAM user name belongs to another store: carlos-bab-shop-canary
2026/10/21 12:37:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:29 console: instance store bab/shop/canary: seed sd_aaaaaaaaaaaaaaaaaaaaaaaaaa declaration not rolled back: the record was written since (its grant block or another writer), left as it is
2026/10/21 12:37:29 console: instance store provision bab/shop/canary: objstore: ensure user carlos-store-bab-shop-canary: iam is down
2026/10/21 12:37:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:29 console: instance store bab/shop/canary: seed sd_aaaaaaaaaaaaaaaaaaaaaaaaaa declaration not rolled back: the record was written since (its grant block or another writer), left as it is
2026/10/21 12:37:29 console: instance store provision bab/shop/canary: objstore: ensure user carlos-store-bab-shop-canary: iam is down
2026/10/21 12:37:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:29 console: instance store provision bab/shop/canary: objstore: bucket or IAM user name belongs to another store: carlos-bab-shop-canary
2026/10/21 12:37:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:29 console: could not notify alice@keymail.dev of a CLI token issue: Post "http://127.0.0.1:41837/api/app/send": dial tcp 127.0.0.1:41837: connect: connection refused
2026/10/21 12:37:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:29 console: invite to sam@gmail.com: no keymail mailbox, trying email
2026/10/21 12:37:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:29 console: invite to sam@keymail.dev by keymail: keymail: the recipient's proof-of-work price is above the console's cap
2026/10/21 12:37:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:29 console: invite to sam@keymail.dev: the recipient blocked the console on keymail; not emailing
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: invite to sam@gmail.com: no keymail mailbox, trying email
2026/10/21 12:37:30 console: invite to sam@gmail.com by email: console mail: sending identity not verified yet
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: invite to sam@gmail.com: no keymail mailbox, trying email
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: invite to sam@keymail.dev by keymail: context deadline exceeded
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: promote kass v3 -> stable: promote kass v3 -> stable: stable is entered from beta only, and this build is on edge — use --hotfix to bypass the ladder
2026/10/21 12:37:30 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:30 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:31 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:31 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:31 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:31 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:31 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:31 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:31 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:31 console: backfilled account manifest for bab (ops)
2026/10/21 12:37:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:36 console: audit system-update platform: sql: database is closed
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:38 console: mail push: suspended bab/jb-book — nothing accepted for 24h0m0s
2026/10/21 12:37:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:38 console: materialized account bbw (Blog) from the bucket
2026/10/21 12:37:38 console: materialized account mdbbndjqx (Kass) from the bucket
2026/10/21 12:37:38 console: materialized account bbw (Blog) from the bucket
2026/10/21 12:37:38 console: skipping accounts/bbx/account.json: sqid "bbx"/"elsewhere" is not Sqid(43)="bbx" — that is corruption, not a new account
2026/10/21 12:37:38 console: skipping accounts/broken/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/21 12:37:38 console: skipping accounts/empty/account.json: malformed account manifest: <nil>
2026/10/21 12:37:38 console: skipping accounts/wrong/account.json: sqid "wrong"/"wrong" is not Sqid(42)="bbw" — that is corruption, not a new account
2026/10/21 12:37:38 console: materialized account bac (Kass) from the bucket
2026/10/21 12:37:38 console: materialized account bbw (Kass) from the bucket
2026/10/21 12:37:38 console: materialized account bbw (Kass) from the bucket
2026/10/21 12:37:38 console: materialized account bac (Kass) from the bucket
2026/10/21 12:37:38 console: account bbw names owner "not-an-address", which is not a keymail address — nobody could sign in as it, so no membership was created. Fix it with: console member --add <address> bbw --role owner
2026/10/21 12:37:38 console: materialized account bbw (Kass) from the bucket
2026/10/21 12:37:38 console: accounts/bbw/account.json names owner "not-an-address", which is not a keymail address — materializing the account without it; give it one with `console member --add <address> bbw --role owner`
2026/10/21 12:37:38 console: materialized account bbw (Legacy) from the bucket
2026/10/21 12:37:38 console: materialized account bac (Testco) from the bucket
2026/10/21 12:37:38 console: reaped account bac (Testco) — its manifest is tombstoned
2026/10/21 12:37:38 console: materialized account bac (Testco) from the bucket
2026/10/21 12:37:38 console: reaped account bac (Testco) — its manifest is tombstoned
2026/10/21 12:37:38 console: materialized account bac (Testco) from the bucket
2026/10/21 12:37:38 console: bac/alpha is in the trash in the bucket — marking it trashed here
2026/10/21 12:37:38 console: bac/beta has no trash marker and still has objects — restoring it here
2026/10/21 12:37:38 console: bac/gamma is gone from the bucket — releasing the name here
2026/10/21 12:37:38 console: materialized account bac (Testco) from the bucket
2026/10/21 12:37:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:39 console: background metrics sweep panic, cache left at its last good sweep: simulated bucket panic
2026/10/21 12:37:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:39 console: background metrics sweep: list metrics/boxes/: bucket had a bad day
2026/10/21 12:37:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:40 console: background metrics sweep: list metrics/boxes/: bucket had a bad day
2026/10/21 12:37:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:41 console: moves: warning: acme.go.tito.io: the log of move mv_retired at done is held: the writer refuses it (hostops: identity mismatch); its entry is kept until its incarnation is purged
2026/10/21 12:37:41 console: moves: warning: acme.go.tito.io: the log of move mv_earlier at done is held: the writer refuses it (hostops: identity mismatch); its entry is kept until its incarnation is purged
2026/10/21 12:37:41 console: audit instance-delete titogo: hostops: pending
2026/10/21 12:37:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:50 console: moves: acme.go.tito.io: the start of move mv_wuzd5743ne52hpbxhi44g7p4cu settled not-applied
2026/10/21 12:37:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:51 console: moves: acme.go.tito.io: move mv_cdnws666363wdhhd2qiyaoh6zi closed by the console (rolled-back-close); the release follows
2026/10/21 12:37:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:51 console: moves: acme.go.tito.io: move mv_ognywrpvn3ho5u5nj6kh7ehhqe closed by the console (close); the release follows
2026/10/21 12:37:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:51 console: moves: acme.go.tito.io: move mv_rgw2dpk73huyrjqnlijbersq2u is still preparing after 6h0m0s; aborted
2026/10/21 12:37:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:52 console: moves: acme.go.tito.io: move mv_ohx3gp6klpbbqm2a6ozwmaolve closed by the console (close); the release follows
2026/10/21 12:37:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:52 console: moves: acme.go.tito.io: move mv_cznhejskkui4iydkzyjq4oflmu is still preparing after 6h0m0s; aborted
2026/10/21 12:37:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:52 console: moves: acme.go.tito.io: move mv_4kn6jbh3iqazqrweac3s7ywhpu closed by the console (close); the release follows
2026/10/21 12:37:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:53 console: moves: acme.go.tito.io: move mv_idar37zfs6b4hkpkgwu7afu4by closed by the console (close); the release follows
2026/10/21 12:37:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:53 console: moves: acme.go.tito.io: move mv_oilrhdb27zuf47b5p3hmp37gau closed by the console (close); the release follows
2026/10/21 12:37:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:53 console: moves: warning: kass.carlosapp.dev: the log of move mv_ykauvfhhv3cjqkt5mtt2d7cjam at elsewhere is held: the writer refuses it (hostops: identity mismatch); its entry is kept until its incarnation is purged
2026/10/21 12:37:53 console: moves: warning: acme.go.tito.io: the log of move mv_ykauvfhhv3cjqkt5mtt2d7cjam at stale is held: the writer refuses it (hostops: identity mismatch); its entry is kept until its incarnation is purged
2026/10/21 12:37:53 console: moves: warning: acme.go.tito.io: the log of move mv_forged at forged is held: the writer refuses it (hostops: identity mismatch); its entry is kept until its incarnation is purged
2026/10/21 12:37:53 console: moves: warning: acme.go.tito.io: the log of move mv_ykauvfhhv3cjqkt5mtt2d7cjam at retired is held: the writer refuses it (hostops: identity mismatch); its entry is kept until its incarnation is purged
2026/10/21 12:37:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:57 console: api instance move bab/titogo/acme.go.tito.io: declared loss refused: hostresolve: evidence or operation does not authorize resolution
2026/10/21 12:37:57 console: moves: warning: acme.go.tito.io: the log of move mv_m65wmqq3fsc2zwwm2mmixuyeea at rolling_back-target-lost has been unwritten for over an hour: unconfirmed: no loss of the move's target has committed, and the move can still be declared lost
2026/10/21 12:37:57 console: moves: acme.go.tito.io: the log of move mv_m65wmqq3fsc2zwwm2mmixuyeea at rolling_back-target-lost was never confirmed and the claim no longer holds the instance it was queued for; dropped
2026/10/21 12:37:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:37:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:00 console: api instance move bab/titogo/acme.go.tito.io: typed move write: moves: the declared loss cannot be queued in the move log: SQL logic error: no such table: move_log_outbox (1)
2026/10/21 12:38:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:01 console: claim request refused: moves: the declared loss cannot be queued in the move log: SQL logic error: no such table: move_log_outbox (1)
2026/10/21 12:38:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:05 console: claim request refused: begin: no eligible box in uk: hostops: region has no box that can take this
2026/10/21 12:38:05 console: refused: no eligible box in ie
2026/10/21 12:38:05 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/21 12:38:05 console: refused: no eligible box in ie
2026/10/21 12:38:05 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/21 12:38:05 console: refused: no eligible box in ie
2026/10/21 12:38:05 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/21 12:38:05 console: refused: no eligible box in ie
2026/10/21 12:38:05 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/21 12:38:05 console: refused: no eligible box in ie
2026/10/21 12:38:05 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/21 12:38:06 console: refused: no eligible box in ie
2026/10/21 12:38:06 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/21 12:38:06 console: refused: no eligible box in ie
2026/10/21 12:38:06 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/21 12:38:06 console: refused: no eligible box in ie
2026/10/21 12:38:06 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/21 12:38:07 console: instance bab/titogo/acme.go.tito.io binds environment "canary": the store seed sd_zxa4unituibv467a2xathezo74 made (bucket carlos-bab-titogo-canary) is no longer that seed's, and its finish leaves it standing
2026/10/21 12:38:07 console: refused: no eligible box in ie
2026/10/21 12:38:07 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/21 12:38:07 console: refused: no eligible box in ie
2026/10/21 12:38:07 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/21 12:38:07 console: claim request refused: hostclaim: claim changed since it was read: store: compare-and-swap conflict: the host's claim changed after its executor was chosen: acme.go.tito.io
2026/10/21 12:38:08 edges: skipping control/edges/box-x.json in the placement join: not a versioned edges file
2026/10/21 12:38:08 console: claim request refused: hostops: the placement read was incomplete, so no box could be judged
2026/10/21 12:38:08 edges: skipping control/edges/box-x.json in the placement join: not a versioned edges file
2026/10/21 12:38:08 console: claim request refused: hostops: the placement read was incomplete, so no box could be judged
2026/10/21 12:38:08 edgesfile: control/edges/box-x.json: edgesfile: parse: unexpected end of JSON input
2026/10/21 12:38:08 edges: skipping control/edges/box-x.json in the placement join: not a versioned edges file
2026/10/21 12:38:08 console: claim request refused: hostops: the placement read was incomplete, so no box could be judged
2026/10/21 12:38:09 edges: skipping control/edges/box-x.json in the placement join: not a versioned edges file
2026/10/21 12:38:09 console: api instances create bab/titogo: incomplete edges or snapshot read, region ie unconfirmed
2026/10/21 12:38:09 console: refused: no eligible box in ie
2026/10/21 12:38:09 console: no-capacity alert for ie: the mail relay is down
2026/10/21 12:38:09 console: refused: no eligible box in ie
2026/10/21 12:38:09 console: refused: no eligible box in ie
2026/10/21 12:38:09 console: refused: no eligible box in ie
2026/10/21 12:38:09 console: refused: no eligible box in ie
2026/10/21 12:38:09 console: refused: no eligible box in ie
2026/10/21 12:38:09 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/21 12:38:09 console: refused: no eligible box in ie
2026/10/21 12:38:09 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/21 12:38:09 edgesfile: 2 edges file(s) under control/edges/ but no fresh box snapshot matched any of them — the deployment route set is EMPTY this pass, so hostname claims are unchecked against other boxes' routes (are edges and status in different buckets? see CARLOS_STATUS_BUCKET/CARLOS_STATUS_PREFIX)
2026/10/21 12:38:09 console: refused: no eligible box in ie
2026/10/21 12:38:09 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/21 12:38:10 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/21 12:38:10 console: claim request refused: hostclaim: claim changed since it was read: store: compare-and-swap conflict
2026/10/21 12:38:10 console: claim request refused: hostops: the placement read was incomplete, so no box could be judged
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: backfilled account manifest for bab (ops)
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: backfilled account manifest for bab (ops)
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: backfilled account manifest for bab (ops)
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: backfilled account manifest for bab (ops)
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: backfilled account manifest for bab (ops)
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: backfilled account manifest for bab (ops)
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: confirm pending change: database is locked
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: api promote widget abc1234 -> wip: promote widget abc1234 -> wip: "wip" is not one of this app's channels (edge, beta, production) — use --hotfix to point a channel outside the pipeline
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: execute promote a8c41b1030d8d2a86cdea38be18d0946: 1 of 2 confirmations counted (1 rows, quorum stored 2)
2026/10/21 12:38:10 console: execute promote bd0ccbeefdc2649dfa1e5d8d89372c61: change belongs to 1/"kass", not 1/"widget"
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:11 console: api promote widget abc1234 -> production: promote widget abc1234 -> production: production is entered from beta only, and this build is on edge — use --hotfix to bypass the order
2026/10/21 12:38:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:11 console: backfilled account manifest for bab (ops)
2026/10/21 12:38:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: execute promote widget v2 -> production: promote --retry renews a promotion: production names v3, not v2
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: app region bab/solo:  (default)
2026/10/21 12:38:12 console: backfilled account manifest for bab (ops)
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: app region bab/solocan:  (default)
2026/10/21 12:38:12 console: backfilled account manifest for bab (ops)
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: app region bab/soloflow:  (default)
2026/10/21 12:38:12 console: backfilled account manifest for bab (ops)
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: app region bab/multiflow:  (default)
2026/10/21 12:38:12 console: backfilled account manifest for bab (ops)
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: app region bab/bakeapp:  (default)
2026/10/21 12:38:12 console: backfilled account manifest for bab (ops)
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: app region bab/multi:  (default)
2026/10/21 12:38:12 console: backfilled account manifest for bab (ops)
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: app region bab/queue:  (default)
2026/10/21 12:38:12 console: backfilled account manifest for bab (ops)
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: app region bab/settle:  (default)
2026/10/21 12:38:12 console: backfilled account manifest for bab (ops)
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:15 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/21 12:38:15 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation fcc3a5f2556fad6e, op 1)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation 7a9f6ee73be82bdb, op 1)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation 27970a7a22d9e317, op 1)
console: relay disabled bab/titogo by alice@keymail.dev (op 2)
console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation f937eafaa37de065, op 3)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation 43b60fa90aa3f32f, op 1)
console: relay enabled bab/meet in eu-west-1 by alice@keymail.dev (incarnation a2944709471cbc90, op 1)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation 684057dc6edc3474, op 1)
console: relay disabled bab/titogo by alice@keymail.dev (op 2)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: relay enabled bab/kass in eu-west-1 by paul@keymail.dev (incarnation 4ef13e7822084488, op 1)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation 0625b7cb9c05955f, op 1)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation 0c58599e348b61c1, op 1)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation c6da4ce60e9fd09a, op 1)
console: relay rotated eu-west-1 to kid k2, re-issued 1 app(s)
console: relay rotated eu-west-1 to kid k3, re-issued 1 app(s)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation b1b69f0cf02ada70, op 1)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: bab/tmp-a has no trash marker and still has objects; restoring it here
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: bab/kass is in the trash in the bucket; marking it trashed here
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: bab/kass is in the trash in the bucket; marking it trashed here
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: api restore row bab/kass: constraint failed: test: step 5 refused (1811)
console: bab/kass has no trash marker and still has objects; restoring it here
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: restore row bab/kass: constraint failed: test: step 5 refused (1811)
console: bab/kass has no trash marker and still has objects; restoring it here
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
status: fleet: skipping status/boxes/broken.json: corrupt snapshot: invalid character 'n' looking for beginning of object key string
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
status: fleet: skipping status/boxes/broken.json: corrupt snapshot: invalid character 'n' looking for beginning of object key string
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: api instances list bab/kass: 1 record(s) unreadable [pi-host.example.test]; every fleet counts toward the rollout join
status: fleet: skipping status/boxes/broken.json: corrupt snapshot: invalid character 'n' looking for beginning of object key string
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
status: fleet: skipping status/boxes/broken.json: corrupt snapshot: invalid character 'n' looking for beginning of object key string
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: run sweep: list records: provision: list accounts: context deadline exceeded
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: api run bab/shop/acme.example.com run_cccccccccccccccccccccccccc: audit marker: access denied
console: run sweep: bab/shop run_cccccccccccccccccccccccccc: no audit marker yet, delete left for a later pass: dirstore: apps/bab/shop/runs/run_cccccccccccccccccccccccccc/audited: file does not exist
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
provision: skipping record apps/bab/shop/instances/other.example.com.json: unreadable: slow down
console: run sweep: some records could not be read; their runs wait for a later pass, and no orphan run is deleted on this one
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: scan callback: bab/app: dropped — delivery queue full
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: scan queue rebuild: acct-bad: transient listing failure
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: scan queue rebuild: acct-bad/shop: transient listing failure
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: scan result collect: bab/kass: dropped 1 expired result(s)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: scan result collect: bab/kass: dropped 1 expired result(s)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: scan drain: bab/kass: queue dropped — this store may no longer be scanned
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: scan drain: bab/kass: engine had a bad moment
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: scan pass: bab/aaa-broken: endpoint down
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: a clamd address is configured but object scanning is not enabled — run `carlos system antivirus enable`
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000004
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000004 maxTXID=0000000000000004 size=537
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000004 txid.db=0000000000000004
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000004 txid.db=0000000000000005
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000005 maxTXID=0000000000000005 size=621
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000005 txid.db=0000000000000005
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000005 txid.db=0000000000000006
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000006 maxTXID=0000000000000006 size=704
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000006 txid.db=0000000000000006
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000006 txid.db=0000000000000007
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000007 maxTXID=0000000000000007 size=788
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000007 txid.db=0000000000000007
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000007 txid.db=0000000000000008
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000008 maxTXID=0000000000000008 size=871
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000008 txid.db=0000000000000008
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000008 txid.db=0000000000000009
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000009 maxTXID=0000000000000009 size=955
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000009 txid.db=0000000000000009
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000009 txid.db=000000000000000a
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=000000000000000a maxTXID=000000000000000a size=1038
INFO replica sync system=store db=source.db replica=file txid.replica=000000000000000a txid.db=000000000000000a
INFO replica sync system=store db=source.db replica=file txid.replica=000000000000000a txid.db=000000000000000b
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=000000000000000b maxTXID=000000000000000b size=1124
INFO replica sync system=store db=source.db replica=file txid.replica=000000000000000b txid.db=000000000000000b
INFO replica sync system=store db=source.db replica=file txid.replica=000000000000000b txid.db=000000000000000c
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=000000000000000c maxTXID=000000000000000c size=1208
INFO replica sync system=store db=source.db replica=file txid.replica=000000000000000c txid.db=000000000000000c
INFO replica sync system=store db=source.db replica=file txid.replica=000000000000000c txid.db=000000000000000d
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=000000000000000d maxTXID=000000000000000d size=1294
INFO replica sync system=store db=source.db replica=file txid.replica=000000000000000d txid.db=000000000000000d
INFO replica sync system=store db=source.db replica=file txid.replica=000000000000000d txid.db=000000000000000e
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=000000000000000e maxTXID=000000000000000e size=1387
INFO replica sync system=store db=source.db replica=file txid.replica=000000000000000e txid.db=000000000000000e
INFO replica sync system=store db=source.db replica=file txid.replica=000000000000000e txid.db=000000000000000f
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=000000000000000f maxTXID=000000000000000f size=1481
INFO replica sync system=store db=source.db replica=file txid.replica=000000000000000f txid.db=000000000000000f
INFO replica sync system=store db=source.db replica=file txid.replica=000000000000000f txid.db=0000000000000010
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000010 maxTXID=0000000000000010 size=1569
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000010 txid.db=0000000000000010
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000010 txid.db=0000000000000011
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000011 maxTXID=0000000000000011 size=1661
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000011 txid.db=0000000000000011
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000011 txid.db=0000000000000012
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000012 maxTXID=0000000000000012 size=1755
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000012 txid.db=0000000000000012
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000012 txid.db=0000000000000013
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000013 maxTXID=0000000000000013 size=1843
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000013 txid.db=0000000000000013
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000013 txid.db=0000000000000014
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000014 maxTXID=0000000000000014 size=1935
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000014 txid.db=0000000000000014
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000014 txid.db=0000000000000015
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000015 maxTXID=0000000000000015 size=2031
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000015 txid.db=0000000000000015
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000015 txid.db=0000000000000016
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000016 maxTXID=0000000000000016 size=2119
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000016 txid.db=0000000000000016
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000016 txid.db=0000000000000017
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000017 maxTXID=0000000000000017 size=2216
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000017 txid.db=0000000000000017
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000017 txid.db=0000000000000018
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000018 maxTXID=0000000000000018 size=2309
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000018 txid.db=0000000000000018
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000018 txid.db=0000000000000019
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000019 maxTXID=0000000000000019 size=2403
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000019 txid.db=0000000000000019
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: instance bab/shop/other.shop.example.com binds environment "canary": the store seed sd_ax3ar4ilgb4xkpmdlk5enmft6e made (bucket carlos-bab-shop-canary) is no longer that seed's, and its finish leaves it standing
console: finished seed sd_ax3ar4ilgb4xkpmdlk5enmft6e of bab/shop/canary.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: instance bab/shop/other.shop.example.com binds environment "canary": the store seed sd_uxur4tb5jaxkqexeeeyy76ohye made (bucket carlos-bab-shop-canary) is no longer that seed's, and its finish leaves it standing
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: instance bab/shop/other.shop.example.com binds environment "canary": the store seed sd_o7htjefhu4qkocq5zd7dtslzta made (bucket carlos-bab-shop-canary) is no longer that seed's, and its finish leaves it standing
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: instance bab/shop/other.shop.example.com binds environment "canary": the store seed sd_daco6cyliufzpzvsripfablhbq made (bucket carlos-bab-shop-canary) is no longer that seed's, and its finish leaves it standing
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: seed store check bab/shop/canary: instance src.shop.example.com already names the environment
console: seed store check bab/shop/canary: instance src.shop.example.com already names the environment
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: instance store bab/shop/old: seed sd_mw26ss2sl5jnjpekvyvjz5pvai: instance other.shop.example.com already names the environment
console: finished seed sd_mw26ss2sl5jnjpekvyvjz5pvai of bab/shop/old.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seed store check bab/shop/old: who names the environment: 1 records of bab/shop could not be read, so one may name environment "old"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
console: finish seed sd_3vpjkfazp5hylvtntnhtzfu4au of bab/shop/canary.shop.example.com: tore down its store (bucket carlos-bab-shop-canary)
console: finish seed sd_3vpjkfazp5hylvtntnhtzfu4au of canary.shop.example.com: deleted 2 replica objects under instances/canary.shop.example.com/
console: finished seed sd_3vpjkfazp5hylvtntnhtzfu4au of bab/shop/canary.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: finish seed sd_hpsnmamsqeicsnn7s2aooshz2e of bab/shop/canary.shop.example.com: tore down its store (bucket carlos-bab-shop-canary)
console: finished seed sd_hpsnmamsqeicsnn7s2aooshz2e of bab/shop/canary.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: finished seed sd_q2p4rourbjdaamoebckmuvuevu of bab/shop/canary.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: finished seed sd_tkfl4sshgucyclhwcsadvxhyx4 of bab/shop/canary.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: finished seed sd_af3fssoxyzy5kayfi7cl7acey4 of bab/shop/canary.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: finish seed sd_h5wq3ai5cpqopbs2svggwulfqm of bab/shop/canary.shop.example.com: OPERATOR: instance other.shop.example.com also uses environment "canary", so the store seed sd_h5wq3ai5cpqopbs2svggwulfqm made (bucket carlos-bab-shop-canary) is left standing; tear it down by hand if it is not wanted
console: finished seed sd_h5wq3ai5cpqopbs2svggwulfqm of bab/shop/canary.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: finish seed sd_bmmrg6sviwawc23vmc4a46fmre of bab/shop/canary.shop.example.com: OPERATOR: the record of instance other.shop.example.com could not be read, so it may use environment "canary", and the store seed sd_bmmrg6sviwawc23vmc4a46fmre made (bucket carlos-bab-shop-canary) is left standing; tear it down by hand if it is not wanted
console: finished seed sd_bmmrg6sviwawc23vmc4a46fmre of bab/shop/canary.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
console: finished seed sd_uhotq6hbksifjxj3r6z4jjgeou of bab/shop/canary.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: finish seed sd_tblbeoybp2ck3ffy5oo5qc2axm of canary.shop.example.com: deleted 3 replica objects under instances/canary.shop.example.com/
console: finished seed sd_tblbeoybp2ck3ffy5oo5qc2axm of bab/shop/canary.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: finish seed sd_ybjgt4m2uhbyplkprxgqagyuvm of canary.shop.example.com: deleted 3 replica objects under instances/canary.shop.example.com/
console: finished seed sd_ybjgt4m2uhbyplkprxgqagyuvm of bab/shop/canary.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: finish seed sd_3jng5e5y2mnpsrnopeidth5izq of canary.shop.example.com: deleted 3 replica objects under instances/canary.shop.example.com/
console: finished seed sd_3jng5e5y2mnpsrnopeidth5izq of bab/shop/canary.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: finish seed sd_yc2owbvvfdfu6fjlcfmt7ooq5q of canary.shop.example.com: deleted 3 replica objects under instances/canary.shop.example.com/
console: finished seed sd_yc2owbvvfdfu6fjlcfmt7ooq5q of bab/shop/canary.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: finish seed sd_a6olkxjgtzcjpjeanhxc75qrba of canary.shop.example.com: its replica is outside this console's data bucket; not deleting it
console: finished seed sd_a6olkxjgtzcjpjeanhxc75qrba of bab/shop/canary.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: finished seed sd_24zihyq2tbv7sewovnzmh4n2gi of bab/shop/canary.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds readiness: box "kass-1" in region "the home region" is unconfirmed: no layout report
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds readiness: box "kass-2" in region "the home region" is unconfirmed: stale heartbeat, generated 2026-10-21T11:38:34Z
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds floor: published floor has no usable min_release ""
console: seeds floor: published floor has no usable min_release ""
console: seeds floor: published floor has no usable min_release "next"
console: seeds floor: seeds: parse floor: invalid character 'o' in literal null (expecting 'u')
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds readiness: box "kass-1" in region "the home region" is unconfirmed: stale heartbeat, generated 2026-10-21T11:38:34Z
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds readiness: box "kass-1" in region "the home region" is unconfirmed: more than one heartbeat with this label
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: place bab/shop: read instances: records that do not read: [broken.example.com]
console: place bab/shop: read instances: provision: read record apps/bab/shop/instances/plain.example.com.json: injected read failure
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seed scratch relative/dir: refusing to clear "relative/dir": it must be an absolute path other than / (the seed doors will refuse)
console: seed scratch relative/dir: refusing to clear "relative/dir": it must be an absolute path other than / (the seed doors will refuse)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds pass: abandoned seed sd_uuvjvar2a2u6gayal3w3slxsgy of bab/shop/canary.shop.example.com (reserving since 2026-10-21T12:28:34Z)
console: seeds pass: deleted seeds/canary.shop.example.com/sd_uuvjvar2a2u6gayal3w3slxsgy/snapshot.db
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds pass: abandoned seed sd_nth77opcfehuvuzdnvpfdz6ykq of bab/shop/uploaded.shop.example.com (uploaded since 2026-10-13T12:38:34Z)
console: seeds pass: abandoned seed sd_zjq5htkq55ivjgpsxeddmwmryy of bab/shop/waiting.shop.example.com (awaiting-upload since 2026-10-13T12:38:34Z)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds pass: deleted seeds/a.shop.example.com/sd_ye3xcemag2r5725lk7zsxmfoom/snapshot.db
console: seeds pass: deleted seeds/b.shop.example.com/sd_dvnteqb2haw3r7mr4n7ctrpm3i/snapshot.db
console: seeds pass: deleted seeds/c.shop.example.com/sd_krvcf6yp3zy5vreaid3jb3gr24/snapshot.db
console: seeds pass: deleted seeds/e.shop.example.com/sd_xu4jraz76ifoo7jvp5yxzbnnoi/snapshot.db
console: seeds pass: deleted seeds/f.shop.example.com/sd_fn2ppc67xyofrw4znxaitjiffe/snapshot.db
console: seeds pass: deleted seeds/g.shop.example.com/sd_q4per3mh7vqahzmui7q7jmrqoq/snapshot.db
console: seeds pass: deleted seeds/left.shop.example.com/sd_suui6duzuuvdrcp4x3sb6vebpy/snapshot.db
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
provision: skipping record apps/bab/shop/instances/a.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
console: seeds pass: a record of a.shop.example.com could not be read; nothing of a.shop.example.com is swept this pass
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds pass: OPERATOR: 2 records hold twice.shop.example.com; nothing of twice.shop.example.com is swept until one remains
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds pass: deleted seeds/gone.shop.example.com/sd_b24xwvnxtylbkd45zhk5n4m6qy/snapshot.db
console: finished seed sd_b24xwvnxtylbkd45zhk5n4m6qy of bab/shop/gone.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds pass: list snapshots: the bucket is unreachable (nothing swept this pass)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds pass: list records: provision: list accounts: the bucket is unreachable (nothing swept this pass)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds pass: abandoned seed sd_wepa2tbca2zjoujypnqpqtww3i of bab/shop/stale.shop.example.com (reserving since 2026-10-21T10:38:35Z)
console: finished seed sd_v5nxtit6477dqfugplxj5kvc2y of bab/shop/done.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds pass: off on a host-claim console, where every seed door refuses
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds pass: list snapshots: context deadline exceeded (nothing swept this pass)
console: seeds pass: cut short: context deadline exceeded (the next pass resumes)
console: seeds pass: abandoned seed sd_nsp5g2gp2bwkzfsgejrkyuzdlq of bab/shop/stale.shop.example.com (reserving since 2026-10-21T10:38:35Z)
console: seeds pass: deleted seeds/left.shop.example.com/sd_hgs3xxuaxcookqzdujyy3cp724/snapshot.db
console: seeds pass: deleted seeds/right.shop.example.com/sd_ycgcyp337hlsangh23y3frpoae/snapshot.db
console: finished seed sd_vbovi3qi7ovhu6sawrwczi6ovm of bab/shop/done.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds pass: abandoned seed sd_t6pdng6n2ggpxsvs2tejfjcfjm of bab/shop/stale.shop.example.com (reserving since 2026-10-21T10:38:35Z)
console: seeds pass: delete seeds/left.shop.example.com/sd_aodxgor6ay2zqa75mubi726avu/snapshot.db: context deadline exceeded
console: seeds pass: cut short: context deadline exceeded (the next pass resumes)
console: seeds pass: deleted seeds/left.shop.example.com/sd_aodxgor6ay2zqa75mubi726avu/snapshot.db
console: seeds pass: deleted seeds/right.shop.example.com/sd_txfpflxaohgzlfsvfggwlx6ssq/snapshot.db
console: finished seed sd_sg2t3lg7a3zx6d2jog2e4gpw6y of bab/shop/done.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: seeds pass: list records: provision: list accounts: context deadline exceeded (nothing swept this pass)
console: seeds pass: cut short: context deadline exceeded (the next pass resumes)
console: seeds pass: abandoned seed sd_vme5bawczb5no3ia3ok2rv7cui of bab/shop/stale.shop.example.com (reserving since 2026-10-21T10:38:35Z)
console: seeds pass: deleted seeds/left.shop.example.com/sd_5qvzhy3525gf7jovtvf4yntl6e/snapshot.db
console: seeds pass: deleted seeds/right.shop.example.com/sd_5wjprtvsqh5rhdsevgrp67hzxa/snapshot.db
console: finished seed sd_jrzudxmnqcydgf6heq5n2ggdaa of bab/shop/done.shop.example.com
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
console: seeds pass: deleted seeds/canary.shop.example.com/sd_rfnka3gl5hmppj4bf4mz4dvkii/snapshot.db
console: seeds pass: finish seed sd_rfnka3gl5hmppj4bf4mz4dvkii of canary.shop.example.com: finish seed sd_rfnka3gl5hmppj4bf4mz4dvkii of canary.shop.example.com: this console has no storage backend to tear its store down with
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: serial bump: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123 (boxes fall back to the hourly pass)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: account telemetry cyk: dirstore: invalid key "apps/cyk//telemetry.json"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: app region bab/blog:  (default)
console: backfilled account manifest for bab (ops)
console: app region czg/blog:  (default)
console: backfilled account manifest for czg (Second)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: confirmation send to paul@keymail.dev: keymail: grant revoked or invalid
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: app region bab/zephyr:  (default)
console: backfilled account manifest for bab (ops)
console: app region bab/orphan:  (default)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: retire kass canary/x: check followers: unable to open database file (14)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: app region bab/zephyr:  (default)
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: steering hostname "*.oncarlos.com" is not a valid domain — custom-domain guidance keeps the A-record form
console: steering hostname "not a host" is not a valid domain — custom-domain guidance keeps the A-record form
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: fleet hosts: bucket list refused
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: app metrics kass: list metrics/boxes/: boom
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: ses events: refused topic "arn:aws:sns:eu-west-1:9:someone-else" — this deployment expects "arn:aws:sns:eu-west-1:1:carlos-mail"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: ses events: refused topic "arn:aws:sns:eu-west-1:9:someone-else" — this deployment expects "arn:aws:sns:eu-west-1:1:carlos-mail"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: ses events: refusing SubscribeURL: sns: SigningCertURL is not https
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: ses events: signature verification failed: fake: signature does not verify
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: bab/tmp-a is in the trash in the bucket; marking it trashed here
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: bab/kass is in the trash in the bucket; marking it trashed here
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: bab/tmp-a: a restore did not remove the trash marker; it stays in the trash
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: bab/tmp-a has no trash marker and still has objects; restoring it here
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: bab/tmp-a has no trash marker and still has objects; restoring it here
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: bab/tmp-a is gone from the bucket; releasing the name here
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: bab/tmp-a has no trash marker and no objects, but the apps/ listing holds nothing else either; leaving the row. Is CARLOS_DEPLOYMENT_BUCKET pointing at the right bucket?
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: materialized account bac (Testco) from the bucket
console: bac/perm is in the trash in the bucket — marking it trashed here
console: bac/tmp-a is in the trash in the bucket — marking it trashed here
console: materialized account bac (Testco) from the bucket
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: step-up refused: http://127.0.0.1:43015 does not advertise re-authentication
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: step-up capability check: Get "http://127.0.0.1:34509/.well-known/keymail": dial tcp 127.0.0.1:34509: connect: connection refused
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: step-up produced no usable auth_time (zero=true age=2562047h47m16.854775807s)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: step-up produced no usable auth_time (zero=false age=10m0.546087382s)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: step-up address mismatch for session of paul@keymail.dev
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: remove member: console: paul@keymail.dev is the last owner of this account — transfer ownership first
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: storage pass: store record bab/kass in environment beta: objstore: apps/bab/kass/stores/beta.json: invalid character 'n' looking for beginning of object key string
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: store application bab: no keymail grant for missing@keymail.dev — not notified (they must sign in to the console once)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: store application bab: keymail to ops@keymail.dev: send failed
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: store decision bab: keymail to paul@keymail.dev: delivery failed
console: store application bab: keymail to paul@keymail.dev: delivery failed
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: store decision bab: no keymail grant for paul@keymail.dev — not notified (they must sign in to the console once)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: store decision bab: keymail to paul@keymail.dev: Post "http://127.0.0.1:44673/api/app/send": dial tcp 127.0.0.1:44673: connect: connection refused
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: render account_settings: write tcp 127.0.0.1:45899->127.0.0.1:54824: write: broken pipe
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: could not notify paul@keymail.dev of a CLI token issue: Post "http://127.0.0.1:41257/api/app/send": dial tcp 127.0.0.1:41257: connect: connection refused
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: app region bab/four:  (default)
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: app region bab/tmp-tz: uk (timezone)
console: backfilled account manifest for bab (ops)
console: app region bab/tmp-chosen: uk (chosen)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: app region bab/tmp-plain: ie (default)
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
status: fleet: skipping status/boxes/zz-1.json: corrupt snapshot: invalid character 'n' looking for beginning of object key string
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
console: api updates bab/km/a.example.com: enable refused, not every box applies update settings: fx/bx-1: no heartbeat
console: api updates bab/km policy: enable refused, not every box applies update settings: fx/bx-1: no heartbeat
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
console: api updates bab/km/a.example.com: enable refused, not every box applies update settings: fx/bx-1: runs a binary that does not apply update settings
console: api updates bab/km policy: enable refused, not every box applies update settings: fx/bx-1: runs a binary that does not apply update settings
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
console: api updates bab/km/a.example.com: enable refused, not every box applies update settings: fx/bx-1: no heartbeat since 2026-10-21T12:23:48Z
console: api updates bab/km policy: enable refused, not every box applies update settings: fx/bx-1: no heartbeat since 2026-10-21T12:23:48Z
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
status: fleet: skipping status/boxes/zz-1.json: corrupt snapshot: invalid character 'n' looking for beginning of object key string
console: api updates bab/km/a.example.com: enable refused, not every box applies update settings: the list of boxes could not be read in full
status: fleet: skipping status/boxes/zz-1.json: corrupt snapshot: invalid character 'n' looking for beginning of object key string
console: api updates bab/km policy: enable refused, not every box applies update settings: the list of boxes could not be read in full
status: fleet: skipping status/boxes/zz-1.json: corrupt snapshot: invalid character 'n' looking for beginning of object key string
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
console: api updates bab/km/a.example.com: enable refused, not every box applies update settings: the fleet registry could not be read (no registry path is configured), so no fleet box was checked
console: api updates bab/km policy: enable refused, not every box applies update settings: the fleet registry could not be read (no registry path is configured), so no fleet box was checked
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
console: api updates bab/km/a.example.com: enable refused, not every box applies update settings: the fleet registry could not be read (registry /tmp/TestEnableDoorsFailClosedOnAnUncheckedBoxregistry_missing3882006638/003/absent-registry.db: stat /tmp/TestEnableDoorsFailClosedOnAnUncheckedBoxregistry_missing3882006638/003/absent-registry.db: no such file or directory), so no fleet box was checked
console: api updates bab/km policy: enable refused, not every box applies update settings: the fleet registry could not be read (registry /tmp/TestEnableDoorsFailClosedOnAnUncheckedBoxregistry_missing3882006638/003/absent-registry.db: stat /tmp/TestEnableDoorsFailClosedOnAnUncheckedBoxregistry_missing3882006638/003/absent-registry.db: no such file or directory), so no fleet box was checked
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
FAIL
FAIL	github.com/carlosframework/platform/internal/console	437.019s
?   	github.com/carlosframework/platform/internal/controlname	[no test files]
?   	github.com/carlosframework/platform/internal/controlsock	[no test files]
ok  	github.com/carlosframework/platform/internal/dbdoor	6.385s
ok  	github.com/carlosframework/platform/internal/dbdoor/dbdoortest	0.010s
ok  	github.com/carlosframework/platform/internal/dbverify	0.005s
ok  	github.com/carlosframework/platform/internal/dnsrec	0.005s
ok  	github.com/carlosframework/platform/internal/docsite	0.008s
ok  	github.com/carlosframework/platform/internal/domains	2.379s
ok  	github.com/carlosframework/platform/internal/doorkey	0.006s
ok  	github.com/carlosframework/platform/internal/economics	0.005s
ok  	github.com/carlosframework/platform/internal/edge	45.071s
?   	github.com/carlosframework/platform/internal/edgeproof	[no test files]
ok  	github.com/carlosframework/platform/internal/edgesfile	0.015s
ok  	github.com/carlosframework/platform/internal/fleetapi	0.138s
ok  	github.com/carlosframework/platform/internal/gate	1.655s
ok  	github.com/carlosframework/platform/internal/genselect	0.017s
ok  	github.com/carlosframework/platform/internal/geo	0.015s
ok  	github.com/carlosframework/platform/internal/geoip	0.040s
ok  	github.com/carlosframework/platform/internal/historyreadback	0.160s
ok  	github.com/carlosframework/platform/internal/host	193.010s
ok  	github.com/carlosframework/platform/internal/hostactors	6.683s
ok  	github.com/carlosframework/platform/internal/hostactors/awsmembership	0.005s
ok  	github.com/carlosframework/platform/internal/hostbox	2.742s
ok  	github.com/carlosframework/platform/internal/hostclaim	0.606s
ok  	github.com/carlosframework/platform/internal/hostenv	0.004s
ok  	github.com/carlosframework/platform/internal/hostevidence	0.006s
ok  	github.com/carlosframework/platform/internal/hostexec	5.097s
ok  	github.com/carlosframework/platform/internal/hostfence	0.032s
ok  	github.com/carlosframework/platform/internal/hostfiles	10.474s
ok  	github.com/carlosframework/platform/internal/hostfloor	0.017s
ok  	github.com/carlosframework/platform/internal/hostguard	1.003s
ok  	github.com/carlosframework/platform/internal/hostops	1.644s
?   	github.com/carlosframework/platform/internal/hostops/fencerelease	[no test files]
ok  	github.com/carlosframework/platform/internal/hostops/internal/fencerelease	0.002s
ok  	github.com/carlosframework/platform/internal/hostquarantine	0.002s
ok  	github.com/carlosframework/platform/internal/hostrelocate	0.502s
ok  	github.com/carlosframework/platform/internal/hostresolve	0.159s
ok  	github.com/carlosframework/platform/internal/hostwrite	0.002s
ok  	github.com/carlosframework/platform/internal/infraview	0.016s
ok  	github.com/carlosframework/platform/internal/instancectl	5.233s
ok  	github.com/carlosframework/platform/internal/instanceexec	2.770s
ok  	github.com/carlosframework/platform/internal/instancefs	0.019s
ok  	github.com/carlosframework/platform/internal/instancekey	0.016s
ok  	github.com/carlosframework/platform/internal/instanceupdates	0.024s
ok  	github.com/carlosframework/platform/internal/layout	1.594s
ok  	github.com/carlosframework/platform/internal/lbhealth	0.002s
ok  	github.com/carlosframework/platform/internal/lease	10.047s
ok  	github.com/carlosframework/platform/internal/lease/leasetest	0.385s
ok  	github.com/carlosframework/platform/internal/ledger	0.014s
ok  	github.com/carlosframework/platform/internal/mail	0.182s
ok  	github.com/carlosframework/platform/internal/maintenance	0.093s
ok  	github.com/carlosframework/platform/internal/maintenanceexec	5.553s
ok  	github.com/carlosframework/platform/internal/maintenanceguard	0.076s
ok  	github.com/carlosframework/platform/internal/metrics	0.005s
ok  	github.com/carlosframework/platform/internal/moves	21.196s
ok  	github.com/carlosframework/platform/internal/moves/archive	0.815s
ok  	github.com/carlosframework/platform/internal/objstore	0.211s
ok  	github.com/carlosframework/platform/internal/ops	0.179s
ok  	github.com/carlosframework/platform/internal/park	0.223s
ok  	github.com/carlosframework/platform/internal/privatefile	0.004s
2026/10/21 12:31:37 provision: listing apps/bab/blog/instances/: list refused — its records are unseen this pass
2026/10/21 12:31:37 provision: listing apps/bab/: listdirs refused — its records are unseen this pass
2026/10/21 12:31:37 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:37 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:37 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:37 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/21 12:31:37 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/21 12:31:37 provision: skipping record apps/bac/tito/instances/one.example.com.json: unreadable: read refused
2026/10/21 12:31:37 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/21 12:31:37 provision: an app's records could not be listed: they are skipped
2026/10/21 12:31:37 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/21 12:31:37 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/21 12:31:37 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/21 12:31:37 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/21 12:31:37 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/21 12:31:37 provision: claim install acme.go.tito.io: provision: claim admission unavailable
2026/10/21 12:31:37 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:37 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/21 12:31:37 provision: claim install bot.eleven.bac.sidecar.internal: provision: claim admission unavailable
2026/10/21 12:31:37 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/21 12:31:37 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/21 12:31:37 provision: refusing to mint route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/21 12:31:37 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: no sealed config
2026/10/21 12:31:37 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:37 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:37 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/21 12:31:37 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/21 12:31:37 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/21 12:31:37 provision: refusing to mint route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/21 12:31:37 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:37 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/21 12:31:37 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/21 12:31:38 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/21 12:31:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/21 12:31:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/21 12:31:38 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/21 12:31:38 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/21 12:31:38 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/21 12:31:38 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/21 12:31:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/21 12:31:38 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/21 12:31:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/21 12:31:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/21 12:31:38 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/21 12:31:38 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/21 12:31:38 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/21 12:31:38 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/21 12:31:38 provision: minted instance route rf.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route rg.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route rh.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route ri.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route rk.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route rl.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route rj.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/21 12:31:38 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/21 12:31:38 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route x.appj.example (app "appj" acct "bac")
2026/10/21 12:31:38 provision: minted instance route x.appa.example (app "appa" acct "bac")
2026/10/21 12:31:38 provision: minted instance route x.appb.example (app "appb" acct "bac")
2026/10/21 12:31:38 provision: minted instance route x.appc.example (app "appc" acct "bac")
2026/10/21 12:31:38 provision: minted instance route x.appd.example (app "appd" acct "bac")
2026/10/21 12:31:38 provision: minted instance route x.appf.example (app "appf" acct "bac")
2026/10/21 12:31:38 provision: minted instance route x.appg.example (app "appg" acct "bac")
2026/10/21 12:31:38 provision: minted instance route x.apph.example (app "apph" acct "bac")
2026/10/21 12:31:38 provision: minted instance route x.appe.example (app "appe" acct "bac")
2026/10/21 12:31:38 provision: minted instance route x.appi.example (app "appi" acct "bac")
2026/10/21 12:31:38 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/21 12:31:38 provision: minted instance route r0060.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0088.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0129.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0071.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0099.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0101.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0010.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0022.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0083.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0100.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0103.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0025.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0066.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0105.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0123.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0019.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0039.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0072.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0084.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0011.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0040.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0047.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0082.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0118.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0016.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0064.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0075.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0077.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0116.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0126.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0029.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0045.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0049.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0085.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0110.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0114.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0127.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0043.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0067.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0004.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0031.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0036.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0044.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0053.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0070.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0074.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0095.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0008.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0009.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0030.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0102.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0098.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0122.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0128.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0017.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0042.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0108.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0112.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0125.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0055.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0057.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0068.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0096.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0023.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0035.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0089.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0106.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0026.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0028.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0034.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0046.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0093.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0113.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0002.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0000.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0001.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0061.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0097.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0033.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0078.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0003.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0005.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0024.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0056.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0124.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0013.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0014.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0021.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0050.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0052.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0073.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0092.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0094.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0063.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0090.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0107.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0038.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0058.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0087.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0120.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0027.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0062.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0065.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0091.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0012.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0018.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0104.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0006.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0069.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0086.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0020.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0051.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0079.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0109.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0111.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0032.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0041.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0048.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0081.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0117.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0080.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0115.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0119.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0121.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0007.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0037.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0059.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0076.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0015.go.tito.io (app "tito" acct "bac")
2026/10/21 12:31:38 provision: minted instance route r0054.go.tito.io (app "tito" acct "bac")
--- FAIL: TestPlan14RootReadCensus (4.88s)
    plan14_root_reads_test.go:1040: root read census: 11 discrepancies
        changed root read internal/host/movesoffline.go:movesWorker.offlineSourceRevert; review class, task, sites and digest
        changed root source envelope .
        changed root source envelope internal/console
        changed root source envelope internal/host
        changed root source envelope internal/lease
        changed root source envelope internal/moves
        changed root source envelope internal/provision
        stale root read internal/provision/offline_move.go:OfflineStart
        unclassified root read internal/provision/offline_move.go:offlineBegin file:Open@198
        changed legacy declaration internal/host/movesoffline.go:movesWorker.offlineSourceRevert
        changed legacy declaration internal/provision/offline_move.go:OfflineStart
--- FAIL: TestPlan9B8RecordWriteCensus (0.57s)
    plan9_b8_census_test.go:372: record-write census rejected 2 site(s); update the explicit inventory only after reviewing the source:
          changed site internal/console/authcli.go:Server.registerCLIRoutes: source differs from the reviewed digest
          changed site internal/lease/mirror.go:MirrorPrefixKeep: source differs from the reviewed digest
2026/10/21 12:32:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:11 provision: refusing to mint route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/21 12:32:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:11 provision: minted instance route whole.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:11 provision: minted instance route console.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:11 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:11 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:11 provision: minted service route svc.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:11 provision: minted instance route shared.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:11 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:11 provision: converged acme.go.tito.io channel stable -> edge
2026/10/21 12:32:12 provision: converged acme.go.tito.io channel edge -> canary/rehearsal
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: empty channel
2026/10/21 12:32:12 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: converged acme.go.tito.io environment "" -> "staging"
2026/10/21 12:32:12 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: converged acme.go.tito.io steering "" -> "latency"
2026/10/21 12:32:12 provision: converged acme.go.tito.io steering "latency" -> ""
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: converged acme.go.tito.io hibernate false -> true
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: converged acme.go.tito.io hibernate true -> false (replication "daily" cleared: only a hibernating route's rung is read)
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: converged acme.go.tito.io status-named false -> true
2026/10/21 12:32:12 provision: converged acme.go.tito.io status-named true -> false
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: converged ha.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:7001,127.0.0.1:7002" -> "127.0.0.1:7001,127.0.0.1:7003" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/21 12:32:12 provision: converged ha.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:7001,127.0.0.1:7003" -> "127.0.0.1:7003,127.0.0.1:7001" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/21 12:32:12 provision: converged ha.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:7003,127.0.0.1:7001" -> "127.0.0.1:7003,127.0.0.1:7001" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "{\"path\":\"/healthz\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/21 12:32:12 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: converged whole.go.tito.io upstreams addr "127.0.0.1:9443" -> "", addrs "" -> "127.0.0.1:9443,127.0.0.1:9444" (probe "" -> "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/21 12:32:12 provision: converged whole.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:9443,127.0.0.1:9444" -> "" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "")
2026/10/21 12:32:12 provision: whole.go.tito.io: record describes a different route SHAPE than the row (kind "instance"/"service" unit ""/"" socket "/run/carlos/whole.go.tito.io.sock"/"" db "/data/whole.go.tito.io.db"/"") — not converged in place; `carlos remove whole.go.tito.io` purges this route's capability grants (registry.Delete's contract, not a bug) before the next pass re-mints it, so treat that as a last resort, not a routine fix
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: skipping accounts/bac/account.json: malformed account manifest: invalid character 'o' in literal null (expecting 'u')
2026/10/21 12:32:12 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: manifest bac/tito: read failed: provision: manifest bac/tito: invalid character 'o' in literal null (expecting 'u')
2026/10/21 12:32:12 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: disagrees with its own path (host="wrong-host.go.tito.io" account="bac" app="tito")
2026/10/21 12:32:12 provision: skipping record apps/bac/tito/instances/acme$evil.go.tito.io.json: host "acme$evil.go.tito.io" is not a hostname
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: skipping record apps/bac/tito/instances/acme$evil.go.tito.io.json: host "acme$evil.go.tito.io" is not a hostname
2026/10/21 12:32:12 provision: not removing acme$evil.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/21 12:32:12 provision: skipping record apps/bac/tito/instances/bad-service.go.tito.io.json: invalid shape: kind service with no addr: the platform only proxies to a service, so the record must name the upstream it proxies to
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: skipping record apps/bac/tito/instances/bad-service.go.tito.io.json: invalid shape: kind service with no addr: the platform only proxies to a service, so the record must name the upstream it proxies to
2026/10/21 12:32:12 provision: not removing bad-service.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/21 12:32:12 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/21 12:32:12 provision: not removing no-channel.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/21 12:32:12 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/21 12:32:12 provision: removed retired instance route ghost.go.tito.io (record gone)
2026/10/21 12:32:12 provision: duplicate host dup.go.tito.io: keeping apps/bac/tito/instances/dup.go.tito.io.json, skipping apps/bad/tito/instances/dup.go.tito.io.json
2026/10/21 12:32:12 provision: minted instance route dup.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/21 12:32:12 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/21 12:32:12 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/21 12:32:12 provision: removed retired static route site.go.tito.io (app in the trash)
2026/10/21 12:32:12 provision: trash marker for bac/tito unreadable: release: malformed trash marker for bac/tito: invalid character 'n' looking for beginning of object key string — not minting for this app
2026/10/21 12:32:12 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/21 12:32:12 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/21 12:32:12 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/21 12:32:12 provision: trash marker for bac/tito unreadable: release: malformed trash marker for bac/tito: invalid character 'n' looking for beginning of object key string — not minting for this app
2026/10/21 12:32:12 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/21 12:32:12 provision: converged acme.go.tito.io channel stable -> edge
2026/10/21 12:32:12 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/21 12:32:12 provision: converged acme.go.tito.io channel canary/rehearsal -> edge
2026/10/21 12:32:12 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/21 12:32:12 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/21 12:32:12 provision: acme.go.tito.io exists but is not the route this record describes (backing "unit" (box-scoped, not expressible in a record)) — leaving it alone
2026/10/21 12:32:12 provision: acme.go.tito.io exists but is not the route this record describes (tunnel "pi-fleet" (box-scoped, not expressible in a record)) — leaving it alone
2026/10/21 12:32:12 provision: acme.go.tito.io exists but is not the route this record describes (caps "port:25" (box-scoped, not expressible in a record)) — leaving it alone
2026/10/21 12:32:12 provision: acme.go.tito.io exists but is not the route this record describes (platform (owned by the domains reconcile pass)) — leaving it alone
2026/10/21 12:32:12 provision: acme.go.tito.io exists but is not the route this record describes (canary (owned by the domains reconcile pass)) — leaving it alone
2026/10/21 12:32:12 provision: acme.go.tito.io exists but is not the route this record describes (db "/data/other.db"/"/data/acme.go.tito.io.db") — leaving it alone
2026/10/21 12:32:12 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/21 12:32:12 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/21 12:32:12 provision: dry-run: would converge owned.go.tito.io channel stable -> edge
2026/10/21 12:32:12 provision: dry-run: would converge owned.go.tito.io environment "" -> "staging"
2026/10/21 12:32:12 provision: dry-run: would converge owned.go.tito.io hibernate false -> true
2026/10/21 12:32:12 provision: dry-run: would converge owned.go.tito.io seed
2026/10/21 12:32:12 provision: dry-run: would mint instance route acme.go.tito.io (app "tito" acct "bac" channel "stable")
2026/10/21 12:32:12 provision: dry-run: would adopt existing route adopt.go.tito.io (app "tito" acct "bac") — this record would own its channel and environment
2026/10/21 12:32:12 provision: dry-run: would converge adopt.go.tito.io channel stable -> edge
2026/10/21 12:32:12 provision: dry-run: would converge adopt.go.tito.io environment "" -> "staging"
2026/10/21 12:32:12 provision: dry-run: would remove retired instance route gone.go.tito.io (record gone)
2026/10/21 12:32:12 provision: converged owned.go.tito.io channel stable -> edge
2026/10/21 12:32:12 provision: converged owned.go.tito.io environment "" -> "staging"
2026/10/21 12:32:12 provision: converged owned.go.tito.io hibernate false -> true
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: adopted existing route adopt.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/21 12:32:12 provision: converged adopt.go.tito.io channel stable -> edge
2026/10/21 12:32:12 provision: converged adopt.go.tito.io environment "" -> "staging"
2026/10/21 12:32:12 provision: removed retired instance route gone.go.tito.io (record gone)
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: adopted existing route story.carlosframework.com (app "story" acct "bad") — this record now owns its channel and environment
2026/10/21 12:32:12 provision: story.carlosframework.com exists but is not the route this record describes (kind "instance"/"static") — leaving it alone
2026/10/21 12:32:12 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted service route pub.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted service route pubs.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted service route loop.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted service route named.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted service route priv.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted instance route unit.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted instance route exec.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted static route pisite.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: removed retired static route site.go.tito.io (record gone)
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: converged acme.go.tito.io replicas "ie,uk" -> "uk"
2026/10/21 12:32:12 provision: converged acme.go.tito.io replicas "uk" -> ""
2026/10/21 12:32:12 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: converged acme-uk.go.tito.io replica mark true -> false
2026/10/21 12:32:12 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:12 provision: acme.go.tito.io: row is on the nested layout (db "/data/instances/acme.go.tito.io/acme.go.tito.io.db" socket "/run/carlos/instances/acme.go.tito.io/app.sock"); the record's shared paths are not drift
2026/10/21 12:32:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:13 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:13 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:13 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:13 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:13 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/21 12:32:13 provision: router.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/21 12:32:13 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/21 12:32:13 provision: converged acme.go.tito.io channel stable -> edge
2026/10/21 12:32:13 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/21 12:32:13 provision: not removing acme.go.tito.io (record gone): participant of a running operation
2026/10/21 12:32:13 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/21 12:32:13 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/21 12:32:13 provision: refusing to mint held route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/21 12:32:13 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/21 12:32:13 provision: acme.go.tito.io: held restoring by rb_other, not by mv_acme; leaving it
2026/10/21 12:32:13 provision: acme.go.tito.io: the row is not this pass's (app "other" acct ""); not holding it for mv_acme
2026/10/21 12:32:13 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/21 12:32:13 provision: dry-run: would mint instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac" channel "stable")
2026/10/21 12:32:13 provision: acme.go.tito.io: not held landing by mv_acme: the row's hold changed under this pass; the next pass judges it afresh
2026/10/21 12:32:13 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/21 12:32:13 provision: minted instance route acme.example.com (app "shop" acct "bac")
2026/10/21 12:32:13 provision: minted instance route plain.example.com (app "shop" acct "bac")
2026/10/21 12:32:13 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/21 12:32:13 provision: skipping record apps/bac/shop/instances/liar.shop.example.com.json: disagrees with its own path (host="other.shop.example.com" account="bac" app="shop")
2026/10/21 12:32:13 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/21 12:32:13 provision: skipping record apps/bac/shop/instances/liar.shop.example.com.json: disagrees with its own path (host="other.shop.example.com" account="bac" app="shop")
2026/10/21 12:32:13 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/21 12:32:13 provision: skipping record apps/bac/shop/instances/liar.shop.example.com.json: disagrees with its own path (host="other.shop.example.com" account="bac" app="shop")
2026/10/21 12:32:13 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/21 12:32:13 provision: listing apps/bac/shop/instances/: list refused — its records are unseen this pass
2026/10/21 12:32:13 provision: a.shop.example.com: swapped for import sd_qde5bbhv55wrkvnpv7pkrmkwty (the original route is journaled)
2026/10/21 12:32:13 provision: a.shop.example.com: import sd_qde5bbhv55wrkvnpv7pkrmkwty committed: its gate is cleared and its journal row dropped
2026/10/21 12:32:13 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/21 12:32:13 provision: a.shop.example.com: import sd_dw5trimqsntj5qsim6a757p2nq rolled back to its original route
2026/10/21 12:32:13 provision: a.shop.example.com: import sd_dw5trimqsntj5qsim6a757p2nq: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/21 12:32:13 provision: a.shop.example.com: import sd_dw5trimqsntj5qsim6a757p2nq is cleaned up and its journal row retired
2026/10/21 12:32:13 provision: a.shop.example.com: import sd_jqdlk3nd2mlwdggps6nvx6dcqa rolled back to its original route
2026/10/21 12:32:13 provision: a.shop.example.com: import sd_jqdlk3nd2mlwdggps6nvx6dcqa: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/21 12:32:13 provision: a.shop.example.com: import sd_jqdlk3nd2mlwdggps6nvx6dcqa is cleaned up and its journal row retired
2026/10/21 12:32:14 provision: dry-run: would redo a.shop.example.com's swap record CAS for import sd_7c43rkev6nlwaaevoqfxjltvnq
2026/10/21 12:32:14 provision: dry-run: would clear a.shop.example.com's import gate
2026/10/21 12:32:14 provision: dry-run: would converge a.shop.example.com seed source
2026/10/21 12:32:14 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/21 12:32:14 provision: a.shop.example.com: the import's record apps/bac/shop/instances/a.shop.example.com.json is not one this pass can use (connection reset)
2026/10/21 12:32:14 provision: a.shop.example.com: the import's record apps/bac/shop/instances/a.shop.example.com.json is not one this pass can use (provision: invalid maintenance projection or protected fields)
2026/10/21 12:32:14 provision: a.shop.example.com: the import's record apps/bac/shop/instances/a.shop.example.com.json is not one this pass can use (the record under apps/bac/shop/instances/a.shop.example.com.json is apps/bac/shop/instances/b.shop.example.com.json's)
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_rwefd2tifm7zddgtwynwzvw47e cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_m3sf5mspnpiqy52vttlygar6bu cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_63uvwrk7p5fbhzps4zqmaoneii is journaled, but this box cannot act on imports; its row is left alone
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_6jtohexe76t3ttqknwbtifbow4 is journaled, but this box cannot act on imports; its row is left alone
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_pwh3jsdfl3rhziwlzcoi6puug4 is journaled, but this box cannot act on imports; its row is left alone
2026/10/21 12:32:14 provision: the import journal could not be read: registry: import journal a.shop.example.com: original row: unexpected end of JSON input (no import is acted on and no route is removed this pass)
2026/10/21 12:32:14 provision: b.shop.example.com: import sd_no5kcnwvptwfpwtsx4dyr3mrom left alone this pass: the import journal could not be read
2026/10/21 12:32:14 provision: c.shop.example.com: import sd_uc4ndo6tfecfvdrakywdimyu5q left alone this pass: the import journal could not be read
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_7pdw3en3te7nppbjuj3dsusuii committed: its gate is cleared and its journal row dropped
2026/10/21 12:32:14 provision: a.shop.example.com: not converging import sd_xkj45dcklm75u7qu6tgi5uqxie: it is swapped but not committed, and the row on this box has no import gate
2026/10/21 12:32:14 provision: a.shop.example.com: not converging import sd_obukgsl4kb2wi2i2ld5gp4v6ru: it is swapped but not committed, and the row on this box has no import gate
2026/10/21 12:32:14 provision: a.shop.example.com: not converging import sd_2syyzzma5vzw5akhdajpmx3q74: it is placed but not committed, and the row on this box has no import gate
2026/10/21 12:32:14 provision: a.shop.example.com: not converging import sd_nl75w2gxd2d6qvzkishnwydr5q: it is placed but not committed, and the row on this box has no import gate
2026/10/21 12:32:14 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/21 12:32:14 provision: converge seed source on a.shop.example.com: constraint failed: seed_source is read-only here (1811)
2026/10/21 12:32:14 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_4dpunl2acmbvterqsxknvd72pi committed: its gate is cleared and its journal row dropped
2026/10/21 12:32:14 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/21 12:32:14 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:14 provision: acme.go.tito.io: row is on the nested layout (db "/data/instances/acme.go.tito.io/acme.go.tito.io.db" socket "/run/carlos/instances/acme.go.tito.io/app.sock"); the record's shared paths are not drift
2026/10/21 12:32:14 provision: acme.go.tito.io: not minting a seeded instance: this box does not mint nested (<nil>)
2026/10/21 12:32:14 provision: acme.go.tito.io: not minting a seeded instance: claim control is on for this box
2026/10/21 12:32:14 provision: acme.go.tito.io: aborted seed sd_ltwjncdohiqqn37ktgwfofeh5e: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/21 12:32:14 provision: acme.go.tito.io: aborted seed sd_ltwjncdohiqqn37ktgwfofeh5e rolled back (no box had swapped it)
2026/10/21 12:32:14 provision: acme.go.tito.io: not minting a seeded instance: its record does not describe a hibernating instance
2026/10/21 12:32:14 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:14 provision: removed instance route acme.go.tito.io (its seed sd_g6hifanctqvy6iqsuarz7vimg4 was aborted); the next pass rolls it back
2026/10/21 12:32:14 provision: acme.go.tito.io: aborted seed sd_g6hifanctqvy6iqsuarz7vimg4: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/21 12:32:14 provision: acme.go.tito.io: aborted seed sd_g6hifanctqvy6iqsuarz7vimg4 rolled back (no box had swapped it)
2026/10/21 12:32:14 provision: acme.go.tito.io: aborted seed sd_zpca4rj3sixg2lylsqoy7hzrxu has a row this pass may not remove; leaving the seed aborted
2026/10/21 12:32:14 provision: acme.go.tito.io: aborted seed sd_ej4mowunkwu53uwcn57vmdko7m rolled back (no box had swapped it)
2026/10/21 12:32:14 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:14 provision: removed instance route acme.go.tito.io (its seed sd_w5rqrzwrllypiy6wkfufwy3gci was aborted); the next pass rolls it back
2026/10/21 12:32:14 provision: acme.go.tito.io: aborted seed sd_w5rqrzwrllypiy6wkfufwy3gci has no route on this box: its local data is removed
2026/10/21 12:32:14 provision: acme.go.tito.io: aborted seed sd_w5rqrzwrllypiy6wkfufwy3gci rolled back (no box had swapped it)
2026/10/21 12:32:14 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:14 provision: a.shop.example.com: swapped for import sd_53bov7to4c4g4cplxhojjyoszy (the original route is journaled)
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_53bov7to4c4g4cplxhojjyoszy rolled back to its original route
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_53bov7to4c4g4cplxhojjyoszy is cleaned up and its journal row retired
2026/10/21 12:32:14 provision: a.shop.example.com: swapped for import sd_7hnwx7nvtbpl5te7lb46duzwyu (the original route is journaled)
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_7hnwx7nvtbpl5te7lb46duzwyu rolled back to its original route
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_7hnwx7nvtbpl5te7lb46duzwyu is cleaned up and its journal row retired
2026/10/21 12:32:14 provision: a.shop.example.com: swapped for import sd_ar6sgyoqovteamrx6kexk37iqm (the original route is journaled)
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_ar6sgyoqovteamrx6kexk37iqm rolled back to its original route
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_ar6sgyoqovteamrx6kexk37iqm: the host's replica is left alone: its record no longer names this seed
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_ar6sgyoqovteamrx6kexk37iqm is cleaned up and its journal row retired
2026/10/21 12:32:14 provision: a.shop.example.com: swapped for import sd_qqfqfi2qgfrse2exvtgc2hnpbe (the original route is journaled)
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_qqfqfi2qgfrse2exvtgc2hnpbe rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_qqfqfi2qgfrse2exvtgc2hnpbe rolled back to its original route
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_qqfqfi2qgfrse2exvtgc2hnpbe is cleaned up and its journal row retired
2026/10/21 12:32:14 provision: a.shop.example.com: swapped for import sd_x2m52renx43r23teu37imttuuy (the original route is journaled)
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_x2m52renx43r23teu37imttuuy rollback deferred: the host is not fenced and stopped yet (stop unproven)
2026/10/21 12:32:14 provision: a.shop.example.com: swapped for import sd_e56qyxc6hz4luk35numejpaja4 (the original route is journaled)
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_e56qyxc6hz4luk35numejpaja4 is cleaned up and its journal row retired
2026/10/21 12:32:14 provision: a.shop.example.com: swapped for import sd_5ndgoxm6xqb5a7cfybpfbl7hvu (the original route is journaled)
2026/10/21 12:32:14 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_5ndgoxm6xqb5a7cfybpfbl7hvu left alone this pass: its record could not be read
2026/10/21 12:32:14 provision: a.shop.example.com: swapped for import sd_6bztbyn5kgaxjxkonmfg53udbq (the original route is journaled)
2026/10/21 12:32:14 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: read failed: connection reset
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_6bztbyn5kgaxjxkonmfg53udbq left alone this pass: its record could not be read
2026/10/21 12:32:14 provision: a.shop.example.com: swapped for import sd_ekl723c7j5sgiagg3qgac37wce (the original route is journaled)
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_ekl723c7j5sgiagg3qgac37wce: close the import gate: constraint failed: injected (1811)
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_ekl723c7j5sgiagg3qgac37wce rolled back to its original route
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_ekl723c7j5sgiagg3qgac37wce is cleaned up and its journal row retired
2026/10/21 12:32:14 provision: a.shop.example.com: swapped for import sd_4nhkay76vnkhcnjqnzgkovm6v4 (the original route is journaled)
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_4nhkay76vnkhcnjqnzgkovm6v4: close the import gate: constraint failed: injected (1811)
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_4nhkay76vnkhcnjqnzgkovm6v4 rolled back to its original route
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_4nhkay76vnkhcnjqnzgkovm6v4 is cleaned up and its journal row retired
2026/10/21 12:32:14 provision: a.shop.example.com: swapped for import sd_pqfi34w76jdvodux7b3wmui6z4 (the original route is journaled)
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_pqfi34w76jdvodux7b3wmui6z4 rollback deferred: the host is not fenced and stopped yet (injected failure at fence)
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_pqfi34w76jdvodux7b3wmui6z4 rolled back to its original route
2026/10/21 12:32:14 provision: a.shop.example.com: import sd_pqfi34w76jdvodux7b3wmui6z4 is cleaned up and its journal row retired
2026/10/21 12:32:14 provision: a.shop.example.com: swapped for import sd_p7gmhsfs4ayjda4e5dbermsdwm (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_p7gmhsfs4ayjda4e5dbermsdwm rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_p7gmhsfs4ayjda4e5dbermsdwm is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_o3fzb7wk6nq47nsma2uhsx3yc4 (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_o3fzb7wk6nq47nsma2uhsx3yc4: retire its instance key: injected failure at retire-key
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_o3fzb7wk6nq47nsma2uhsx3yc4 rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_o3fzb7wk6nq47nsma2uhsx3yc4 is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_6jtugrcr46ppyyuoepomvht4y4 (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_6jtugrcr46ppyyuoepomvht4y4 rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_6jtugrcr46ppyyuoepomvht4y4 is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_342auagzyjye6ynyvgthysyfau (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_342auagzyjye6ynyvgthysyfau: remove its local data: injected failure at remove-local
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_342auagzyjye6ynyvgthysyfau rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_342auagzyjye6ynyvgthysyfau is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_xr3i6lb45kfxmzyicqhyz27xiq (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_xr3i6lb45kfxmzyicqhyz27xiq rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_xr3i6lb45kfxmzyicqhyz27xiq is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_jdxeiw74b6xvjixd6lrzew3rgq (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_jdxeiw74b6xvjixd6lrzew3rgq: remove its local data: injected failure at remove-local-done
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_jdxeiw74b6xvjixd6lrzew3rgq rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_jdxeiw74b6xvjixd6lrzew3rgq is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_rwdmjlugfrwcwbvoxgy3j5j2ie (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_rwdmjlugfrwcwbvoxgy3j5j2ie rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_rwdmjlugfrwcwbvoxgy3j5j2ie is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_c7fd4bahscwviq45nwdpu5tbv4 (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_c7fd4bahscwviq45nwdpu5tbv4: restore the original route: constraint failed: injected (1811)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_c7fd4bahscwviq45nwdpu5tbv4 rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_c7fd4bahscwviq45nwdpu5tbv4 is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_64kzgnmtjeu63ej3wal2f65icy (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_64kzgnmtjeu63ej3wal2f65icy: restore the original route: constraint failed: injected (1811)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_64kzgnmtjeu63ej3wal2f65icy rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_64kzgnmtjeu63ej3wal2f65icy is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_poao75t5xggkjdg533bohvytha (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_poao75t5xggkjdg533bohvytha is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_u3m4ryom4imyb4kw2elqj7mwzq (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_u3m4ryom4imyb4kw2elqj7mwzq rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_u3m4ryom4imyb4kw2elqj7mwzq: delete its snapshot: injected failure at delete-snapshot
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_u3m4ryom4imyb4kw2elqj7mwzq is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_litjsvj5jy64qlxdu5yy5izq74 (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_litjsvj5jy64qlxdu5yy5izq74 rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_litjsvj5jy64qlxdu5yy5izq74 is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_cw2l5y7fgqyv4bssjdvsd3nzhu (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_cw2l5y7fgqyv4bssjdvsd3nzhu rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_cw2l5y7fgqyv4bssjdvsd3nzhu: delete the host's replica: injected failure at delete-replica
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_cw2l5y7fgqyv4bssjdvsd3nzhu is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_o27up7gbz2buvxowxxtsp4liea (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_o27up7gbz2buvxowxxtsp4liea rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_o27up7gbz2buvxowxxtsp4liea is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_rpey5onmtq55zuycpbrpoufuqm (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_rpey5onmtq55zuycpbrpoufuqm rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_rpey5onmtq55zuycpbrpoufuqm: retire its journal row: constraint failed: injected (1811)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_rpey5onmtq55zuycpbrpoufuqm is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_74wyqu5x4gpb7nyte55pnlu2b4 (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_74wyqu5x4gpb7nyte55pnlu2b4 rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_74wyqu5x4gpb7nyte55pnlu2b4: retire its journal row: constraint failed: injected (1811)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_74wyqu5x4gpb7nyte55pnlu2b4 is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_o6bs2rz2ae7a6jgjrqd7ikabny (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_o6bs2rz2ae7a6jgjrqd7ikabny rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_o6bs2rz2ae7a6jgjrqd7ikabny is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: mark import sd_o6bs2rz2ae7a6jgjrqd7ikabny rolled back: injected failure at cas
2026/10/21 12:32:15 provision: a.shop.example.com: aborted seed sd_o6bs2rz2ae7a6jgjrqd7ikabny rolled back (no box had swapped it)
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_ncyqmsmjdj6a7fbr4miit46sve (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_ncyqmsmjdj6a7fbr4miit46sve rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_ncyqmsmjdj6a7fbr4miit46sve is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: aborted seed sd_ncyqmsmjdj6a7fbr4miit46sve rolled back (no box had swapped it)
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_gtf63adqaqbtsghnz5zjpc4pri (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_gtf63adqaqbtsghnz5zjpc4pri rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_gtf63adqaqbtsghnz5zjpc4pri rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_gtf63adqaqbtsghnz5zjpc4pri rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_gtf63adqaqbtsghnz5zjpc4pri is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_q3hwvjxb5b6fess6t4bn2ezhtu (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_q3hwvjxb5b6fess6t4bn2ezhtu rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_q3hwvjxb5b6fess6t4bn2ezhtu is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_2vpgrtae4nwe6xeaykxocuhg3a (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_2vpgrtae4nwe6xeaykxocuhg3a rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_2vpgrtae4nwe6xeaykxocuhg3a is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_iiseakain7yv22ggazi7tiyipu (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_iiseakain7yv22ggazi7tiyipu rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_iiseakain7yv22ggazi7tiyipu is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_llkoxt5in2cufw4uxddfi5jl2q (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_llkoxt5in2cufw4uxddfi5jl2q rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_llkoxt5in2cufw4uxddfi5jl2q is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_5t35yqjba5ljrym2uiefjpoqqe (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_5t35yqjba5ljrym2uiefjpoqqe rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_5t35yqjba5ljrym2uiefjpoqqe is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_ekmvwlf6hrv7gztinofcaafr6i (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_ekmvwlf6hrv7gztinofcaafr6i rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_ekmvwlf6hrv7gztinofcaafr6i is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_kfyyefcicl3dmdolgrksdnvhwe (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_kfyyefcicl3dmdolgrksdnvhwe rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_kfyyefcicl3dmdolgrksdnvhwe is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_xqpslm4feldyhio7mp5qbjrzgq (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_xqpslm4feldyhio7mp5qbjrzgq has no route on this box: its local data is removed and no route is put back
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_xqpslm4feldyhio7mp5qbjrzgq is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_feswm6sxhxacxoqfdnycu4bu4y (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_ziokwmlqacaeqpttghhgpsojcy (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_4xobdg2rnpdp5o3k53gsqrif4u (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_4xobdg2rnpdp5o3k53gsqrif4u cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_zep7y5p3n42ezc25bpxwzvkhm4 (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_zep7y5p3n42ezc25bpxwzvkhm4 is not rolled back: the route changed under the fence, so nothing there is touched
2026/10/21 12:32:15 provision: a.shop.example.com: import "../not-a-seed" names no snapshot and no replica; only its journal row is cleaned up
2026/10/21 12:32:15 provision: a.shop.example.com: import ../not-a-seed is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_kuib2kzsgzusworeqz76bfy7xq (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_udn2tzkyjnvgfclb3uvhuwao5i (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_dxxjglwkazufmmitnuiw77mjwy (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_mqnmokswc6tf3zdsoy3nh44aru (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_27qbv7zkvzlzpyo4aatdo65djm (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_27qbv7zkvzlzpyo4aatdo65djm rollback deferred: the host is not fenced and stopped yet (stop evidence unreadable)
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_e5m2myhrd7rbad3nwaaoacb2j4 (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_e5m2myhrd7rbad3nwaaoacb2j4 has no route on this box: its local data is removed and no route is put back
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_e5m2myhrd7rbad3nwaaoacb2j4 is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_ja664gj5oudeohmxygfl7bnehi (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_ja664gj5oudeohmxygfl7bnehi: remove its local data: injected failure at remove-local
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_ja664gj5oudeohmxygfl7bnehi is not rolled back: the route at the host is not the import's, so nothing there is touched
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_e4x2q3gzdytc6ii5iythhamary (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_e4x2q3gzdytc6ii5iythhamary: a route appeared at the host, so its local database is left and the rollback waits
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_37hytexcugxvuajflf7stg3g6e (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_37hytexcugxvuajflf7stg3g6e rollback deferred: no fence generation: registry busy
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_mpuexwfqcazpxtv2pjhr22guhu (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_mpuexwfqcazpxtv2pjhr22guhu rollback deferred: no fence generation: the generation source answered 0
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_sxa7zaugkzabumrnzheaiqyt5e (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_inpk4pn6pq33x47mcv77vtign4 (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_qakpqpelecdlaavjgoeikikv7m (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import deferred: this box cannot read the instance's env file
2026/10/21 12:32:15 provision: a.shop.example.com: import deferred: the instance's env file could not be read: a symlink
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_5exlj3co73cfffhgiptvrmmsau (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_5exlj3co73cfffhgiptvrmmsau rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_5exlj3co73cfffhgiptvrmmsau is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_mg2zk44zzvvwmha2mzqabqrxjm (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_mg2zk44zzvvwmha2mzqabqrxjm rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_mg2zk44zzvvwmha2mzqabqrxjm is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_v6ei2ebtovvsewek3ck744x6su (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_v6ei2ebtovvsewek3ck744x6su rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_v6ei2ebtovvsewek3ck744x6su is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_7rgzivvcjnjq4fc7ftbg7oummm (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_7rgzivvcjnjq4fc7ftbg7oummm: retire its instance key: the env file is a symlink
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_7rgzivvcjnjq4fc7ftbg7oummm rolled back to its original route
2026/10/21 12:32:15 provision: a.shop.example.com: import sd_7rgzivvcjnjq4fc7ftbg7oummm is cleaned up and its journal row retired
2026/10/21 12:32:15 provision: a.shop.example.com: swapped for import sd_dh5nejlh3c2ivccslgp5kop5kq (the original route is journaled)
2026/10/21 12:32:15 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/21 12:32:16 provision: a.shop.example.com: swapped for import sd_g3osetkznhkocp3tufmtbkjtny (the original route is journaled)
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_i7mgpficine3ndoteyfeve562e refused: there is no route at a.shop.example.com to replace
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_goh5akg6o4agneyjampgclchq4 refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_k6oujjuz6d2htrmfqdtyfhi7vy refused: the route's address is 127.0.0.1:8401,127.0.0.1:8402, not 127.0.0.1:8401
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_4im2vhae2qmrzryh7vigbtikby refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_umdritngxkn4o5u3po6rgecngi refused: the route belongs to app other
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_epb5cfelkd7rjvyfa342ablifa refused: the route is filed under another account
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_r7nfd4fimuhpblill52f6zyqmq refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_w43k62cyyfur5xkkc6ao7nfn5q refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_2y73vxf5ydj7caboxlvrbhxdry refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_nyiknoj6foknxysijdoo66in5e refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_5juzrfnl6rcqfmw7exm7hdi6rm refused: the route is not an address route this import can take over (socket)
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_635dddwtzdwt5n3ablqjgzbwnq refused: the route is not an address route this import can take over (no address)
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_rzbyik3qsl5vfg3jzvhh6uuadq refused: the route is not an address route this import can take over (provisioned)
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_dsrv2qixqsivrgmws2e23wiroy refused: the route is not an address route this import can take over (kind static)
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_usu3lxv75wjypuitbm5ohggwui refused: the route is not an address route this import can take over (backing)
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_iy6hsrb4hb225jtsh7zqfvhfrq refused: the route is not an address route this import can take over (tunnel)
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_otxxw4ljz3jhzaljoeraoj37jq refused: the route is not an address route this import can take over (caps)
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_jcvkqabds2xxcrsd4ddnxa3fse refused: the route is not an address route this import can take over (platform)
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_z2xe3d5jkroxp44jadtmu5e2fa refused: the route is not an address route this import can take over (canary)
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_mmhi5rg5zimttkx67l5fnwi3cy refused: the route is not an address route this import can take over (kind sidecar)
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_qzomrfpvorpwtvwekqbn7nzwru refused: the route is not an address route this import can take over (region)
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_6i6eftlpdoe3fq5g5irw2kom54 refused: the route is not an address route this import can take over (fleet_box)
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_nxbzly65mfbh467wgoygzaopn4 refused: the route is not an address route this import can take over (hibernate)
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_vnfirz4gzpkv2lmpfb574evezi refused: the route is not an address route this import can take over (claim_owner)
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_ra5mitblxqrntpfsh5635ytiyq refused: this box does not run instances nested
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_o3zubmut2r5qbu2vodsi2nnawq refused: this box does not run instances nested
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_s4oy3dujv55j6a3fx3yrfhowgu refused: claim control is on for this box
2026/10/21 12:32:16 provision: a.shop.example.com: swapped for import sd_3dgtnn22iqf4ggmvwvdtwsttru (the original route is journaled)
2026/10/21 12:32:16 provision: a.shop.example.com: swapped for import sd_4htumaicarpe6bmrk54os6iq5m (the original route is journaled)
2026/10/21 12:32:16 provision: a.shop.example.com: import deferred: this box cannot read the legacy route assignments
2026/10/21 12:32:16 provision: a.shop.example.com: import deferred: the legacy route assignments could not be read: store down
2026/10/21 12:32:16 provision: a.shop.example.com: not swapping for import sd_dmy6ypkrztspv5bkz2r2lfgw44: its verify hash is not a sha256
2026/10/21 12:32:16 provision: a.shop.example.com: not swapping for import sd_3c4z2mwifjlmtgmbwb3ew5pjwq: its verify hash is not a sha256
2026/10/21 12:32:16 provision: a.shop.example.com: not swapping for import sd_r6enndmuzh7gao6qtmbs4kv4dy: its verify hash is not a sha256
2026/10/21 12:32:16 provision: a.shop.example.com: not swapping for import sd_../../x: its host or seed id is malformed (seeds: not a seed id)
2026/10/21 12:32:16 provision: A.shop.example.com/..: not swapping for import sd_e7omdsxpokljmcfiqn3v7hu2bi: its host or seed id is malformed (seeds: not a host)
2026/10/21 12:32:16 provision: a.shop.example.com: not swapping for import sd_zpurlztvkz2qp55b6fh62m5j54: its record does not describe a nested, hibernating instance
2026/10/21 12:32:16 provision: a.shop.example.com: not swapping for import sd_a3r7q7vmg5eloxai3vyytb63pu: its record does not describe a nested, hibernating instance
2026/10/21 12:32:16 provision: a.shop.example.com: not swapping for import sd_hgpduehwh6e44jty42ballyl7y: its record does not describe a nested, hibernating instance
2026/10/21 12:32:16 provision: a.shop.example.com: not swapping for import sd_kqchveyysprhpg32kuhv4ugb2e: its record does not describe a nested, hibernating instance
2026/10/21 12:32:16 provision: a.shop.example.com: import deferred: the box's layout intent could not be read: store down
2026/10/21 12:32:16 provision: a.shop.example.com: swapped for import sd_cnxoeqh4jfadpbyvli643pctxy (the original route is journaled)
2026/10/21 12:32:16 provision: a.shop.example.com: import deferred: the box's nested probe did not answer: ready probe timed out
2026/10/21 12:32:16 provision: a.shop.example.com: swapped for import sd_e6uwnsfnvbp3bke5flvpcooqle (the original route is journaled)
2026/10/21 12:32:16 provision: a.shop.example.com: swapped for import sd_4qymek7mfc4fbu36a5mvkhyvry (the original route is journaled)
2026/10/21 12:32:16 provision: a.shop.example.com: import deferred: the route is held by operation op_1
2026/10/21 12:32:16 provision: dry-run: would consider swapping a.shop.example.com for import sd_rmoj36xfw72bzqwzrssydgmlw4
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_6wqsvxdoa2wifsdpbr74vr45ai rolled back to its original route
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_6wqsvxdoa2wifsdpbr74vr45ai: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_6wqsvxdoa2wifsdpbr74vr45ai is cleaned up and its journal row retired
2026/10/21 12:32:16 provision: a.shop.example.com: import sd_sw2ksi6nyyn7ebrqmg53a7z7vm left alone: the import journal holds seed sd_dv3wfr2x7s7jfban7fiixcapia at swapped
2026/10/21 12:32:16 provision: a.shop.example.com: not minting import sd_kuennqokdmo7rssglkp4jz4bkq: it is swapped but not committed, and only its swap makes its row
2026/10/21 12:32:16 provision: a.shop.example.com: not minting import sd_skheiodol2h3kc6l2erglwhfw4: it is placed but not committed, and only its swap makes its row
2026/10/21 12:32:16 provision: a.shop.example.com: swapped for import sd_t3ie7i4evlp4b6sejqrfwpmy3u (the original route is journaled)
2026/10/21 12:32:16 provision: a.shop.example.com: not minting import sd_t3ie7i4evlp4b6sejqrfwpmy3u: it is swapped but not committed, and only its swap makes its row
2026/10/21 12:32:16 provision: a.shop.example.com: not minting import sd_t3ie7i4evlp4b6sejqrfwpmy3u: it is placed but not committed, and only its swap makes its row
2026/10/21 12:32:16 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/21 12:32:16 provision: removed retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/21 12:32:16 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/21 12:32:16 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/21 12:32:16 provision: converged sidecar bot.eleven.bac.sidecar.internal args ["sidecar","run"] -> ["worker","run"]
2026/10/21 12:32:16 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/21 12:32:16 provision: converged sidecar bot.eleven.bac.sidecar.internal ceilings 300/3600 -> 60/120
2026/10/21 12:32:16 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/21 12:32:16 provision: converged sidecar bot.eleven.bac.sidecar.internal channel stable -> canary/eleven
2026/10/21 12:32:16 provision: converged sidecar bot.eleven.bac.sidecar.internal environment "other" -> "relay"
2026/10/21 12:32:16 provision: converged sidecar bot.eleven.bac.sidecar.internal hibernate true -> false
2026/10/21 12:32:16 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: read failed: failStore: reads disabled under apps/bac/eleven/sidecars/
2026/10/21 12:32:16 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: malformed: invalid character 'n' looking for beginning of object key string
2026/10/21 12:32:16 provision: not removing sidecar bot.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/21 12:32:16 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: empty channel
2026/10/21 12:32:16 provision: skipping sidecar record apps/bac/eleven/sidecars/held.json: empty channel
2026/10/21 12:32:16 provision: not removing sidecar held.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/21 12:32:16 provision: removed retired sidecar route old.eleven.bac.sidecar.internal (record gone)
2026/10/21 12:32:16 provision: bac/eleven has sidecar records but no sidecars manifest — not minting
2026/10/21 12:32:16 provision: bac/eleven is in the trash — not minting sidecar routes for it
2026/10/21 12:32:16 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/21 12:32:16 provision: sidecar hub.relay.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/21 12:32:16 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/21 12:32:16 provision: minted sidecar route hub.relay.bac.sidecar.internal (app "relay" acct "bac" args ["relay"])
2026/10/21 12:32:16 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/21 12:32:16 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/21 12:32:17 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/21 12:32:17 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/21 12:32:17 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/21 12:32:17 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/21 12:32:17 provision: removed retired sidecar route bot.eleven.bac.sidecar.internal (record gone)
2026/10/21 12:32:17 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/21 12:32:17 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/21 12:32:17 provision: skipping sidecar record apps/bac/relay/sidecars/hub.json: read failed: failStore: reads disabled under apps/bac/relay/sidecars/
2026/10/21 12:32:17 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/21 12:32:17 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/21 12:32:17 provision: dry-run: would mint sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" channel "stable" args ["sidecar","run"])
2026/10/21 12:32:17 provision: dry-run: would remove retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/21 12:32:17 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/21 12:32:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:17 provision: converged acme.go.tito.io update settings "{\"updates\":\"manual\",\"channel\":\"stable\"}" -> ""
2026/10/21 12:32:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:17 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/21 12:32:17 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/21 12:32:17 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/21 12:32:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/21 12:32:17 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/21 12:32:17 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/21 12:32:17 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
FAIL
FAIL	github.com/carlosframework/platform/internal/provision	39.623s
ok  	github.com/carlosframework/platform/internal/publicrelease	0.010s
?   	github.com/carlosframework/platform/internal/regionname	[no test files]
ok  	github.com/carlosframework/platform/internal/registry	5.555s
ok  	github.com/carlosframework/platform/internal/relay	7.235s
ok  	github.com/carlosframework/platform/internal/release	24.418s
ok  	github.com/carlosframework/platform/internal/rollout	3.858s
ok  	github.com/carlosframework/platform/internal/rolloutwords	0.005s
ok  	github.com/carlosframework/platform/internal/rootaws	0.007s
ok  	github.com/carlosframework/platform/internal/rootparticipation	0.058s
ok  	github.com/carlosframework/platform/internal/rootstate	0.028s
ok  	github.com/carlosframework/platform/internal/runs	0.579s
ok  	github.com/carlosframework/platform/internal/s3compat	0.005s
ok  	github.com/carlosframework/platform/internal/safefile	0.004s
ok  	github.com/carlosframework/platform/internal/schedule	2.581s
ok  	github.com/carlosframework/platform/internal/seeds	0.012s
ok  	github.com/carlosframework/platform/internal/sim/hostlife	10.320s
ok  	github.com/carlosframework/platform/internal/sim/litestreamfacts	4.210s
ok  	github.com/carlosframework/platform/internal/status	0.061s
ok  	github.com/carlosframework/platform/internal/steering	0.006s
ok  	github.com/carlosframework/platform/internal/stopevidence	0.229s
ok  	github.com/carlosframework/platform/internal/svcrole	0.002s
ok  	github.com/carlosframework/platform/internal/telemetry	0.004s
ok  	github.com/carlosframework/platform/internal/termfence	0.004s
ok  	github.com/carlosframework/platform/internal/tunnelclient	0.004s
ok  	github.com/carlosframework/platform/internal/unixdial	0.003s
ok  	github.com/carlosframework/platform/internal/updatewords	0.004s
ok  	github.com/carlosframework/platform/internal/usage	0.005s
ok  	github.com/carlosframework/platform/internal/version	0.002s
ok  	github.com/carlosframework/platform/internal/vet	1.590s
FAIL
make: *** [Makefile:18: test] Error 1

amadan: step gate failed: exit status 2

amadan: job failed at step gate — its output is above, not at the tail of this log
diff --git a/approved_moves_copy_test.go b/approved_moves_copy_test.go
index 99219804e..7c1d62bb7 100644
--- a/approved_moves_copy_test.go
+++ b/approved_moves_copy_test.go
@@ -106,6 +106,7 @@ var movesCopyIDs = []string{
"MV-O158", "MV-O159", "MV-O160", "MV-O161", "MV-O162", "MV-O163", "MV-O164", "MV-O165", "MV-O166", "MV-O167", "MV-O168", "MV-O169", "MV-O170", "MV-O171",
"MV-O172", "MV-O173", "MV-O174", "MV-O175", "MV-O176", "MV-O177",
"MV-O178",
+ "MV-O179", "MV-O180", "MV-O181", "MV-O182", "MV-O183", "MV-O184", "MV-O185", "MV-O186", "MV-O187", "MV-O188", "MV-O189",
}
// copyRow is one row of the record. The File cell is the file the sentence is
@@ -1273,6 +1274,7 @@ var movesScanFiles = []string{
"internal/host/movesoffline.go",
"internal/host/movesoffline_seal.go",
"internal/host/movesoffline_land.go",
+ "internal/host/movesoffline_stage.go",
"internal/host/movesphase1.go",
"internal/host/movespolicy.go",
"internal/host/movesprobe.go",
diff --git a/docs/site/cli.md b/docs/site/cli.md
index f44e5112f..53fdcbe6a 100644
--- a/docs/site/cli.md
+++ b/docs/site/cli.md
@@ -2401,6 +2401,7 @@ Operators who are members of the instance's account.
`carlos move offline` moves one instance with planned downtime, one step at a time. It is for operators, works with host claims and Phase 1 moves off, and never acts on its own: each verb does one step and says which verb comes next.
```sh
+carlos move offline stage --host <host> --to <region>
carlos move offline start --host <host> --to <region>
carlos move offline seal --host <host>
carlos move offline flip --host <host>
@@ -2412,6 +2413,8 @@ carlos move offline status --host <host>
The instance is offline from `start` until `open`. Until `open`, `abort` puts it back where it was with nothing lost. After `open`, moving it back is a new move.
+`stage` is optional and comes before `start`. It copies the instance's data to the region it moves to while the instance keeps serving, and each time it runs it copies only what is new. The more it has copied, the less is left to copy while the instance is offline. Until `start`, `abort` removes the staged copy and the instance is never offline.
+
## On the host
These are what systemd starts. You will rarely type them, but knowing what
diff --git a/docs/superpowers/plans/2026-10-06-moves-phase1-copy.md b/docs/superpowers/plans/2026-10-06-moves-phase1-copy.md
index 10640ff9c..fe73bd1c7 100644
--- a/docs/superpowers/plans/2026-10-06-moves-phase1-copy.md
+++ b/docs/superpowers/plans/2026-10-06-moves-phase1-copy.md
@@ -552,7 +552,7 @@ Seven more lines of `carlos move offline` (`move.go`, Task 7), for places MV-O1
| MV-O54 | move.go | <box> is <phase> as the <role>. Its report is not current. | approved |
| MV-O55 | move.go | Item <id> is <status>: <detail>. | approved |
| MV-O57 | move.go | Item <id> is <status>. | approved |
-| MV-O56 | move.go | carlos move offline needs start, seal, flip, open, finish, abort or status. | approved |
+| MV-O56 | move.go | carlos move offline needs start, seal, flip, open, finish, abort or status. | pending |
| MV-O58 | move.go | <box> left <path> in place: <reason>. | approved |
| MV-O65 | move.go | <box> could not clean up <host>: <reason>. Run carlos move offline status --host <host> for each item. | approved |
@@ -688,3 +688,25 @@ A door's answer to a box report it cannot believe for its age (harness Run 9, fi
| id | file | text | status |
|---|---|---|---|
| MV-O178 | internal/console/apiinstancemove_offline.go | the report from <box> is not current. it reports again within a minute. try again then | approved |
+
+## Offline move: stage (pre-copy)
+
+`carlos move offline stage` copies the instance's replica to the region it moves to while it keeps serving, so the seal has less to copy with the instance offline (branch `moves-offline-precopy`). Pending Luna's review: Paul has handed the review of these rows to Luna, so each is `pending` until Luna approves it.
+
+MV-O179 and MV-O180 are console door refusals (`internal/console/apiinstancemove_offline.go`), lower case like the other door sentences. MV-O179 answers a `stage` or `start` that names another region than the one the instance is staged for (`<to>` is that region's name). MV-O180 is the stage door's own box rule: every box in both regions must publish `offline-stage-1`.
+
+MV-O181 is the usage line with `stage` added. It replaces MV-O56, which is set back to `pending` here because the code no longer says it: MV-O56 is withdrawn once Luna approves MV-O181. MV-O182 to MV-O188 are `carlos move offline` output (`move.go`): what `stage` says when it posts and when its round has run, what `status` says while the move is staging, and what `abort` says for a move that was staged and never started (nothing is moved back, only the staged copy is removed). In MV-O183, `<staged>` and `<total>` are object counts, `<staged_mb>` and `<total_mb>` are megabytes with one decimal, and `<time>` is the round's end as `2006-01-02 15:04 UTC`. In MV-O185, `<reason>` is the stager box's own diagnostic, not copy. MV-O189 is the CLI page's paragraph for `stage`.
+
+| id | file | text | status |
+|---|---|---|---|
+| MV-O179 | internal/console/apiinstancemove_offline.go | <host> is staged for <to>. abort the move to move it to another region | pending |
+| MV-O180 | internal/console/apiinstancemove_offline.go | <box> cannot stage an offline move. it runs an older release | pending |
+| MV-O181 | move.go | carlos move offline needs stage, start, seal, flip, open, finish, abort or status. | pending |
+| MV-O182 | move.go | Staging <host> in <to>. <host> keeps serving while it copies. | pending |
+| MV-O183 | move.go | Staged <staged> of <total> objects (<staged_mb> of <total_mb> MB) of <host> in <to> at <time>. | pending |
+| MV-O184 | move.go | <host> keeps serving. Run carlos move offline start --host <host> --to <to> when you are ready to take it offline. | pending |
+| MV-O185 | move.go | The last staging round failed: <reason>. Run carlos move offline stage --host <host> --to <to> to try again. | pending |
+| MV-O186 | move.go | Waiting for the first staging round of <host>. | pending |
+| MV-O187 | move.go | Removing the staged copy of <host> from <to>. | pending |
+| MV-O188 | move.go | The staged copy of <host> is removed. Run carlos move offline finish --host <host> to end the move. | pending |
+| MV-O189 | docs/site/cli.md | `stage` is optional and comes before `start`. It copies the instance's data to the region it moves to while the instance keeps serving, and each time it runs it copies only what is new. The more it has copied, the less is left to copy while the instance is offline. Until `start`, `abort` removes the staged copy and the instance is never offline. | pending |
diff --git a/internal/console/apiinstancemove_offline.go b/internal/console/apiinstancemove_offline.go
index 8536b8151..e74a26c8d 100644
--- a/internal/console/apiinstancemove_offline.go
+++ b/internal/console/apiinstancemove_offline.go
@@ -593,10 +593,10 @@ func (s *Server) handleAPIInstanceOfflineStart(w http.ResponseWriter, r *http.Re
// handleAPIInstanceOfflineStage is the pre-copy door. On a record at rest it
// creates the move in offline-staging, checked exactly as start is and
-// under the same one-move lock, and the source region's stager begins
-// copying on the serial bump. On a record already staging for that region
-// it writes nothing and bumps the serial, so the stager runs another round
-// now; each round copies only what is new (the receipts).
+// under the same one-move lock, and the source region's stager runs one
+// round on the serial bump. On a record already staging for that region it
+// moves staged_at forward (OfflineRestage), so the stager runs one more
+// round; each round copies only what is new (the receipts).
func (s *Server) handleAPIInstanceOfflineStage(w http.ResponseWriter, r *http.Request) {
d, ok := s.offlineGate(w, r)
if !ok {
@@ -606,14 +606,12 @@ func (s *Server) handleAPIInstanceOfflineStage(w http.ResponseWriter, r *http.Re
if !ok {
return
}
- ctx := r.Context()
if mv, staged := offlineStaged(d.rec); staged {
if to != mv.To {
writeRefusal(w, s.offlineStagedFor(d.host, mv.To))
return
}
- s.bumpSerial(ctx)
- writeJSON(w, http.StatusAccepted, s.offlineViewOf(ctx, d.rec))
+ s.offlineAdvance(w, r, d, provision.OfflineRestage(mv.ID, time.Now()))
return
}
for _, b := range append(fleet.boxesAt(d.rec.Region), fleet.boxesAt(to)...) {
@@ -1162,26 +1160,33 @@ type offlineItemView struct {
// verb would be refused with. CanAbort says abort is legal. Failed says the
// sealer or the target reported it could not do its step: abort is the way on.
type offlineView struct {
- Host string `json:"host"`
- State string `json:"state"`
- ID string `json:"id,omitempty"`
- From string `json:"from,omitempty"`
- To string `json:"to,omitempty"`
- Sealer string `json:"sealer,omitempty"`
- Boxes []string `json:"boxes,omitempty"`
- RequestedBy string `json:"requested_by,omitempty"`
- RequestedAt int64 `json:"requested_at,omitempty"`
- UpdatedAt int64 `json:"updated_at,omitempty"`
- OpenedAt int64 `json:"opened_at,omitempty"`
- Next string `json:"next,omitempty"`
- Waiting string `json:"waiting,omitempty"`
- CanAbort bool `json:"can_abort,omitempty"`
- Failed bool `json:"failed,omitempty"`
- Left []offlineLeftView `json:"left,omitempty"`
- Stage *offlineStageView `json:"stage,omitempty"`
- Reports []offlineReportView `json:"reports,omitempty"`
- Items []offlineItemView `json:"items,omitempty"`
- Last *provision.MoveOutcome `json:"last,omitempty"`
+ Host string `json:"host"`
+ State string `json:"state"`
+ ID string `json:"id,omitempty"`
+ From string `json:"from,omitempty"`
+ To string `json:"to,omitempty"`
+ Sealer string `json:"sealer,omitempty"`
+ Boxes []string `json:"boxes,omitempty"`
+ RequestedBy string `json:"requested_by,omitempty"`
+ RequestedAt int64 `json:"requested_at,omitempty"`
+ UpdatedAt int64 `json:"updated_at,omitempty"`
+ OpenedAt int64 `json:"opened_at,omitempty"`
+ Next string `json:"next,omitempty"`
+ Waiting string `json:"waiting,omitempty"`
+ CanAbort bool `json:"can_abort,omitempty"`
+ // NeverOffline: the move was staged and never started, so its
+ // instance has kept serving throughout (an abort from staging).
+ NeverOffline bool `json:"never_offline,omitempty"`
+ // StagedAt is the record's staged_at in Unix nanoseconds: the latest
+ // stage request. Stage.Request equals it once the stager has answered
+ // that request.
+ StagedAt int64 `json:"staged_at,omitempty"`
+ Failed bool `json:"failed,omitempty"`
+ Left []offlineLeftView `json:"left,omitempty"`
+ Stage *offlineStageView `json:"stage,omitempty"`
+ Reports []offlineReportView `json:"reports,omitempty"`
+ Items []offlineItemView `json:"items,omitempty"`
+ Last *provision.MoveOutcome `json:"last,omitempty"`
}
// offlineStageView is the pre-copy's progress, from the latest stager
@@ -1201,6 +1206,8 @@ type offlineStageView struct {
RoundObjects int `json:"round_objects"`
RoundBytes int64 `json:"round_bytes"`
Error string `json:"error,omitempty"`
+ // Request is the staged_at (Unix nanoseconds) the round answered.
+ Request int64 `json:"request,omitempty"`
}
// offlineStageOf is the stage view of the newest stager report, nil when no
@@ -1216,9 +1223,13 @@ func offlineStageOf(ev offlineEvidence) *offlineStageView {
return nil
}
r := latest.OfflineReport
- return &offlineStageView{Box: r.Box, Phase: r.Phase, At: r.At.Unix(),
+ v := &offlineStageView{Box: r.Box, Phase: r.Phase, At: r.At.Unix(),
ReplicaObjects: r.ReplicaObjects, ReplicaBytes: r.ReplicaBytes, StagedObjects: r.StagedObjects, StagedBytes: r.StagedBytes,
RoundObjects: r.RoundObjects, RoundBytes: r.RoundBytes, Error: r.StageError}
+ if !r.StageRequest.IsZero() {
+ v.Request = r.StageRequest.UnixNano()
+ }
+ return v
}
// offlineViewOf builds the status view of a record. Evidence it cannot read
@@ -1233,6 +1244,10 @@ func (s *Server) offlineViewOf(ctx context.Context, rec *provision.Record) offli
v.State, v.ID = mv.State, mv.ID
v.From, v.To = s.offlineName(mv.From), s.offlineName(mv.To)
v.Sealer, v.Boxes = mv.Sealer, mv.Boxes
+ v.NeverOffline = !mv.StartedOffline()
+ if mv.StagedAt != nil {
+ v.StagedAt = mv.StagedAt.UnixNano()
+ }
v.RequestedBy, v.RequestedAt, v.UpdatedAt = mv.RequestedBy, mv.RequestedAt.Unix(), mv.UpdatedAt.Unix()
if mv.OpenedAt != nil {
v.OpenedAt = mv.OpenedAt.Unix()
diff --git a/internal/console/apiinstancemove_offline_stage_test.go b/internal/console/apiinstancemove_offline_stage_test.go
index 44a33801b..debcaba96 100644
--- a/internal/console/apiinstancemove_offline_stage_test.go
+++ b/internal/console/apiinstancemove_offline_stage_test.go
@@ -1,7 +1,6 @@
package console
import (
- "context"
"net/http"
"testing"
"time"
@@ -64,18 +63,24 @@ func TestOfflineStageThenStartThenSeal(t *testing.T) {
t.Fatalf("lock %+v %v, want this move's", l, ok)
}
- // Again: another round now. The serial moves, the record does not.
- raw, _, _ := w.fx.rel.Get(context.Background(), provision.RecordKey("bab", "shop", offlineHost))
+ if !v.NeverOffline || v.StagedAt != rec.Move.StagedAt.UnixNano() {
+ t.Fatalf("staged view: never offline %v, staged at %d (record %v)", v.NeverOffline, v.StagedAt, rec.Move.StagedAt)
+ }
+
+ // Again: one more round. The request moves forward, the rest of the
+ // move does not, and the serial moves.
serial := serialBytes(t, w.fx.rel)
- if again := w.ok("/stage", `{"region":"uk"}`, provision.OfflineStaging); again.ID != w.id {
- t.Fatalf("a second stage answered move %s, want %s", again.ID, w.id)
+ again := w.ok("/stage", `{"region":"uk"}`, provision.OfflineStaging)
+ if again.ID != w.id || again.StagedAt <= v.StagedAt {
+ t.Fatalf("a second stage answered move %s staged at %d, want %s after %d", again.ID, again.StagedAt, w.id, v.StagedAt)
}
if serialBytes(t, w.fx.rel) == serial {
t.Fatal("a second stage did not bump the serial")
}
- if now, _, _ := w.fx.rel.Get(context.Background(), provision.RecordKey("bab", "shop", offlineHost)); string(now) != string(raw) {
- t.Fatal("a second stage wrote the record")
+ if after := w.record(); after.Move.State != provision.OfflineStaging || !after.Move.RequestedAt.Equal(rec.Move.RequestedAt) || after.Move.ID != w.id {
+ t.Fatalf("a second stage changed the move: %+v", after.Move)
}
+ v = again
// Another region: refused for stage and for start, nothing written.
w.refused(http.MethodPost, "/stage", `{"region":"us"}`, http.StatusConflict, msgO179("uk"))
@@ -85,12 +90,13 @@ func TestOfflineStageThenStartThenSeal(t *testing.T) {
w.refused(http.MethodPost, verb, "", http.StatusConflict, msgO25(provision.OfflineStaging))
}
- // The status shows the stager's progress.
- w.staged("ie-box", nil)
+ // The status shows the stager's progress, and which request it answered.
+ w.staged("ie-box", func(r *moves.OfflineReport) { r.StageRequest = time.Unix(0, v.StagedAt).UTC() })
st := w.status()
if st.Stage == nil || st.Stage.Box != "ie-box" || st.Stage.Phase != moves.OfflinePhaseStaged || st.Stage.StagedObjects != 300 ||
- st.Stage.ReplicaObjects != 305 || st.Stage.StagedBytes != 1_570_000_000 || st.Stage.RoundBytes != 9_000_000 || st.Stage.At == 0 {
- t.Fatalf("stage view %+v", st.Stage)
+ st.Stage.ReplicaObjects != 305 || st.Stage.StagedBytes != 1_570_000_000 || st.Stage.RoundBytes != 9_000_000 || st.Stage.At == 0 ||
+ st.Stage.Request != v.StagedAt {
+ t.Fatalf("stage view %+v (request %d)", st.Stage, v.StagedAt)
}
// Start: staging to stopping, the same move and lock, offline from now.
@@ -99,8 +105,8 @@ func TestOfflineStageThenStartThenSeal(t *testing.T) {
t.Fatalf("start answered move %s, want the staged %s", started.ID, w.id)
}
rec = w.record()
- if !rec.Move.RequestedAt.After(*rec.Move.StagedAt) || rec.Move.RequestedBy == "" {
- t.Fatalf("started record %+v", rec.Move)
+ if !rec.Move.RequestedAt.After(*rec.Move.StagedAt) || rec.Move.RequestedBy == "" || started.NeverOffline {
+ t.Fatalf("started record %+v (never offline %v)", rec.Move, started.NeverOffline)
}
if l, _ := w.lock(); l.Op != w.id {
t.Fatalf("lock %+v after start", l)
@@ -152,7 +158,9 @@ func TestOfflineAbortFromStagingDoor(t *testing.T) {
w := newOfflineWorld(t, oneEach...)
w.stage()
w.staged("ie-box", nil)
- w.ok("/abort", "", provision.OfflineReverting)
+ if v := w.ok("/abort", "", provision.OfflineReverting); !v.NeverOffline {
+ t.Fatal("an abort from staging does not say the instance was never offline")
+ }
if rec := w.record(); rec.Region != "ie" || rec.Move.State != provision.OfflineReverting {
t.Fatalf("after abort: %q %+v", rec.Region, rec.Move)
}
diff --git a/internal/host/movesoffline_stage.go b/internal/host/movesoffline_stage.go
index 41f048f82..cd2089e14 100644
--- a/internal/host/movesoffline_stage.go
+++ b/internal/host/movesoffline_stage.go
@@ -8,6 +8,7 @@ import (
"log"
"os"
"strings"
+ "time"
"github.com/carlosframework/platform/internal/activator"
"github.com/carlosframework/platform/internal/lease"
@@ -39,11 +40,15 @@ import (
// staging prefix and this box's receipts object. The lease, lock.json
// included, is never touched (MirrorPrefix skips lock.json on both sides).
//
-// Rounds run on every moves pass while the record stays offline-staging (a
-// door's serial bump starts one at once), and stop when it leaves staging:
-// the pass that runs a round holds the worker's pass lock, so this box's
-// stopped report, which the seal door waits for, is written only after the
-// last round it ran has ended.
+// One round runs per stage request: the record's staged_at, which the stage
+// door sets and every later stage moves forward (provision.OfflineRestage).
+// The stager report names the staged_at its round answered
+// (StageRequest), and a pass whose stager report already answers the
+// record's runs nothing, so an idle staging costs one report read a pass and
+// no S3 request; a failed round is retried by running stage again. Rounds
+// stop when the record leaves staging: the pass that runs a round holds the
+// worker's pass lock, so this box's stopped report, which the seal door
+// waits for, is written only after the last round it ran has ended.
// capOfflineStage1 is the edges-file capability a box publishes beside
// offline-move-1 when it can stage: run the pre-copy as the stager, and
@@ -85,6 +90,17 @@ func (w *movesWorker) offlineStageStep(ctx context.Context, s release.Store, rec
if cfg.Box == "" {
return errors.New("offline move: this box has no label to report under")
}
+ var request time.Time
+ if m.StagedAt != nil {
+ request = m.StagedAt.UTC()
+ }
+ prev, err := w.ownStagerReport(ctx, s, rec)
+ if err != nil {
+ return fmt.Errorf("offline move %s: read the stager report: %w", m.ID, err)
+ }
+ if prev != nil && prev.StageRequest.Equal(request) && (prev.Phase == moves.OfflinePhaseStaged || prev.Phase == moves.OfflinePhaseFailed) {
+ return nil // this request has had its round
+ }
stager, err := offlineStagerOf(ctx, s, cfg.ParkHomeRegion, m.From)
if err != nil {
return fmt.Errorf("offline move %s: read the fleet's edges files: %w", m.ID, err)
@@ -92,8 +108,7 @@ func (w *movesWorker) offlineStageStep(ctx context.Context, s release.Store, rec
if stager != cfg.Box {
return nil
}
- prev, _ := w.ownStagerReport(ctx, s, rec)
- r := moves.OfflineReport{Op: m.ID, Host: host, Box: cfg.Box, Role: moves.OfflineRoleStager, Phase: moves.OfflinePhaseStaged}
+ r := moves.OfflineReport{Op: m.ID, Host: host, Box: cfg.Box, Role: moves.OfflineRoleStager, Phase: moves.OfflinePhaseStaged, StageRequest: request}
p, err := w.offlineStageRound(ctx, s, rec)
r.At = cfg.now().UTC()
if err != nil {
diff --git a/internal/host/movesoffline_stage_test.go b/internal/host/movesoffline_stage_test.go
index 0ff438fab..1225c2db9 100644
--- a/internal/host/movesoffline_stage_test.go
+++ b/internal/host/movesoffline_stage_test.go
@@ -54,6 +54,12 @@ func (sw *sealWorld) stage() {
sw.move(provision.OfflineStage(offID, "", "uk", "op@example.com", sw.clock()))
}
+// restage is a second carlos move offline stage: one more round.
+func (sw *sealWorld) restage() {
+ sw.advance(time.Second)
+ sw.move(provision.OfflineRestage(offID, sw.clock()))
+}
+
// copySpy records the source key of every server-side copy the fake S3
// performs from now on.
type copySpy struct {
@@ -150,6 +156,18 @@ func TestOfflineStageThenStartThenSealSkipsThePreCopy(t *testing.T) {
if len(first) != len(replica) {
t.Fatalf("the first round made %d copies, want %d", len(first), len(replica))
}
+ if staged := sw.record().Move.StagedAt; staged == nil || !r.StageRequest.Equal(*staged) {
+ t.Fatalf("the round answered %v, the request is %v", r.StageRequest, staged)
+ }
+ // One round per request: an idle pass copies, lists and writes nothing.
+ snap := sw.fake.Snapshot()
+ sw.mustStagePass(ie)
+ if len(spy.take()) != 0 || sw.fake.Snapshot() != snap {
+ t.Fatal("a pass with no new stage request ran a round")
+ }
+ if again := sw.report(moves.OfflineRoleStager, "ie-a"); !again.At.Equal(r.At) {
+ t.Fatal("a pass with no new stage request rewrote the stager report")
+ }
// Staging held, fenced and leased nothing: the row serves, no fence,
// the lease is as it was, and a wake takes it.
@@ -171,7 +189,7 @@ func TestOfflineStageThenStartThenSealSkipsThePreCopy(t *testing.T) {
// The instance keeps writing; a second round copies only what is new.
sw.writeRows(ie, sw.dbPath(ie), 20, 40, true)
before := sw.stagedRel()
- sw.advance(time.Second)
+ sw.restage()
sw.mustStagePass(ie)
second := spy.take()
fresh := 0
@@ -189,6 +207,7 @@ func TestOfflineStageThenStartThenSealSkipsThePreCopy(t *testing.T) {
// seal's round removes it from staging.
retired := sealPrefix + "/" + offHost + "/scratch/retired.bin"
sw.fake.Put(sealIE, retired, []byte("gone before the seal"))
+ sw.restage()
sw.mustStagePass(ie)
spy.take()
if _, ok := sw.stagedRel()["scratch/retired.bin"]; !ok {
diff --git a/internal/moves/offline.go b/internal/moves/offline.go
index 967f7bf84..7fa926649 100644
--- a/internal/moves/offline.go
+++ b/internal/moves/offline.go
@@ -233,6 +233,10 @@ type OfflineReport struct {
RoundObjects int `json:"round_objects,omitempty"`
RoundBytes int64 `json:"round_bytes,omitempty"`
StageError string `json:"stage_error,omitempty"`
+ // StageRequest is the record's staged_at the round answered: one round
+ // per stage request (provision.OfflineStage, OfflineRestage), and a
+ // stager runs none while its report already answers the record's.
+ StageRequest time.Time `json:"stage_request,omitzero"`
}
var (
diff --git a/internal/provision/offline_move.go b/internal/provision/offline_move.go
index dd53aa916..5ad990a5d 100644
--- a/internal/provision/offline_move.go
+++ b/internal/provision/offline_move.go
@@ -200,9 +200,34 @@ func OfflineStartStaged(id, by string, now time.Time) func(*Record) error {
}
}
-// startedOffline reports whether the move ever took its instance offline:
+// OfflineRestage is staging to staging: the operator asked for another
+// pre-copy round. It moves staged_at to now (always forward), which is the
+// request the stager answers with exactly one round (the stager report's
+// stage_request names the staged_at it served). requested_at stays, so the
+// move still reads as never started.
+func OfflineRestage(id string, now time.Time) func(*Record) error {
+ return func(rec *Record) error {
+ if err := offlineAt(rec, id, OfflineStaging); err != nil {
+ return err
+ }
+ if rec.Region != rec.Move.From {
+ return fmt.Errorf("%w: %s", ErrMoveConflict, offlineRegionMoved(rec.Region))
+ }
+ if now.IsZero() {
+ return fmt.Errorf("%w: %s", ErrMoveConflict, refusedMalformedStart)
+ }
+ t := now.UTC()
+ if s := rec.Move.StagedAt; s != nil && !t.After(*s) {
+ t = s.Add(time.Nanosecond)
+ }
+ rec.Move.StagedAt = &t
+ return nil
+ }
+}
+
+// StartedOffline reports whether the move ever took its instance offline:
// a move created in stopping did at once, a staged one at OfflineStartStaged.
-func (m *MoveState) startedOffline() bool {
+func (m *MoveState) StartedOffline() bool {
return m.StagedAt == nil || m.RequestedAt.After(*m.StagedAt)
}
@@ -380,7 +405,7 @@ func OfflineFinish(id string, now time.Time) func(*Record) error {
default:
return fmt.Errorf("%w: %s", ErrMoveConflict, offlineFinishState(m.State))
}
- if s := end.Sub(m.RequestedAt).Seconds(); s > 0 && m.startedOffline() {
+ if s := end.Sub(m.RequestedAt).Seconds(); s > 0 && m.StartedOffline() {
out.OfflineS = s
}
rec.LastMove, rec.Move = out, nil
diff --git a/internal/provision/offline_stage_test.go b/internal/provision/offline_stage_test.go
index fb21754bc..eddd28036 100644
--- a/internal/provision/offline_stage_test.go
+++ b/internal/provision/offline_stage_test.go
@@ -119,7 +119,7 @@ func TestOfflineStartStagedIsAlwaysAfterTheStage(t *testing.T) {
if err != nil {
t.Fatal(err)
}
- if !got.Move.RequestedAt.After(*got.Move.StagedAt) || !got.Move.startedOffline() {
+ if !got.Move.RequestedAt.After(*got.Move.StagedAt) || !got.Move.StartedOffline() {
t.Fatalf("start %v is not after the stage %v", got.Move.RequestedAt, got.Move.StagedAt)
}
}
@@ -169,10 +169,46 @@ func TestOfflineStagedAtIsAdditiveOnTheWire(t *testing.T) {
if err != nil {
t.Fatal(err)
}
- if rec.Move.State != OfflineStaging || rec.Move.StagedAt == nil || rec.Move.startedOffline() {
+ if rec.Move.State != OfflineStaging || rec.Move.StagedAt == nil || rec.Move.StartedOffline() {
t.Fatalf("staged journal: %+v", rec.Move)
}
if out, _ := json.Marshal(rec); string(out) != staged {
t.Errorf("staged journal did not round-trip:\n got %s\nwant %s", out, staged)
}
}
+
+// A second stage is OfflineRestage: staged_at moves forward, never back,
+// requested_at stays, and the move still reads as never started. Nothing
+// but staging admits it.
+func TestOfflineRestage(t *testing.T) {
+ ctx := context.Background()
+ now := time.Date(2026, 10, 21, 9, 0, 0, 0, time.UTC)
+ s := release.NewDirStore(t.TempDir())
+ rec := offlineRecord(t, s)
+ if _, err := SetRecordMove(ctx, s, rec.Account, rec.App, rec.Host, OfflineRestage(offID, now)); !errors.Is(err, ErrMoveConflict) {
+ t.Fatalf("restage at rest: %v", err)
+ }
+ if _, err := SetRecordMove(ctx, s, rec.Account, rec.App, rec.Host, OfflineStage(offID, "", "uk", "ops@example.com", now)); err != nil {
+ t.Fatal(err)
+ }
+ got, err := SetRecordMove(ctx, s, rec.Account, rec.App, rec.Host, OfflineRestage(offID, now.Add(5*time.Minute)))
+ if err != nil || !got.Move.StagedAt.Equal(now.Add(5*time.Minute)) || !got.Move.RequestedAt.Equal(now) || got.Move.StartedOffline() || got.Move.State != OfflineStaging {
+ t.Fatalf("restage: %v %+v", err, got.Move)
+ }
+ // A clock behind the last request still moves it forward.
+ got, err = SetRecordMove(ctx, s, rec.Account, rec.App, rec.Host, OfflineRestage(offID, now))
+ if err != nil || !got.Move.StagedAt.After(now.Add(5*time.Minute)) {
+ t.Fatalf("restage with an earlier clock: %v %+v", err, got.Move)
+ }
+ if _, err := SetRecordMove(ctx, s, rec.Account, rec.App, rec.Host, OfflineRestage(otherOff, now)); !errors.Is(err, ErrMoveConflict) {
+ t.Fatalf("restage with another id: %v", err)
+ }
+ // The start after a restage is still after the last request.
+ got, err = SetRecordMove(ctx, s, rec.Account, rec.App, rec.Host, OfflineStartStaged(offID, "ops@example.com", now.Add(time.Minute)))
+ if err != nil || !got.Move.StartedOffline() || got.Move.State != OfflineStopping {
+ t.Fatalf("start after restage: %v %+v", err, got.Move)
+ }
+ if _, err := SetRecordMove(ctx, s, rec.Account, rec.App, rec.Host, OfflineRestage(offID, now)); !errors.Is(err, ErrMoveConflict) {
+ t.Fatalf("restage after the start: %v", err)
+ }
+}
diff --git a/move.go b/move.go
index 3ebb08307..3480e8ee4 100644
--- a/move.go
+++ b/move.go
@@ -83,8 +83,9 @@ const (
moveNoFlipTime = "The move's flip time could not be read, so its target cannot be declared lost from here."
moveOtherLoss = "The console asks to confirm a loss carlos move does not know. Use carlos ops host resolve."
moveLossChanged = "The move changed since it was read. Nothing was declared. Run the command again."
- // The offline subcommand named no verb, or one it does not have (MV-O56).
- moveOfflineUsage = "carlos move offline needs start, seal, flip, open, finish, abort or status."
+ // The offline subcommand named no verb, or one it does not have (MV-O181,
+ // which replaces MV-O56 now that stage is a verb).
+ moveOfflineUsage = "carlos move offline needs stage, start, seal, flip, open, finish, abort or status."
)
func moveSay(out io.Writer, line string) {
@@ -122,7 +123,7 @@ type moveDeps struct {
type moveArgs struct {
verb string // request | status | cut | abort | resolve | offline
- offline string // the offline verb: start | seal | flip | open | finish | abort | status
+ offline string // the offline verb: stage | start | seal | flip | open | finish | abort | status
host, to, app string
account, accountID string
console string
@@ -172,7 +173,7 @@ func parseMoveArgs(args []string, out io.Writer) (moveArgs, error) {
case "cut", "abort":
fs.BoolVar(&a.noWait, "no-wait", false, "return once the console has accepted it")
case "offline":
- if a.offline == "start" {
+ if a.offline == "start" || a.offline == "stage" {
fs.StringVar(&a.to, "to", "", "the region to move the instance to")
}
case "resolve":
@@ -192,7 +193,7 @@ func parseMoveArgs(args []string, out io.Writer) (moveArgs, error) {
case a.host == "":
moveSay(out, moveNeedsHost)
return moveArgs{}, errors.New("no --host")
- case (a.verb == "request" || a.offline == "start") && a.to == "":
+ case (a.verb == "request" || a.offline == "start" || a.offline == "stage") && a.to == "":
moveSay(out, moveNeedsTo)
return moveArgs{}, errors.New("no --to")
case a.verb == "resolve" && a.retry && a.lostBox != "":
@@ -982,15 +983,17 @@ func (m *mover) refusal(r moveReply) int {
//
// An operator moves one instance with planned downtime, one step at a time:
// start, seal, flip, open, finish, abort, and status (offline-move plan,
-// Task 7). Each verb posts to its door, then polls the status door every
+// Task 7). stage comes before start when the operator wants the offline
+// window short: it copies the instance's data to the target while it keeps
+// serving, and can be run again. Each verb posts to its door, then polls the status door every
// interval until the step it started is done or has failed, and says which
// verb comes next. It never runs the next verb by itself. The exit codes are
// the family's: 0 the step is done, 3 the move was aborted, 4 the step failed
// or the move waits for the operator, 5 the console refused, 1 an error.
// Refusals are the console's own sentences (serverText); the CLI invents none.
-// offlineVerbs are the seven verbs after `carlos move offline`.
-var offlineVerbs = []string{"start", "seal", "flip", "open", "finish", "abort", "status"}
+// offlineVerbs are the eight verbs after `carlos move offline`.
+var offlineVerbs = []string{"stage", "start", "seal", "flip", "open", "finish", "abort", "status"}
// offlineView is the offline status view (GET) and the 202 every mutating
// door answers with.
@@ -1004,6 +1007,12 @@ type offlineView struct {
Boxes []string `json:"boxes"`
Next string `json:"next"`
CanAbort bool `json:"can_abort"`
+ // NeverOffline: staged and never started, so an abort only removes
+ // the staged copy.
+ NeverOffline bool `json:"never_offline"`
+ // StagedAt is the latest stage request (Unix nanoseconds), which
+ // Copying.Answered equals once the stager has run its round.
+ StagedAt int64 `json:"staged_at"`
// Failed: a box's report says the step cannot finish (the status view's
// own flag; the CLI says MV-O6 or MV-O9 for it).
Failed bool `json:"failed"`
@@ -1011,6 +1020,50 @@ type offlineView struct {
Reports []offlineReportView `json:"reports"`
Items []offlineItemView `json:"items"`
Last *moveOutcome `json:"last"`
+ // Copying is the pre-copy's progress (the console's stage), nil when no
+ // box has staged this move.
+ Copying *offlineCopying `json:"stage"`
+}
+
+// offlineCopying is the status view's stage: the stager's last round. The
+// fields are named apart from the tree's for the copy gate; Trouble is the
+// box's own diagnostic, not copy.
+type offlineCopying struct {
+ Stager string `json:"box"`
+ Phase string `json:"phase"`
+ RoundAt int64 `json:"at"`
+ Total int `json:"replica_objects"`
+ TotalBytes int64 `json:"replica_bytes"`
+ Done int `json:"staged_objects"`
+ DoneBytes int64 `json:"staged_bytes"`
+ Trouble string `json:"error"`
+ Answered int64 `json:"request"`
+}
+
+// megabytes is a byte count as a progress line says it.
+func megabytes(n int64) string { return fmt.Sprintf("%.1f", float64(n)/1e6) }
+
+// sayStaged says the stage's last round: how much of the replica the
+// target holds and when (MV-O183), that the round failed (MV-O185), or
+// that none has run yet (MV-O186).
+func (w *offlineRun) sayStaged(v offlineView) {
+ host, c := w.m.host, v.Copying
+ if c == nil {
+ moveSay(w.m.out, fmt.Sprintf("Waiting for the first staging round of %s.", host))
+ return
+ }
+ if c.Phase == moves.OfflinePhaseFailed {
+ moveSay(w.m.out, fmt.Sprintf("The last staging round failed: %s. Run carlos move offline stage --host %s --to %s to try again.", c.Trouble, host, v.To))
+ return
+ }
+ at := time.Unix(c.RoundAt, 0).UTC().Format("2006-01-02 15:04 UTC")
+ moveSay(w.m.out, fmt.Sprintf("Staged %d of %d objects (%s of %s MB) of %s in %s at %s.", c.Done, c.Total, megabytes(c.DoneBytes), megabytes(c.TotalBytes), host, v.To, at))
+}
+
+// sayStartWhenReady is MV-O184: what comes after a stage.
+func (w *offlineRun) sayStartWhenReady(v offlineView) {
+ host := w.m.host
+ moveSay(w.m.out, fmt.Sprintf("%s keeps serving. Run carlos move offline start --host %s --to %s when you are ready to take it offline.", host, host, v.To))
}
type offlineReportView struct {
@@ -1364,6 +1417,16 @@ func (w *offlineRun) sayServed(v offlineView) {
// headline says where a move in flight stands, in the verbs' own sentences.
func (w *offlineRun) headline(r offlineReply) {
v, host := r.v, w.m.host
+ if v.State == provision.OfflineStaging {
+ moveSay(w.m.out, fmt.Sprintf("Staging %s in %s. %s keeps serving while it copies.", host, v.To, host))
+ w.sayStaged(v)
+ if v.Next == "start" {
+ w.sayStartWhenReady(v)
+ return
+ }
+ w.sayWaiting(r)
+ return
+ }
moveSay(w.m.out, moves.MoveStartingLine(host, v.From, v.To))
if w.sayFailure(v) {
return
@@ -1413,6 +1476,8 @@ func (m *mover) offline(ctx context.Context, a moveArgs) int {
switch a.offline {
case "status":
return w.runStatus(ctx)
+ case "stage":
+ return w.runStage(ctx, a.to)
case "start":
return w.runStart(ctx, a.to)
case "seal":
@@ -1454,6 +1519,14 @@ func (w *offlineRun) runStatus(ctx context.Context) int {
return moveExitDone
}
w.headline(r)
+ if v.State == provision.OfflineStaging {
+ // Nothing of the manifest is checked before the start, so the
+ // items would all say waiting. The stage's own line said it.
+ if v.Copying != nil && v.Copying.Phase == moves.OfflinePhaseFailed {
+ return moveExitWaiting
+ }
+ return moveExitDone
+ }
failed := false
for _, it := range v.Items {
if it.Diagnostic == "" {
@@ -1479,6 +1552,37 @@ func (w *offlineRun) runStatus(ctx context.Context) int {
return moveExitDone
}
+// runStage posts the stage door, then waits for the round that answers the
+// stage request the post made (or a later one's, if another terminal ran
+// stage meanwhile).
+func (w *offlineRun) runStage(ctx context.Context, to string) int {
+ r, code := w.post(ctx, "/stage", map[string]string{"region": to})
+ if code >= 0 {
+ return code
+ }
+ host := w.m.host
+ if r.v.State != provision.OfflineStaging {
+ return w.stray(r)
+ }
+ moveSay(w.m.out, fmt.Sprintf("Staging %s in %s. %s keeps serving while it copies.", host, r.v.To, host))
+ asked := r.v.StagedAt
+ return w.follow(ctx, r, func(r offlineReply) (int, bool) {
+ if r.v.State != provision.OfflineStaging {
+ return w.stray(r), true
+ }
+ c := r.v.Copying
+ if c == nil || c.Answered < asked || c.Answered != r.v.StagedAt {
+ return 0, false
+ }
+ w.sayStaged(r.v)
+ if c.Phase == moves.OfflinePhaseFailed {
+ return moveExitWaiting, true
+ }
+ w.sayStartWhenReady(r.v)
+ return moveExitDone, true
+ })
+}
+
func (w *offlineRun) runStart(ctx context.Context, to string) int {
r, code := w.post(ctx, "", map[string]string{"region": to})
if code >= 0 {
@@ -1640,6 +1744,11 @@ func (w *offlineRun) runAbort(ctx context.Context) int {
if code >= 0 {
return code
}
+ // A move aborted while staging was never offline: there is nothing to
+ // move back, only the staged copy to remove.
+ if r.v.NeverOffline {
+ return w.abortStaged(ctx, r)
+ }
host := w.m.host
moveSay(w.m.out, fmt.Sprintf("Moving %s back to %s.", host, r.v.From))
return w.follow(ctx, r, func(r offlineReply) (int, bool) {
@@ -1654,3 +1763,20 @@ func (w *offlineRun) runAbort(ctx context.Context) int {
return w.stray(r), true
})
}
+
+// abortStaged follows an abort from staging: the stager removes the staged
+// copy, every source box reports, and the operator runs finish.
+func (w *offlineRun) abortStaged(ctx context.Context, r offlineReply) int {
+ host := w.m.host
+ moveSay(w.m.out, fmt.Sprintf("Removing the staged copy of %s from %s.", host, r.v.To))
+ return w.follow(ctx, r, func(r offlineReply) (int, bool) {
+ if r.v.State == provision.OfflineReverting {
+ if r.v.Next == "finish" {
+ moveSay(w.m.out, fmt.Sprintf("The staged copy of %s is removed. Run carlos move offline finish --host %s to end the move.", host, host))
+ return moveExitRolled, true
+ }
+ return 0, false
+ }
+ return w.stray(r), true
+ })
+}
diff --git a/move_test.go b/move_test.go
index e91be1486..d09ddffd9 100644
--- a/move_test.go
+++ b/move_test.go
@@ -1238,6 +1238,8 @@ func TestParseMoveArgsOffline(t *testing.T) {
sub string
}{
{[]string{"offline", "start", "--host", oHost, "--to", "uk"}, true, "start"},
+ {[]string{"offline", "stage", "--host", oHost, "--to", "uk"}, true, "stage"},
+ {[]string{"offline", "stage", "--host", oHost}, false, ""},
{[]string{"offline", "seal", "--host", oHost}, true, "seal"},
{[]string{"offline", "flip", "--host", oHost}, true, "flip"},
{[]string{"offline", "open", "--host", oHost}, true, "open"},
@@ -1262,7 +1264,7 @@ func TestParseMoveArgsOffline(t *testing.T) {
if _, err := parseMoveArgs([]string{"offline", "cut", "--host", oHost}, &out); err == nil {
t.Fatal("an unknown offline verb parsed")
}
- wantLines(t, out.String(), "carlos move offline needs start, seal, flip, open, finish, abort or status.")
+ wantLines(t, out.String(), "carlos move offline needs stage, start, seal, flip, open, finish, abort or status.")
out.Reset()
_, _ = parseMoveArgs([]string{"offline", "start", "--host", oHost}, &out)
wantLines(t, out.String(), "carlos move needs --to <region>.")
@@ -1810,3 +1812,103 @@ func TestMoveOfflineFailedReportAfterTheOpen(t *testing.T) {
t.Errorf("a reverting move with an old failed target: exit %d:\n%s", code, out)
}
}
+
+// ---- carlos move offline stage ----
+
+const (
+ oStaging = "Staging acme.shop.example.com in uk. acme.shop.example.com keeps serving while it copies."
+ oReady = "acme.shop.example.com keeps serving. Run carlos move offline start --host acme.shop.example.com --to uk when you are ready to take it offline."
+ oUnstage = "Removing the staged copy of acme.shop.example.com from uk."
+ oUnstaged = "The staged copy of acme.shop.example.com is removed. Run carlos move offline finish --host acme.shop.example.com to end the move."
+)
+
+// stageView is a staging move's view with the stager's last round, which
+// answered the request at answered (0: no round yet).
+func stageView(stagedAt, answered int64, phase string, extra frame) frame {
+ f := frame{"staged_at": stagedAt, "never_offline": true, "sealer": "", "boxes": nil, "can_abort": true}
+ if answered != 0 {
+ f["stage"] = frame{"box": "ie-box", "phase": phase, "at": int64(1792573200), "replica_objects": 305, "replica_bytes": 1_580_000_000,
+ "staged_objects": 305, "staged_bytes": 1_580_000_000, "round_objects": 305, "round_bytes": 1_580_000_000, "request": answered,
+ "error": "mirror: copy instances/x: boom"}
+ }
+ for k, v := range extra {
+ f[k] = v
+ }
+ return offView("offline-staging", f)
+}
+
+// stage posts and then waits for the round that answers its own request:
+// not the earlier round the answer already showed.
+func TestMoveOfflineStage(t *testing.T) {
+ c := &fakeOfflineConsole{
+ posts: map[string][]offPost{"/stage": {{202, stageView(200, 100, "staged", nil)}}},
+ gets: []frame{
+ stageView(200, 100, "staged", nil),
+ stageView(200, 200, "staged", frame{"next": "start"}),
+ },
+ }
+ code, out := runOfflineAgainst(t, c, "stage", "--to", "uk")
+ want := oStaging + "\nStaged 305 of 305 objects (1580.0 of 1580.0 MB) of acme.shop.example.com in uk at 2026-10-21 09:00 UTC.\n" + oReady + "\n"
+ if code != 0 || out != want {
+ t.Fatalf("exit %d, output:\n%s\nwant 0:\n%s", code, out, want)
+ }
+ if got := c.requests(); len(got) == 0 || got[0] != `POST /offline/stage {"region":"uk"}` {
+ t.Fatalf("requests %q", got)
+ }
+ if c.posted("") != 0 {
+ t.Error("stage started the move by itself")
+ }
+ // A failed round: the box's reason, the way on, exit 4.
+ c = &fakeOfflineConsole{
+ posts: map[string][]offPost{"/stage": {{202, stageView(300, 0, "", nil)}}},
+ gets: []frame{stageView(300, 300, "failed", nil)},
+ }
+ code, out = runOfflineAgainst(t, c, "stage", "--to", "uk")
+ want = oStaging + "\nThe last staging round failed: mirror: copy instances/x: boom. Run carlos move offline stage --host acme.shop.example.com --to uk to try again.\n"
+ if code != 4 || out != want {
+ t.Fatalf("exit %d, output:\n%s\nwant 4:\n%s", code, out, want)
+ }
+ // A refusal is the console's sentence, as sent.
+ refusal := "acme.shop.example.com is staged for uk. abort the move to move it to another region"
+ c = &fakeOfflineConsole{posts: map[string][]offPost{"/stage": {{409, frame{"error": refusal}}}}}
+ if code, out := runOfflineAgainst(t, c, "stage", "--to", "us"); code != 5 || out != refusal+"\n" {
+ t.Fatalf("exit %d:\n%s", code, out)
+ }
+}
+
+// status while staging: the stage's line instead of the manifest's items.
+func TestMoveOfflineStatusWhileStaging(t *testing.T) {
+ c := &fakeOfflineConsole{gets: []frame{stageView(200, 0, "", nil)}}
+ code, out := runOfflineAgainst(t, c, "status")
+ if want := oStaging + "\nWaiting for the first staging round of acme.shop.example.com.\n"; code != 0 || out != want {
+ t.Fatalf("exit %d, output:\n%s\nwant 0:\n%s", code, out, want)
+ }
+ c = &fakeOfflineConsole{gets: []frame{stageView(200, 200, "staged", frame{"next": "start"})}}
+ code, out = runOfflineAgainst(t, c, "status")
+ want := oStaging + "\nStaged 305 of 305 objects (1580.0 of 1580.0 MB) of acme.shop.example.com in uk at 2026-10-21 09:00 UTC.\n" + oReady + "\n"
+ if code != 0 || out != want {
+ t.Fatalf("exit %d, output:\n%s\nwant 0:\n%s", code, out, want)
+ }
+ c = &fakeOfflineConsole{gets: []frame{stageView(200, 200, "failed", nil)}}
+ if code, _ := runOfflineAgainst(t, c, "status"); code != 4 {
+ t.Fatalf("status of a failed round exit %d, want 4", code)
+ }
+}
+
+// abort of a move still staging: nothing to move back, only the staged copy.
+func TestMoveOfflineAbortStaged(t *testing.T) {
+ c := &fakeOfflineConsole{
+ posts: map[string][]offPost{"/abort": {{202, offView("offline-reverting", frame{"never_offline": true, "sealer": ""})}}},
+ gets: []frame{
+ offView("offline-reverting", frame{"never_offline": true, "sealer": ""}),
+ offView("offline-reverting", frame{"never_offline": true, "sealer": "", "next": "finish"}),
+ },
+ }
+ code, out := runOfflineAgainst(t, c, "abort")
+ if want := oUnstage + "\n" + oUnstaged + "\n"; code != 3 || out != want {
+ t.Fatalf("exit %d, output:\n%s\nwant 3:\n%s", code, out, want)
+ }
+ if c.posted("/finish") != 0 {
+ t.Error("abort ran finish by itself")
+ }
+}
diff --git a/offline_move_e2e_test.go b/offline_move_e2e_test.go
index fe8e07eb2..fff3f5766 100644
--- a/offline_move_e2e_test.go
+++ b/offline_move_e2e_test.go
@@ -21,12 +21,18 @@ import (
"github.com/carlosframework/platform/internal/status"
)
-// TestMoveOfflineAgainstTheRealDoors drives `carlos move offline start` and
-// `status` through moveMain against a real console.Server: the stub tests
-// type the status view by hand, and this one ties the CLI's view structs to
-// the JSON the console writes (next, waiting, failed, items, reports, left).
-// The boxes are played by reports written where the real boxes write them.
-func TestMoveOfflineAgainstTheRealDoors(t *testing.T) {
+// offlineE2E is a real console.Server with one hibernating instance of the
+// app shop in ie, an operator's CLI login, and the ie and uk boxes
+// published with caps. run is moveMain for `carlos move offline <args>`
+// against it; put writes a box's report where the real box writes it.
+type offlineE2E struct {
+ host string
+ rel release.Store
+ run func(c context.Context, args ...string) (int, string)
+ put func(id, box, role, phase string, edit func(*moves.OfflineReport))
+}
+
+func newOfflineE2E(t *testing.T, caps []string) *offlineE2E {
const (
host = "acme.shop.example.com"
addr = "paul@keymail.dev"
@@ -109,7 +115,7 @@ func TestMoveOfflineAgainstTheRealDoors(t *testing.T) {
"v": 1, "box": b.box, "box_id": b.box, "eip": "1.2.3.4", "region": b.aws, "placement": b.placement,
"data_bucket": b.bucket, "hibernation_configured": true, "serves_shared_pool": true,
"accepts_inbound": true, "secrets_key_fp": fp,
- "capabilities": []string{"region-ha-1", "offline-move-1"}, "hosts": map[string]any{},
+ "capabilities": caps, "hosts": map[string]any{},
})
if _, err := rel.Put(ctx, "control/edges/"+b.box+".json", body, ""); err != nil {
t.Fatal(err)
@@ -150,6 +156,19 @@ func TestMoveOfflineAgainstTheRealDoors(t *testing.T) {
}
}
+ return &offlineE2E{host: host, rel: rel, run: run, put: put}
+}
+
+// TestMoveOfflineAgainstTheRealDoors drives `carlos move offline start` and
+// `status` through moveMain against a real console.Server: the stub tests
+// type the status view by hand, and this one ties the CLI's view structs to
+// the JSON the console writes (next, waiting, failed, items, reports, left).
+// The boxes are played by reports written where the real boxes write them.
+func TestMoveOfflineAgainstTheRealDoors(t *testing.T) {
+ e := newOfflineE2E(t, []string{"region-ha-1", "offline-move-1"})
+ host, rel, run, put := e.host, e.rel, e.run, e.put
+ ctx := context.Background()
+
// start waits for the source box; it runs on while the test plays it.
ctxStart, cancel := context.WithTimeout(ctx, 30*time.Second)
defer cancel()
@@ -216,3 +235,111 @@ func TestMoveOfflineAgainstTheRealDoors(t *testing.T) {
_, out = run(ctx, "status")
wantLines(t, out, "ie-box left /opt/carlos/live/"+host+" in place: a root-owned directory.")
}
+
+// TestMoveOfflineStageAgainstTheRealDoors drives stage, status, start and
+// abort of a staged move through moveMain against a real console.Server,
+// tying the CLI's stage view to the JSON the console writes. The stager is
+// played by its report, written for the stage request the record carries.
+func TestMoveOfflineStageAgainstTheRealDoors(t *testing.T) {
+ e := newOfflineE2E(t, []string{"region-ha-1", "offline-move-1", "offline-stage-1"})
+ host, ctx := e.host, context.Background()
+ record := func() *provision.Record {
+ t.Helper()
+ rec, err := provision.GetRecord(ctx, e.rel, release.OpsAccount, "shop", host)
+ if err != nil {
+ t.Fatal(err)
+ }
+ return rec
+ }
+ // round plays the stager: one round for the record's current request.
+ round := func(id string) {
+ t.Helper()
+ e.put(id, "ie-box", moves.OfflineRoleStager, moves.OfflinePhaseStaged, func(r *moves.OfflineReport) {
+ r.Held, r.Fenced, r.Quiesced = false, false, false
+ r.StageRequest = *record().Move.StagedAt
+ r.ReplicaObjects, r.ReplicaBytes, r.StagedObjects, r.StagedBytes = 288, 72_000_000, 288, 72_000_000
+ })
+ }
+ type result struct {
+ code int
+ out string
+ }
+ // stage waits for its round; the test plays the stager once the record
+ // carries the request.
+ stage := func(wantRequestAfter time.Time) (string, result) {
+ t.Helper()
+ sctx, cancel := context.WithTimeout(ctx, 30*time.Second)
+ defer cancel()
+ done := make(chan result, 1)
+ go func() {
+ code, out := e.run(sctx, "stage", "--to", "uk")
+ done <- result{code, out}
+ }()
+ var id string
+ for deadline := time.Now().Add(20 * time.Second); time.Now().Before(deadline); time.Sleep(10 * time.Millisecond) {
+ if rec, err := provision.GetRecord(ctx, e.rel, release.OpsAccount, "shop", host); err == nil && rec.Move != nil && rec.Move.StagedAt != nil && rec.Move.StagedAt.After(wantRequestAfter) {
+ id = rec.Move.ID
+ break
+ }
+ }
+ if id == "" {
+ t.Fatal("stage never wrote its request")
+ }
+ round(id)
+ select {
+ case r := <-done:
+ return id, r
+ case <-time.After(20 * time.Second):
+ t.Fatal("stage never finished")
+ }
+ return "", result{}
+ }
+ staging := "Staging " + host + " in uk. " + host + " keeps serving while it copies."
+ ready := host + " keeps serving. Run carlos move offline start --host " + host + " --to uk when you are ready to take it offline."
+ id, r := stage(time.Time{})
+ if r.code != 0 {
+ t.Fatalf("stage exit %d:\n%s", r.code, r.out)
+ }
+ wantLines(t, r.out, staging, ready)
+ if !strings.Contains(r.out, "Staged 288 of 288 objects (72.0 of 72.0 MB) of "+host+" in uk at ") {
+ t.Fatalf("stage output lacks the progress line:\n%s", r.out)
+ }
+ // Again: a new request, answered by a new round.
+ first := *record().Move.StagedAt
+ if id2, r := stage(first); r.code != 0 || id2 != id {
+ t.Fatalf("second stage exit %d (move %s, want %s):\n%s", r.code, id2, id, r.out)
+ }
+ code, out := e.run(ctx, "status")
+ if code != 0 {
+ t.Fatalf("status exit %d:\n%s", code, out)
+ }
+ wantLines(t, out, staging, ready)
+
+ // abort from staging: the staged copy goes, then finish.
+ actx, cancel := context.WithTimeout(ctx, 30*time.Second)
+ defer cancel()
+ aborted := make(chan result, 1)
+ go func() {
+ code, out := e.run(actx, "abort")
+ aborted <- result{code, out}
+ }()
+ for deadline := time.Now().Add(20 * time.Second); time.Now().Before(deadline) && record().Move.State != provision.OfflineReverting; time.Sleep(10 * time.Millisecond) {
+ }
+ e.put(id, "ie-box", moves.OfflineRoleSource, moves.OfflinePhaseReverted, func(r *moves.OfflineReport) { r.Held = false })
+ select {
+ case r := <-aborted:
+ if r.code != 3 {
+ t.Fatalf("abort exit %d:\n%s", r.code, r.out)
+ }
+ wantLines(t, r.out, "Removing the staged copy of "+host+" from uk.",
+ "The staged copy of "+host+" is removed. Run carlos move offline finish --host "+host+" to end the move.")
+ case <-time.After(20 * time.Second):
+ t.Fatal("abort never finished")
+ }
+ if code, out := e.run(ctx, "finish"); code != 3 {
+ t.Fatalf("finish exit %d:\n%s", code, out)
+ }
+ if rec := record(); rec.Move != nil || rec.LastMove == nil || rec.LastMove.Outcome != provision.OfflineOutcomeAborted || rec.LastMove.OfflineS != 0 {
+ t.Fatalf("after finish: %+v %+v", rec.Move, rec.LastMove)
+ }
+}