offline-move: two-box witness
TestOfflineMoveE2E drives the whole offline move through the console's
real doors (console.NewServer in process, an operator's CLI token) and two
boxes in two regions (ie-box at home over data-ie, uk-box in uk over
data-uk), each ticked between the door calls in the agent's order:
reconcileSerializedWith, the production edges-file writer fed
edgesFileLoop's identity from the box's own environment, movesPass.
Four moves: done (flat), done (nested source with launch.run.json and
launch.gen.7.json beside the files directory), done (no files directory),
and a rollback after a tampered archive.
It asserts: after the seal, lease.Acquire and ie-box's ExecBackend.Acquire
meet HeldError{moved:<id>} and the activator refuses a request at its
fence; after open, uk-box's ExecBackend.Restore promotes moves/<host>/,
CheckDB passes and all 30 rows are there (5 of them a WAL tail the sealer
checkpointed); files, <host>.env and config.env byte-equal to the source,
the same instance key, the store binding in the target's launch, timers,
NextDue and replication carried; the record differs only in region, move,
last_move and record_seq; a recording store over the deployment store
shows no write outside the closed write set (nothing under control/hosts/,
control/host-census/, control/host-actors.json, the admission or a domains
claim) and the data buckets nothing outside the move's keys; every
source-retire path parked, absent or left, nothing deleted; the tombstone
lifted at finish. The rollback: open refused, abort lifts and unfences,
the source serves again with every row, uk-box keeps no row and parked
what it rendered, both staging prefixes empty.
The env pin across two agent environments: the boxes share one test
process and childEnv reads os.Environ(), so each box's LaunchLayers runs
with its own SYSTEMD_EXEC_PID, MEMORY_PRESSURE_WATCH, INVOCATION_ID,
AWS_REGION, STATUS_BOX_REGION and PLATFORM_EDGE_IPS swapped into the
process environment for the call (withAgentEnv), and a premise check
fails if the swap is not in effect.
Watched to fail, each in a scratch copy of the tree:
- files (the sealer archives without uploads/): files differ on the target
- env (the landing extracts <host>.env elsewhere): the landing never lands
- config (the landing's config item OK without a render): env-pin fails,
the landing never lands
- tombstone (finishing reports lifted without lifting): the lock is still
moved:<id> after finish
- env pin (BoxVars back to the pre-97f541f2 list): env-pin fails
- write set (a report write also puts control/host-census/<host>.json):
named as the claim's key and outside the closed write set
Fakes: the activator's wake backend (fence only), the operator page
recorder, the box status snapshots written once before the move, the
reconcile Layout intent, a RenderHeld standing in for config sync's
at-rest render of the source's config.env, and T5's raw-directory stand-in
for the nested bind mount.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 file changed,
+1278
−0
internal/host/movesoffline_e2e_test.go+1278 −0
CI failed — run details
CI log
amadan: log truncated — showing the last 344596 bytes of 703751
claim_invariant_regionha_test.go:146: registered route POST /api/cli/apps/{account}/{app}/instances/{host}/move/offline/flip (handler github.com/carlosframework/platform/internal/console.(*Server).cliRoute.func1) has no claim fixture: add a door, or a read or nonApp reason
claim_invariant_regionha_test.go:146: registered route POST /api/cli/apps/{account}/{app}/instances/{host}/move/offline/open (handler github.com/carlosframework/platform/internal/console.(*Server).cliRoute.func1) has no claim fixture: add a door, or a read or nonApp reason
claim_invariant_regionha_test.go:146: registered route POST /api/cli/apps/{account}/{app}/instances/{host}/move/offline/seal (handler github.com/carlosframework/platform/internal/console.(*Server).cliRoute.func1) has no claim fixture: add a door, or a read or nonApp reason
2026/10/20 08:25:31 console: box box-ie-default has the legacy role (by paul@keymail.dev, roster revision 2)
2026/10/20 08:25:31 console: audit box-role platform: sql: no rows in result set
2026/10/20 08:25:31 console: the group in ie (routers) and its boxes [box-ie-default] have the legacy role (by paul@keymail.dev, roster revision 3)
2026/10/20 08:25:31 console: audit group-role platform: sql: no rows in result set
--- FAIL: TestClaimConsoleMutationInvariant (0.16s)
claim_invariant_test.go:182: registered route GET /api/cli/apps/{account}/{app}/instances/{host}/move/offline (handler github.com/carlosframework/platform/internal/console.(*Server).cliRoute.func1) has no claim fixture: add a door, or a read or nonApp reason
claim_invariant_test.go:182: registered route POST /api/cli/apps/{account}/{app}/instances/{host}/move/offline (handler github.com/carlosframework/platform/internal/console.(*Server).cliRoute.func1) has no claim fixture: add a door, or a read or nonApp reason
claim_invariant_test.go:182: registered route POST /api/cli/apps/{account}/{app}/instances/{host}/move/offline/abort (handler github.com/carlosframework/platform/internal/console.(*Server).cliRoute.func1) has no claim fixture: add a door, or a read or nonApp reason
claim_invariant_test.go:182: registered route POST /api/cli/apps/{account}/{app}/instances/{host}/move/offline/finish (handler github.com/carlosframework/platform/internal/console.(*Server).cliRoute.func1) has no claim fixture: add a door, or a read or nonApp reason
claim_invariant_test.go:182: registered route POST /api/cli/apps/{account}/{app}/instances/{host}/move/offline/flip (handler github.com/carlosframework/platform/internal/console.(*Server).cliRoute.func1) has no claim fixture: add a door, or a read or nonApp reason
claim_invariant_test.go:182: registered route POST /api/cli/apps/{account}/{app}/instances/{host}/move/offline/open (handler github.com/carlosframework/platform/internal/console.(*Server).cliRoute.func1) has no claim fixture: add a door, or a read or nonApp reason
claim_invariant_test.go:182: registered route POST /api/cli/apps/{account}/{app}/instances/{host}/move/offline/seal (handler github.com/carlosframework/platform/internal/console.(*Server).cliRoute.func1) has no claim fixture: add a door, or a read or nonApp reason
2026/10/20 08:25:39 console: cli token revoke paul@keymail.dev: hostops: pending
2026/10/20 08:25:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:41 console: claim recovery: context canceled
2026/10/20 08:25:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:41 console: claim recovery: sns: context canceled
context canceled
context canceled
2026/10/20 08:25:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:42 console: materialized account bac (Account) from the bucket
2026/10/20 08:25:43 console: materialized account bac (Account) from the bucket
2026/10/20 08:25:43 console: materialized account bac (Account) from the bucket
2026/10/20 08:25:43 console: materialized account bac (Account) from the bucket
2026/10/20 08:25:43 console: materialized account bac (Account) from the bucket
2026/10/20 08:25:43 console: materialized account bac (Account) from the bucket
2026/10/20 08:25:43 console: materialized account bac (Account) from the bucket
2026/10/20 08:25:43 console: materialized account bac (Account) from the bucket
2026/10/20 08:25:43 console: materialized account bac (Account) from the bucket
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:45 console: claim restore bab/kass: recovered (restored)
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:45 console: claim restore bab/kass: recovered (restored)
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:46 console: hold app materialization bab/kass: constraint failed: test restore SQL failure (1811)
2026/10/20 08:25:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:46 console: restore row bab/kass: constraint failed: test restore SQL failure (1811)
2026/10/20 08:25:48 console: mail push: bab/titogo: hostops: pending
2026/10/20 08:25:55 console: mail push: bab/titogo: no answer: lost response
no answer: lost response
2026/10/20 08:25:55 mail: disassociating tenant resource for bab/remove.example.com: lost disassociation response
--- FAIL: TestClaimConsoleRouteCensus (0.16s)
claim_routes_test.go:39: new: route GET /api/cli/apps/{account}/{app}/instances/{host}/move/offline
claim_routes_test.go:39: new: route POST /api/cli/apps/{account}/{app}/instances/{host}/move/offline
claim_routes_test.go:39: new: route POST /api/cli/apps/{account}/{app}/instances/{host}/move/offline/abort
claim_routes_test.go:39: new: route POST /api/cli/apps/{account}/{app}/instances/{host}/move/offline/finish
claim_routes_test.go:39: new: route POST /api/cli/apps/{account}/{app}/instances/{host}/move/offline/flip
claim_routes_test.go:39: new: route POST /api/cli/apps/{account}/{app}/instances/{host}/move/offline/open
claim_routes_test.go:39: new: route POST /api/cli/apps/{account}/{app}/instances/{host}/move/offline/seal
2026/10/20 08:25:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:58 console: backfilled account manifest for bab (ops)
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: backfilled account manifest for bab (ops)
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: backfilled account manifest for bab (ops)
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: backfilled account manifest for bab (ops)
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: materialized account bac (Testco) from the bucket
2026/10/20 08:25:59 console: account telemetry bac: dirstore: invalid key "apps/bac//telemetry.json"
2026/10/20 08:25:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:25:59 console: materialized account bac (Testco) from the bucket
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: control-plane check console in account bab: SQL logic error: no such column: control_plane (1)
2026/10/20 08:26:00 console: control-plane check console in account bab: SQL logic error: no such column: control_plane (1)
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:01 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/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:01 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/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:01 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/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:01 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/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 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/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 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/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 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/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 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/20 08:26:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:01 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/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 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/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:02 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:02 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 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/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 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/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:02 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:02 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 console: api instances create bab/titogo: read existing record for acme.go.tito.io: get secret-bucket: connection reset
2026/10/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 console: api sidecars create bab/titogo: read existing record for bot.titogo.bab.sidecar.internal: get secret-bucket: connection reset
2026/10/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:02 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/20 08:26:02 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/20 08:26:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: materialized account bac (Testco) from the bucket
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: materialized account bac (Testco) from the bucket
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: materialized account bac (Testco) from the bucket
2026/10/20 08:26:03 console: tombstone account bac: console: no deployment release store is configured on this box
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: trash marker bab/kass: release: malformed trash marker for bab/kass: invalid character 'n' looking for beginning of object key string
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: purge preflight bab/kass: release: bab/kass is flagged production — a trashed production app should be impossible; refusing to purge
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: purge preflight bab/kass: release: bab/kass is flagged production — a trashed production app should be impossible; refusing to purge
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: bab/kass has no trash marker and still has objects; restoring it here
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:03 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:03 edgesfile: could not load box snapshots (bucket list refused) — edge set falls back to the configured list
2026/10/20 08:26:03 console: versions kass: bucket list refused
2026/10/20 08:26:03 console: tags kass: bucket list refused
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/20 08:26:04 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/20 08:26:04 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/20 08:26:04 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/20 08:26:04 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/20 08:26:04 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: deploy signer for bab/hello: key grant signature verification failed (not signed by the deployment's root release key)
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: deploy signer for bab/hello: mint key grant: invalid name "deploy.bad name!" (letters, digits, . _ - ; up to 64)
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 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/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: attach story.carlosframework.com: existing record is not this door's to adopt (read: <nil>)
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: attach story.carlosframework.com: record write: opStore: timed out after the object landed
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:04 console: attach story.carlosframework.com: claim write: opStore: bucket unavailable
2026/10/20 08:26:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: attach story.carlosframework.com: record write: opStore: bucket unavailable
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/20 08:26:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:05 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:06 console: bill pass 2026-08: cost explorer: AccessDeniedException: user is not authorized
2026/10/20 08:26:06 console: bill pass 2026-07: cost explorer: AccessDeniedException: user is not authorized
2026/10/20 08:26:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: bill pass 2026-08: cost explorer: ThrottlingException: rate exceeded
2026/10/20 08:26:07 console: bill pass 2026-07: cost explorer: ThrottlingException: rate exceeded
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:11 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/20 08:26:11 console: bill pass 2026-08: cost explorer: console: cost explorer disabled for this process
2026/10/20 08:26:11 console: bill pass 2026-07: cost explorer: console: cost explorer disabled for this process
2026/10/20 08:26:11 console: bill pass 2026-08: cost explorer: console: cost explorer disabled for this process
2026/10/20 08:26:11 console: bill pass 2026-07: cost explorer: console: cost explorer disabled for this process
2026/10/20 08:26:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:11 console: storage pass: store bab/kass: endpoint down
2026/10/20 08:26:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:11 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/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 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/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: load economics: fleet meters unavailable: console: fleet meters: registry /tmp/TestLoadEconomicsDegradesWithoutRegistry2244759955/003/nonexistent-registry.db: stat /tmp/TestLoadEconomicsDegradesWithoutRegistry2244759955/003/nonexistent-registry.db: no such file or directory
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: edge proof: first signed request from the edge — X-Forwarded-For from loopback now needs a proof
2026/10/20 08:26:12 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/20 08:26:12 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/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: expiry pass: trash bab/tmp-a: release: write trash marker for bab/tmp-a: hookStore: put refused
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: expiry pass: early purge bab/tmp-a: release: bab/tmp-a was trashed at 2026-10-20T07:26:12Z, not 2026-10-17T08:26:12Z: release: the trash marker is not the one the purge was decided for
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: expiry pass: early purge bab/tmp-a: release: purge apps/bab/tmp-a/releases/v1/site.tar.gz: hookStore: delete refused
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:12 console: expiry pass: bab/tmp-a is marked as the control plane; not purging it
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: expiry pass: bab/tmp-a has email estate; not purging it
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 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/20 08:26:13 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/20 08:26:13 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/20 08:26:13 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/20 08:26:13 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/20 08:26:13 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/20 08:26:13 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/20 08:26:13 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/20 08:26:13 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/20 08:26:13 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/20 08:26:13 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/20 08:26:13 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/20 08:26:13 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/20 08:26:13 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/20 08:26:13 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/20 08:26:13 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/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 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/20 08:26:13 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/20 08:26:13 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/20 08:26:13 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/20 08:26:13 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/20 08:26:13 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/20 08:26:13 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/20 08:26:13 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/20 08:26:13 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/20 08:26:13 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/20 08:26:13 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/20 08:26:13 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/20 08:26:13 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/20 08:26:13 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/20 08:26:13 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/20 08:26:13 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/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: bab/tmp-a is in the trash in the bucket; marking it trashed here
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: expiry pass: early purge bab/tmp-a: hookStore: delete refused
2026/10/20 08:26:13 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/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: could not notify bob@keymail.dev of a CLI token issue: Post "http://127.0.0.1:36529/api/app/send": dial tcp 127.0.0.1:36529: connect: connection refused
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: place bab/titogo: instance ghost.go.tito.io vanished mid-walk, skipping
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: fleet page bab/acme: load heartbeats: bucket list refused
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:14 console: geoip published ed972738 (GeoIP2-City, feed:test-feed)
2026/10/20 08:26:14 console: geoip published ed972738 (GeoIP2-City, feed:test-feed)
2026/10/20 08:26:14 console: geoip published ed972738 (GeoIP2-City, feed:test-feed)
2026/10/20 08:26:14 console: geoip feed test-feed: edition Tue, 06 Oct 2026 00:00:00 GMT rejected: checksum
2026/10/20 08:26:14 console: geoip feed test-feed: edition 2026-10 rejected: too large
2026/10/20 08:26:14 console: geoip feed test-feed: edition 2026-10 rejected: wrong type
2026/10/20 08:26:14 console: geoip feed test-feed: edition (none) rejected: download
2026/10/20 08:26:14 console: geoip feed status unreadable; this check's outcome was not recorded
2026/10/20 08:26:14 console: geoip feed status could not be cleared; retrying in 1ms
2026/10/20 08:26:14 console: geoip feed status could not be cleared; retrying in 2ms
2026/10/20 08:26:15 console: geoip published b3760190 (GeoIP2-Country, manual)
2026/10/20 08:26:15 console: geoip feed test-feed: edition (none) rejected: download
2026/10/20 08:26:15 console: geoip published ed972738 (GeoIP2-City, feed:test-feed)
2026/10/20 08:26:15 console: geoip database aaaaaaaa (GeoIP2-City) followed from this box's edge
2026/10/20 08:26:15 console: geoip database aaaaaaaa (GeoIP2-City) followed from this box's edge
2026/10/20 08:26:15 console: geoip database bbbbbbbb (GeoIP2-City) followed from this box's edge
2026/10/20 08:26:15 console: geoip database expired (GeoLite2, 30 days after build) and was closed
2026/10/20 08:26:15 console: geoip database cccccccc (GeoIP2-City) followed from this box's edge
2026/10/20 08:26:15 console: geoip local state unreadable; keeping the loaded database
2026/10/20 08:26:15 console: geoip database dddddddd (GeoIP2-City) followed from this box's edge
2026/10/20 08:26:15 console: geoip database expired (GeoLite2, 30 days after build) and was closed
2026/10/20 08:26:15 console: geoip local state unreadable; keeping the loaded database
2026/10/20 08:26:15 console: geoip database dddddddd (GeoIP2-City) followed from this box's edge
2026/10/20 08:26:15 console: geoip database expired (GeoLite2, 30 days after build) and was closed
2026/10/20 08:26:15 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/20 08:26:15 console: geoip published b3760190 (GeoIP2-Country, manual)
2026/10/20 08:26:15 console: geoip published b3760190 (GeoIP2-Country, manual)
2026/10/20 08:26:15 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/20 08:26:15 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/20 08:26:15 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/20 08:26:15 console: geoip published b3760190 (GeoIP2-Country, manual)
2026/10/20 08:26:15 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/20 08:26:15 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/20 08:26:15 console: geoip database bbbbbbbb expired (GeoLite2, 30 days after build) and was removed
2026/10/20 08:26:15 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/20 08:26:15 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/20 08:26:15 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/20 08:26:15 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/20 08:26:15 console: geoip published ed972738 (GeoIP2-City, feed:x)
2026/10/20 08:26:15 console: geoip published b3760190 (GeoIP2-Country, manual)
2026/10/20 08:26:15 console: geoip published ed972738 (GeoIP2-City, feed:x)
2026/10/20 08:26:15 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/20 08:26:15 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/20 08:26:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:18 console: audit instance-delete titogo: hostops: pending
2026/10/20 08:26:21 console: audit instance-delete titogo: hostops: pending
2026/10/20 08:26:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:21 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/20 08:26:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:21 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/20 08:26:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:21 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:21 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:21 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 console: instance store provision bab/shop/canary: objstore: bucket or IAM user name belongs to another store: carlos-bab-shop-canary
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 console: instance store provision bab/shop/canary: objstore: bucket or IAM user name belongs to another store: carlos-bab-shop-canary
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 console: instance store provision bab/shop/canary: objstore: bucket or IAM user name belongs to another store: carlos-bab-shop-canary
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 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/20 08:26:22 console: instance store provision bab/shop/canary: objstore: ensure user carlos-store-bab-shop-canary: iam is down
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 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/20 08:26:22 console: instance store provision bab/shop/canary: objstore: ensure user carlos-store-bab-shop-canary: iam is down
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:22 console: instance store provision bab/shop/canary: objstore: bucket or IAM user name belongs to another store: carlos-bab-shop-canary
2026/10/20 08:26:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: could not notify alice@keymail.dev of a CLI token issue: Post "http://127.0.0.1:34727/api/app/send": dial tcp 127.0.0.1:34727: connect: connection refused
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: could not notify alice@keymail.dev of a CLI token issue: Post "http://127.0.0.1:40817/api/app/send": dial tcp 127.0.0.1:40817: connect: connection refused
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: invite to sam@gmail.com: no keymail mailbox, trying email
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: invite to sam@keymail.dev by keymail: keymail: the recipient's proof-of-work price is above the console's cap
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: invite to sam@keymail.dev: the recipient blocked the console on keymail; not emailing
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: invite to sam@gmail.com: no keymail mailbox, trying email
2026/10/20 08:26:23 console: invite to sam@gmail.com by email: console mail: sending identity not verified yet
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: invite to sam@gmail.com: no keymail mailbox, trying email
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: invite to sam@keymail.dev by keymail: context deadline exceeded
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 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/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: backfilled account manifest for bab (ops)
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: audit system-update platform: sql: database is closed
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:31 console: mail push: suspended bab/jb-book — nothing accepted for 24h0m0s
2026/10/20 08:26:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:31 console: materialized account bbw (Blog) from the bucket
2026/10/20 08:26:31 console: materialized account mdbbndjqx (Kass) from the bucket
2026/10/20 08:26:31 console: materialized account bbw (Blog) from the bucket
2026/10/20 08:26:31 console: skipping accounts/bbx/account.json: sqid "bbx"/"elsewhere" is not Sqid(43)="bbx" — that is corruption, not a new account
2026/10/20 08:26:31 console: skipping accounts/broken/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/20 08:26:31 console: skipping accounts/empty/account.json: malformed account manifest: <nil>
2026/10/20 08:26:31 console: skipping accounts/wrong/account.json: sqid "wrong"/"wrong" is not Sqid(42)="bbw" — that is corruption, not a new account
2026/10/20 08:26:31 console: materialized account bac (Kass) from the bucket
2026/10/20 08:26:31 console: materialized account bbw (Kass) from the bucket
2026/10/20 08:26:31 console: materialized account bbw (Kass) from the bucket
2026/10/20 08:26:31 console: materialized account bac (Kass) from the bucket
2026/10/20 08:26:31 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/20 08:26:31 console: materialized account bbw (Kass) from the bucket
2026/10/20 08:26:31 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/20 08:26:31 console: materialized account bbw (Legacy) from the bucket
2026/10/20 08:26:31 console: materialized account bac (Testco) from the bucket
2026/10/20 08:26:31 console: reaped account bac (Testco) — its manifest is tombstoned
2026/10/20 08:26:31 console: materialized account bac (Testco) from the bucket
2026/10/20 08:26:31 console: reaped account bac (Testco) — its manifest is tombstoned
2026/10/20 08:26:31 console: materialized account bac (Testco) from the bucket
2026/10/20 08:26:31 console: bac/alpha is in the trash in the bucket — marking it trashed here
2026/10/20 08:26:31 console: bac/beta has no trash marker and still has objects — restoring it here
2026/10/20 08:26:31 console: bac/gamma is gone from the bucket — releasing the name here
2026/10/20 08:26:32 console: materialized account bac (Testco) from the bucket
2026/10/20 08:26:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:33 console: background metrics sweep panic, cache left at its last good sweep: simulated bucket panic
2026/10/20 08:26:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:33 console: background metrics sweep: list metrics/boxes/: bucket had a bad day
2026/10/20 08:26:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:33 console: background metrics sweep: list metrics/boxes/: bucket had a bad day
2026/10/20 08:26:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:34 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/20 08:26:34 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/20 08:26:34 console: audit instance-delete titogo: hostops: pending
2026/10/20 08:26:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:43 console: moves: acme.go.tito.io: the start of move mv_jqjk7uspbqdeu6bym6eg5r5bze settled not-applied
2026/10/20 08:26:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:44 console: moves: acme.go.tito.io: move mv_dgnccqvks6hvgnkfxfwzt6kywu closed by the console (rolled-back-close); the release follows
2026/10/20 08:26:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:44 console: moves: acme.go.tito.io: move mv_va7kzd7mzmtnaiabjrv4kvq2da closed by the console (close); the release follows
2026/10/20 08:26:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:44 console: moves: acme.go.tito.io: move mv_2cn6qbf5ujz7rf4dpxrdekhqbm is still preparing after 6h0m0s; aborted
2026/10/20 08:26:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:45 console: moves: acme.go.tito.io: move mv_vad4p4quluknqoe64bbsx5nc54 closed by the console (close); the release follows
2026/10/20 08:26:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:45 console: moves: acme.go.tito.io: move mv_3wtfmx5jawh4m7e57baospmrtu is still preparing after 6h0m0s; aborted
2026/10/20 08:26:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:46 console: moves: acme.go.tito.io: move mv_gslhtjbfiavykzeansbodfehka closed by the console (close); the release follows
2026/10/20 08:26:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:46 console: moves: acme.go.tito.io: move mv_tswb5epbtgk4vvccoqdvvhzxbe closed by the console (close); the release follows
2026/10/20 08:26:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:47 console: moves: acme.go.tito.io: move mv_c5dkiuhvkkoyttouekii5x5u5m closed by the console (close); the release follows
2026/10/20 08:26:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:47 console: moves: warning: kass.carlosapp.dev: the log of move mv_xsc3r4joupofiib2ds7hmo5x3u at elsewhere is held: the writer refuses it (hostops: identity mismatch); its entry is kept until its incarnation is purged
2026/10/20 08:26:47 console: moves: warning: acme.go.tito.io: the log of move mv_xsc3r4joupofiib2ds7hmo5x3u at stale is held: the writer refuses it (hostops: identity mismatch); its entry is kept until its incarnation is purged
2026/10/20 08:26:47 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/20 08:26:47 console: moves: warning: acme.go.tito.io: the log of move mv_xsc3r4joupofiib2ds7hmo5x3u at retired is held: the writer refuses it (hostops: identity mismatch); its entry is kept until its incarnation is purged
2026/10/20 08:26:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:51 console: api instance move bab/titogo/acme.go.tito.io: declared loss refused: hostresolve: evidence or operation does not authorize resolution
2026/10/20 08:26:51 console: moves: warning: acme.go.tito.io: the log of move mv_7ymed2m4ydhgtqdyhw7hphgxsi 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/20 08:26:51 console: moves: acme.go.tito.io: the log of move mv_7ymed2m4ydhgtqdyhw7hphgxsi at rolling_back-target-lost was never confirmed and the claim no longer holds the instance it was queued for; dropped
2026/10/20 08:26:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:53 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/20 08:26:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:54 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/20 08:26:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:26:58 console: claim request refused: begin: no eligible box in uk: hostops: region has no box that can take this
2026/10/20 08:26:58 console: refused: no eligible box in ie
2026/10/20 08:26:58 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/20 08:26:58 console: refused: no eligible box in ie
2026/10/20 08:26:58 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/20 08:26:58 console: refused: no eligible box in ie
2026/10/20 08:26:58 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/20 08:26:58 console: refused: no eligible box in ie
2026/10/20 08:26:58 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/20 08:26:59 console: refused: no eligible box in ie
2026/10/20 08:26:59 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/20 08:26:59 console: refused: no eligible box in ie
2026/10/20 08:26:59 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/20 08:26:59 console: refused: no eligible box in ie
2026/10/20 08:26:59 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/20 08:27:00 console: refused: no eligible box in ie
2026/10/20 08:27:00 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/20 08:27:00 console: instance bab/titogo/acme.go.tito.io binds environment "canary": the store seed sd_v2qqyehyenqjkreh4wyvfjhqum made (bucket carlos-bab-titogo-canary) is no longer that seed's, and its finish leaves it standing
2026/10/20 08:27:00 console: refused: no eligible box in ie
2026/10/20 08:27:00 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/20 08:27:00 console: refused: no eligible box in ie
2026/10/20 08:27:00 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/20 08:27:01 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/20 08:27:01 edges: skipping control/edges/box-x.json in the placement join: not a versioned edges file
2026/10/20 08:27:01 console: claim request refused: hostops: the placement read was incomplete, so no box could be judged
2026/10/20 08:27:01 edges: skipping control/edges/box-x.json in the placement join: not a versioned edges file
2026/10/20 08:27:01 console: claim request refused: hostops: the placement read was incomplete, so no box could be judged
2026/10/20 08:27:02 edgesfile: control/edges/box-x.json: edgesfile: parse: unexpected end of JSON input
2026/10/20 08:27:02 edges: skipping control/edges/box-x.json in the placement join: not a versioned edges file
2026/10/20 08:27:02 console: claim request refused: hostops: the placement read was incomplete, so no box could be judged
2026/10/20 08:27:02 edges: skipping control/edges/box-x.json in the placement join: not a versioned edges file
2026/10/20 08:27:02 console: api instances create bab/titogo: incomplete edges or snapshot read, region ie unconfirmed
2026/10/20 08:27:02 console: refused: no eligible box in ie
2026/10/20 08:27:02 console: no-capacity alert for ie: the mail relay is down
2026/10/20 08:27:02 console: refused: no eligible box in ie
2026/10/20 08:27:02 console: refused: no eligible box in ie
2026/10/20 08:27:02 console: refused: no eligible box in ie
2026/10/20 08:27:02 console: refused: no eligible box in ie
2026/10/20 08:27:02 console: refused: no eligible box in ie
2026/10/20 08:27:02 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/20 08:27:02 console: refused: no eligible box in ie
2026/10/20 08:27:02 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/20 08:27:03 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/20 08:27:03 console: refused: no eligible box in ie
2026/10/20 08:27:03 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/20 08:27:03 console: claim request refused: no eligible box in ie: hostops: region has no box that can take this
2026/10/20 08:27:03 console: claim request refused: hostclaim: claim changed since it was read: store: compare-and-swap conflict
2026/10/20 08:27:03 console: claim request refused: hostops: the placement read was incomplete, so no box could be judged
2026/10/20 08:27:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:03 console: backfilled account manifest for bab (ops)
2026/10/20 08:27:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:03 console: backfilled account manifest for bab (ops)
2026/10/20 08:27:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:03 console: backfilled account manifest for bab (ops)
2026/10/20 08:27:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:03 console: backfilled account manifest for bab (ops)
2026/10/20 08:27:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:03 console: backfilled account manifest for bab (ops)
2026/10/20 08:27:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:03 console: backfilled account manifest for bab (ops)
2026/10/20 08:27:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:03 console: confirm pending change: database is locked
2026/10/20 08:27:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:03 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/20 08:27:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:03 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/20 08:27:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:04 console: execute promote 3432c27ed2e2476b9b7dccd5fe93bfc9: 1 of 2 confirmations counted (1 rows, quorum stored 2)
2026/10/20 08:27:04 console: execute promote 148af71ea38577ae8ae2bb0343bb0ae8: change belongs to 1/"kass", not 1/"widget"
2026/10/20 08:27:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:04 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/20 08:27:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:04 console: backfilled account manifest for bab (ops)
2026/10/20 08:27:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: execute promote widget v2 -> production: promote --retry renews a promotion: production names v3, not v2
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: app region bab/solo: (default)
2026/10/20 08:27:05 console: backfilled account manifest for bab (ops)
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: app region bab/solocan: (default)
2026/10/20 08:27:05 console: backfilled account manifest for bab (ops)
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: app region bab/soloflow: (default)
2026/10/20 08:27:05 console: backfilled account manifest for bab (ops)
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: app region bab/multiflow: (default)
2026/10/20 08:27:05 console: backfilled account manifest for bab (ops)
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: app region bab/bakeapp: (default)
2026/10/20 08:27:05 console: backfilled account manifest for bab (ops)
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: app region bab/multi: (default)
2026/10/20 08:27:05 console: backfilled account manifest for bab (ops)
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: app region bab/queue: (default)
2026/10/20 08:27:05 console: backfilled account manifest for bab (ops)
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: app region bab/settle: (default)
2026/10/20 08:27:05 console: backfilled account manifest for bab (ops)
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/20 08:27:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region 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 66b5835b2a5bb5c7, 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 0bc3c8c9a4d9fc8e, 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 69f8f8767b9b3be8, 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 a5a14ae62466a32a, 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 13f22ef3ea08909b, op 1)
console: relay enabled bab/meet in eu-west-1 by alice@keymail.dev (incarnation 633e849e8f286929, 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 032dfdb5a153c2ab, 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 47226f3dab4258c1, 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 2cfbc6201ad11aa9, 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 894e9f79496fd643, 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 b852e78ff6bca017, 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 f93dff8926c54d0c, 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: 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_5p5iyht6u32lslwqqzyt2getje made (bucket carlos-bab-shop-canary) is no longer that seed's, and its finish leaves it standing
console: finished seed sd_5p5iyht6u32lslwqqzyt2getje 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_knylhousa3i3445fpt26fcjcwq 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_iecrmfbjcdd4op3n27mmalz32q 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_ogdenlwld4eahmrdkbjscjqpqe 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_b3zqn2g7oxng25ooynnoofbyfa: instance other.shop.example.com already names the environment
console: finished seed sd_b3zqn2g7oxng25ooynnoofbyfa 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_tapb2aykqnt5dyqztfyyom3jza of bab/shop/canary.shop.example.com: tore down its store (bucket carlos-bab-shop-canary)
console: finish seed sd_tapb2aykqnt5dyqztfyyom3jza of canary.shop.example.com: deleted 2 replica objects under instances/canary.shop.example.com/
console: finished seed sd_tapb2aykqnt5dyqztfyyom3jza 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_hhl6c5ziw4ckeh5gmrt5kymzi4 of bab/shop/canary.shop.example.com: tore down its store (bucket carlos-bab-shop-canary)
console: finished seed sd_hhl6c5ziw4ckeh5gmrt5kymzi4 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_hgmwfenejljlzxt6emgacgwvj4 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_f36iskdrygwzhwe3unqeta4e7q 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_ydt5ggkywf67dip7ur6ekiwcy4 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_mdqj4mwrdmutu3mc7svwp6d2ii of bab/shop/canary.shop.example.com: OPERATOR: instance other.shop.example.com also uses environment "canary", so the store seed sd_mdqj4mwrdmutu3mc7svwp6d2ii made (bucket carlos-bab-shop-canary) is left standing; tear it down by hand if it is not wanted
console: finished seed sd_mdqj4mwrdmutu3mc7svwp6d2ii 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_nzweldrewpoqxpuric4fdgdsmy 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_nzweldrewpoqxpuric4fdgdsmy made (bucket carlos-bab-shop-canary) is left standing; tear it down by hand if it is not wanted
console: finished seed sd_nzweldrewpoqxpuric4fdgdsmy 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_iuabeo3fbzzrlebqjxmpxgm4im 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_zmnl52fltttgddysvsh5rivckm of canary.shop.example.com: deleted 3 replica objects under instances/canary.shop.example.com/
console: finished seed sd_zmnl52fltttgddysvsh5rivckm 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_kpcesiw3fbrp6jjkkzsb7w4n7a of canary.shop.example.com: deleted 3 replica objects under instances/canary.shop.example.com/
console: finished seed sd_kpcesiw3fbrp6jjkkzsb7w4n7a 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_rw6e3j3ocrppjcpa54hd6bk7eu of canary.shop.example.com: deleted 3 replica objects under instances/canary.shop.example.com/
console: finished seed sd_rw6e3j3ocrppjcpa54hd6bk7eu 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_aqrsc6zf5qoq75rmuhi7kmehae of canary.shop.example.com: deleted 3 replica objects under instances/canary.shop.example.com/
console: finished seed sd_aqrsc6zf5qoq75rmuhi7kmehae 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_6p5ypl2ncvtm3cxiuznifnu5gu of canary.shop.example.com: its replica is outside this console's data bucket; not deleting it
console: finished seed sd_6p5ypl2ncvtm3cxiuznifnu5gu 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_pmcaq445fnk3k2mkz5i2lxzkdu 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-20T07:27:20Z
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-20T07:27:20Z
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_meeltdfxg527c2pcp4gdpx3564 of bab/shop/canary.shop.example.com (reserving since 2026-10-20T08:17:20Z)
console: seeds pass: deleted seeds/canary.shop.example.com/sd_meeltdfxg527c2pcp4gdpx3564/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_3wrot6svrfbuzvmgnrfrfx2ppa of bab/shop/uploaded.shop.example.com (uploaded since 2026-10-12T08:27:20Z)
console: seeds pass: abandoned seed sd_dmfav53jiswksxved2l72zcfhy of bab/shop/waiting.shop.example.com (awaiting-upload since 2026-10-12T08:27:20Z)
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_mn32cvvaxabcpft7ir4wfzaibm/snapshot.db
console: seeds pass: deleted seeds/b.shop.example.com/sd_dlldpig5w3ufjqvhyknwij7ose/snapshot.db
console: seeds pass: deleted seeds/c.shop.example.com/sd_7fqz63viq3gsasum6wprp4tw3y/snapshot.db
console: seeds pass: deleted seeds/e.shop.example.com/sd_iv3ie7sdpr7diuglihtvu32dfi/snapshot.db
console: seeds pass: deleted seeds/f.shop.example.com/sd_wqm3geyaohfq47m4ob5n7yxtfu/snapshot.db
console: seeds pass: deleted seeds/g.shop.example.com/sd_bjsnxy2powvtihojq2jlnqppd4/snapshot.db
console: seeds pass: deleted seeds/left.shop.example.com/sd_5mrbjqcwlkadd4tleby7u4oyvy/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_l5au6vm53cr6wqk23wmhooxtvu/snapshot.db
console: finished seed sd_l5au6vm53cr6wqk23wmhooxtvu 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 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: 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: abandoned seed sd_awlvypa4b3ahgbr2hz6rgor4rm of bab/shop/stale.shop.example.com (reserving since 2026-10-20T06:27:21Z)
console: finished seed sd_xpuoeemq4rggctjlc6nxayepzy 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 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_clotnr3yt4o3zus5ec4k7rqaly of bab/shop/stale.shop.example.com (reserving since 2026-10-20T06:27:21Z)
console: seeds pass: deleted seeds/left.shop.example.com/sd_j6b664cckgaqxiblwhoyiglcxe/snapshot.db
console: seeds pass: deleted seeds/right.shop.example.com/sd_6uiooyfxjzuvgffwf4ujcah3au/snapshot.db
console: finished seed sd_zu67o2cyd6ovl5f5xohyhvmmhe 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 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_m2skgkwovb5dl3wviq2qfxxlvi of bab/shop/stale.shop.example.com (reserving since 2026-10-20T06:27:21Z)
console: seeds pass: deleted seeds/left.shop.example.com/sd_kaam7inrnha7b7364kdaxadhtu/snapshot.db
console: seeds pass: deleted seeds/right.shop.example.com/sd_jnvbyvtsop2jf6up5h54uzhy34/snapshot.db
console: finished seed sd_k6423g5wigmopskcoaskocxq5q 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_ebb5zkb2an3p4g7g2m7g5pzywa of bab/shop/stale.shop.example.com (reserving since 2026-10-20T06:27:21Z)
console: seeds pass: delete seeds/left.shop.example.com/sd_zikbuujgmkj2cmtn4vkwkp2xhu/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_zikbuujgmkj2cmtn4vkwkp2xhu/snapshot.db
console: seeds pass: deleted seeds/right.shop.example.com/sd_jkdwrc7jzlbgk33vjnun2ays3a/snapshot.db
console: finished seed sd_5miskshl6hjt7opfx6sbp3ehju 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_pmx35gwqurasokwfddrkmp2s4m/snapshot.db
console: seeds pass: finish seed sd_pmx35gwqurasokwfddrkmp2s4m of canary.shop.example.com: finish seed sd_pmx35gwqurasokwfddrkmp2s4m 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: 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 cyz/blog: (default)
console: backfilled account manifest for cyz (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:44657 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:43409/.well-known/keymail": dial tcp 127.0.0.1:43409: 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.455622287s)
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:43077/api/app/send": dial tcp 127.0.0.1:43077: 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:46281->127.0.0.1:38780: 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:37881/api/app/send": dial tcp 127.0.0.1:37881: 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: 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_missing3545995750/003/absent-registry.db: stat /tmp/TestEnableDoorsFailClosedOnAnUncheckedBoxregistry_missing3545995750/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_missing3545995750/003/absent-registry.db: stat /tmp/TestEnableDoorsFailClosedOnAnUncheckedBoxregistry_missing3545995750/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: 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-20T08:12:34Z
console: api updates bab/km policy: enable refused, not every box applies update settings: fx/bx-1: no heartbeat since 2026-10-20T08:12:34Z
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: CARLOS_SECRETS_PUBKEY is unset, so no region 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 219.313s
? 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 5.964s
ok github.com/carlosframework/platform/internal/dbdoor/dbdoortest 0.009s
ok github.com/carlosframework/platform/internal/dbverify 0.004s
ok github.com/carlosframework/platform/internal/dnsrec 0.004s
ok github.com/carlosframework/platform/internal/docsite 0.005s
ok github.com/carlosframework/platform/internal/domains 2.445s
ok github.com/carlosframework/platform/internal/doorkey 0.006s
ok github.com/carlosframework/platform/internal/economics 0.004s
ok github.com/carlosframework/platform/internal/edge 45.052s
? github.com/carlosframework/platform/internal/edgeproof [no test files]
ok github.com/carlosframework/platform/internal/edgesfile 0.008s
ok github.com/carlosframework/platform/internal/fleetapi 0.133s
ok github.com/carlosframework/platform/internal/gate 1.658s
ok github.com/carlosframework/platform/internal/genselect 0.016s
ok github.com/carlosframework/platform/internal/geo 0.014s
ok github.com/carlosframework/platform/internal/geoip 0.030s
ok github.com/carlosframework/platform/internal/historyreadback 0.162s
ok github.com/carlosframework/platform/internal/host 187.996s
ok github.com/carlosframework/platform/internal/hostactors 5.530s
ok github.com/carlosframework/platform/internal/hostactors/awsmembership 0.017s
ok github.com/carlosframework/platform/internal/hostbox 2.618s
ok github.com/carlosframework/platform/internal/hostclaim 0.574s
ok github.com/carlosframework/platform/internal/hostenv 0.017s
ok github.com/carlosframework/platform/internal/hostevidence 0.017s
ok github.com/carlosframework/platform/internal/hostexec 4.989s
ok github.com/carlosframework/platform/internal/hostfence 0.044s
ok github.com/carlosframework/platform/internal/hostfiles 10.452s
ok github.com/carlosframework/platform/internal/hostfloor 0.017s
ok github.com/carlosframework/platform/internal/hostguard 1.025s
ok github.com/carlosframework/platform/internal/hostops 1.594s
? github.com/carlosframework/platform/internal/hostops/fencerelease [no test files]
ok github.com/carlosframework/platform/internal/hostops/internal/fencerelease 0.017s
ok github.com/carlosframework/platform/internal/hostquarantine 0.017s
ok github.com/carlosframework/platform/internal/hostrelocate 0.474s
ok github.com/carlosframework/platform/internal/hostresolve 0.131s
ok github.com/carlosframework/platform/internal/hostwrite 0.021s
ok github.com/carlosframework/platform/internal/infraview 0.021s
ok github.com/carlosframework/platform/internal/instancectl 5.238s
ok github.com/carlosframework/platform/internal/instanceexec 2.757s
ok github.com/carlosframework/platform/internal/instancefs 0.022s
ok github.com/carlosframework/platform/internal/instancekey 0.018s
ok github.com/carlosframework/platform/internal/instanceupdates 0.029s
ok github.com/carlosframework/platform/internal/layout 1.556s
ok github.com/carlosframework/platform/internal/lbhealth 0.020s
ok github.com/carlosframework/platform/internal/lease 9.910s
ok github.com/carlosframework/platform/internal/lease/leasetest 0.377s
ok github.com/carlosframework/platform/internal/ledger 0.013s
ok github.com/carlosframework/platform/internal/mail 0.176s
ok github.com/carlosframework/platform/internal/maintenance 0.087s
ok github.com/carlosframework/platform/internal/maintenanceexec 5.498s
ok github.com/carlosframework/platform/internal/maintenanceguard 0.076s
ok github.com/carlosframework/platform/internal/metrics 0.004s
ok github.com/carlosframework/platform/internal/moves 21.154s
ok github.com/carlosframework/platform/internal/moves/archive 0.824s
ok github.com/carlosframework/platform/internal/objstore 0.186s
ok github.com/carlosframework/platform/internal/ops 0.181s
ok github.com/carlosframework/platform/internal/park 0.215s
ok github.com/carlosframework/platform/internal/privatefile 0.004s
2026/10/20 08:24:02 provision: listing apps/bab/blog/instances/: list refused — its records are unseen this pass
2026/10/20 08:24:02 provision: listing apps/bab/: listdirs refused — its records are unseen this pass
2026/10/20 08:24:02 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:02 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:02 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:02 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 08:24:02 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 08:24:02 provision: skipping record apps/bac/tito/instances/one.example.com.json: unreadable: read refused
2026/10/20 08:24:02 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/20 08:24:02 provision: an app's records could not be listed: they are skipped
2026/10/20 08:24:02 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 08:24:02 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/20 08:24:02 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/20 08:24:02 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/20 08:24:02 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/20 08:24:02 provision: claim install acme.go.tito.io: provision: claim admission unavailable
2026/10/20 08:24:02 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:02 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 08:24:02 provision: claim install bot.eleven.bac.sidecar.internal: provision: claim admission unavailable
2026/10/20 08:24:02 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 08:24:02 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/20 08:24:02 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/20 08:24:02 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: no sealed config
2026/10/20 08:24:02 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 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/20 08:24:03 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 08:24:03 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 08:24:03 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/20 08:24:03 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 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/20 08:24:03 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 08:24:03 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 08:24:03 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 08:24:03 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/20 08:24:03 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/20 08:24:03 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/20 08:24:03 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/20 08:24:03 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 08:24:03 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 08:24:03 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/20 08:24:03 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 08:24:03 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 08:24:03 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 08:24:03 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 08:24:03 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 08:24:03 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 08:24:03 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route rh.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route rj.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route rl.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route rf.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route rg.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route ri.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route rk.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/20 08:24:03 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/20 08:24:03 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route x.apph.example (app "apph" acct "bac")
2026/10/20 08:24:03 provision: minted instance route x.appa.example (app "appa" acct "bac")
2026/10/20 08:24:03 provision: minted instance route x.appb.example (app "appb" acct "bac")
2026/10/20 08:24:03 provision: minted instance route x.appd.example (app "appd" acct "bac")
2026/10/20 08:24:03 provision: minted instance route x.appe.example (app "appe" acct "bac")
2026/10/20 08:24:03 provision: minted instance route x.appi.example (app "appi" acct "bac")
2026/10/20 08:24:03 provision: minted instance route x.appj.example (app "appj" acct "bac")
2026/10/20 08:24:03 provision: minted instance route x.appc.example (app "appc" acct "bac")
2026/10/20 08:24:03 provision: minted instance route x.appf.example (app "appf" acct "bac")
2026/10/20 08:24:03 provision: minted instance route x.appg.example (app "appg" acct "bac")
2026/10/20 08:24:03 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 08:24:03 provision: minted instance route r0078.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0095.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0011.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0025.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0037.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0100.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0038.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0043.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0086.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0068.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0108.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0044.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0056.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0062.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0127.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0030.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0045.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0048.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0060.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0072.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0128.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0058.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0061.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0074.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0079.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0107.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0000.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0016.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0017.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0036.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0050.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0076.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0088.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0115.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0024.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0087.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0102.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0121.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0124.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0005.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0012.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0055.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0096.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0099.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0113.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0123.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0008.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0075.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0082.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0111.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0112.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0046.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0053.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0007.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0083.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0013.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0028.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0041.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0052.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0110.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0042.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0090.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0093.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0033.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0039.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0047.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0049.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0114.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0014.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0035.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0125.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0034.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0059.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0089.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0022.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0031.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0069.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0105.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0070.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0092.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0101.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0029.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0026.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0027.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0001.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0019.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0081.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0104.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0006.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0009.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0054.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0065.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0066.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0067.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0097.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0118.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0023.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0004.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0018.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0080.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0103.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0119.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0126.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0032.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0071.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0117.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0120.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0051.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0021.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0003.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0020.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0057.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0094.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0122.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0063.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0073.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0085.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0091.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0040.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0077.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0002.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0015.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0098.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0106.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0109.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0129.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0010.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0064.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0084.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:03 provision: minted instance route r0116.go.tito.io (app "tito" acct "bac")
--- FAIL: TestPlan14RootReadCensus (4.59s)
plan14_root_reads_test.go:940: root read census: 60 discrepancies
changed root read internal/host/agent.go:fastConvergeLoop; review class, task, sites and digest
changed root read internal/host/edgesfile.go:edgesFileLoop; review class, task, sites and digest
changed root read internal/host/movespass.go:armMovesPass; review class, task, sites and digest
changed root read internal/lease/leasetest/s3server.go:NewS3Server; review class, task, sites and digest
changed root read internal/moves/archive/archive.go:walk; review class, task, sites and digest
changed root read move.go:mover.roundTrip; review class, task, sites and digest
changed root source envelope .
changed root source envelope internal/cgroup
changed root source envelope internal/console
changed root source envelope internal/host
changed root source envelope internal/layout
changed root source envelope internal/lease
changed root source envelope internal/lease/leasetest
changed root source envelope internal/moves
changed root source envelope internal/moves/archive
changed root source envelope internal/provision
unclassified root read internal/cgroup/hostprocs_linux.go:countProcs file:Lstat@194,file:ReadDir@500
unclassified root read internal/cgroup/hostprocs_linux.go:readProcsFile file:Open@58,file:Stat@398
unclassified root read internal/console/apiinstancemove_offline.go:Server.offlineClaimEvidence file:Read@399
unclassified root read internal/host/movesoffline.go:heldBy registry:HoldOp@72,registry:Status@107,whole:Route@58
unclassified root read internal/host/movesoffline.go:isDir file:Lstat@40
unclassified root read internal/host/movesoffline.go:lexists file:Lstat@41
unclassified root read internal/host/movesoffline.go:moveCfg.flatDBPath registry:DBPath@156,registry:DBPath@87,whole:Route@141,whole:Route@74
unclassified root read internal/host/movesoffline.go:movesWorker.localState file:ReadDir@1126,registry:DBPath@1363,registry:DBPath@1393,whole:Route@140,whole:Route@189,whole:Route@293
unclassified root read internal/host/movesoffline.go:movesWorker.offlineSourceGone whole:Route@236
unclassified root read internal/host/movesoffline.go:movesWorker.offlineSourcePark whole:Route@1150,whole:Route@1700,whole:Route@466,whole:Route@943
unclassified root read internal/host/movesoffline.go:movesWorker.offlineSourceRevert registry:HoldOp@562,whole:Route@549,whole:Route@701
unclassified root read internal/host/movesoffline.go:movesWorker.offlineSourceStop whole:Route@274
unclassified root read internal/host/movesoffline.go:movesWorker.retirePaths file:ReadDir@1688,whole:Route@128,whole:Route@177,whole:Route@417
unclassified root read internal/host/movesoffline.go:movesWorker.sourceReport whole:Route@198,whole:Route@461,whole:Route@520
unclassified root read internal/host/movesoffline_land.go:extractSealed file:Open@181
unclassified root read internal/host/movesoffline_land.go:hexFileSHA256 file:ReadFile@49
unclassified root read internal/host/movesoffline_land.go:landRun.config whole:Route@198
unclassified root read internal/host/movesoffline_land.go:landRun.env file:ReadFile@122,file:ReadFile@720
unclassified root read internal/host/movesoffline_land.go:landRun.envPin whole:Route@699
unclassified root read internal/host/movesoffline_land.go:landRun.nextDue registry:NextDue@34,registry:NextDue@386,whole:Route@36,whole:Route@388
unclassified root read internal/host/movesoffline_land.go:landRun.release whole:Route@368
unclassified root read internal/host/movesoffline_land.go:landRun.replication registry:Replication@38,registry:Replication@430,whole:Route@40,whole:Route@432
unclassified root read internal/host/movesoffline_land.go:landRun.reread whole:Route@246,whole:Route@251,whole:Route@96
unclassified root read internal/host/movesoffline_land.go:landRun.row registry:HoldOp@130,registry:HoldOp@149,registry:HoldOp@236,registry:Status@259,whole:Route@35,whole:Route@397,whole:Route@54
unclassified root read internal/host/movesoffline_land.go:landRun.timers whole:Timer@1051,whole:Timer@1197,whole:Timer@473,whole:Timer@787,whole:Timer@948
unclassified root read internal/host/movesoffline_land.go:landRun.warmPaths registry:DBPath@127,registry:DBPath@148,registry:DBPath@192,whole:Route@114,whole:Route@129,whole:Route@150,whole:Route@194
unclassified root read internal/host/movesoffline_land.go:movesWorker.landReport registry:HoldOp@1755,registry:NextDue@1986,registry:Replication@2000,registry:Status@1796,whole:Route@1742,whole:Route@1757,whole:Route@1798,whole:Route@1824,whole:Route@1941,whole:Route@1988,whole:Route@2002,whole:Route@395,whole:Route@400
unclassified root read internal/host/movesoffline_land.go:movesWorker.offlineTargetOpen registry:HoldOp@1641,registry:HoldOp@1789,registry:HoldOp@417,registry:Status@1356,registry:Status@1676,registry:Status@1778,registry:Status@454,whole:Route@1261,whole:Route@1327,whole:Route@2958,whole:Route@315
unclassified root read internal/host/movesoffline_land.go:movesWorker.offlineTargetRevert registry:HoldOp@1572,registry:HoldOp@289,registry:HoldOp@627,registry:Status@326,registry:Status@616,whole:Route@1493,whole:Route@1559,whole:Route@1965,whole:Route@276,whole:Route@341
unclassified root read internal/host/movesoffline_land.go:nonEmptyOrNotDir file:Lstat@51,file:ReadDir@147
unclassified root read internal/host/movesoffline_seal.go:movesWorker.offlineArchive file:Create@1227,file:Create@741,file:ReadFile@1805
unclassified root read internal/host/movesoffline_seal.go:movesWorker.offlineFilesOf file:ReadDir@349,registry:Host@905,whole:Route@247,whole:Route@287,whole:Route@873
unclassified root read internal/host/movesoffline_seal.go:movesWorker.offlineTakeSeal registry:DBPath@2134,registry:NextDue@11563,registry:NextDue@12475,registry:Replication@11468,registry:Replication@12450,whole:Route@10203,whole:Route@1713,whole:Route@2195,whole:Route@2976,whole:Route@4965,whole:Route@7739,whole:Timer@8890,whole:Timer@8955,whole:Timer@8961,whole:Timer@9220,whole:Timer@9319
unclassified root read internal/host/movesoffline_seal.go:readOwnFile file:Lstat@84,file:Open@319,file:ReadAll@575,file:Stat@407
unclassified root read internal/host/movespass.go:armOffline whole:Route@1930
unclassified root read internal/host/movespass.go:channelVersion registry:App@253,registry:Channel@130,whole:Route@248
unclassified root read internal/layout/plan.go:NestedPlatformNames data-literal@84
unclassified root read internal/lease/tombstone.go:readLock file:ReadAll@417
unclassified root read internal/provision/offline_move.go:OfflineStart file:Open@184
changed legacy declaration internal/host/edgesfile.go:edgesFileLoop
changed legacy declaration internal/lease/leasetest/s3server.go:NewS3Server
changed legacy declaration internal/moves/archive/archive.go:walk
changed legacy declaration move.go:mover.roundTrip
changed reclassified declaration internal/host/agent.go:fastConvergeLoop
--- FAIL: TestPlan9B8RecordWriteCensus (0.55s)
plan9_b8_census_test.go:372: record-write census rejected 13 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/layout/extras.go:var platformNames: source differs from the reviewed digest
changed site internal/provision/provision.go:updateRecordSeeding: source differs from the reviewed digest
changed site move.go:moveMain: source differs from the reviewed digest
unlisted site internal/console/apiinstancemove_offline.go:Server.offlineApply [key:SetRecordMove]: review it, classify it, and update its explicit inventory entry
unlisted site internal/console/apiinstancemove_offline.go:Server.offlineTakeLock [sel:Put]: review it, classify it, and update its explicit inventory entry
unlisted site internal/host/movesoffline.go:putOfflineCreateOnly [sel:Put]: review it, classify it, and update its explicit inventory entry
unlisted site internal/host/movesoffline.go:writeOfflineReport [sel:PutReplace]: review it, classify it, and update its explicit inventory entry
unlisted site internal/host/movesoffline_land.go:movesWorker.offlineLand [key:SetRecordMove]: review it, classify it, and update its explicit inventory entry
unlisted site internal/host/movesoffline_seal.go:movesWorker.offlineArchive [sel:Put]: review it, classify it, and update its explicit inventory entry
unlisted site internal/host/movesoffline_seal.go:movesWorker.offlineKeepStop [key:SetRecordMove]: review it, classify it, and update its explicit inventory entry
unlisted site internal/host/movesoffline_seal.go:movesWorker.offlineTakeSeal [sel:Put]: review it, classify it, and update its explicit inventory entry
unlisted site internal/moves/offline.go:var OfflineManifest [lit:instances]: review it, classify it, and update its explicit inventory entry
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 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/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted instance route console.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted service route svc.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted instance route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted instance route shared.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 08:24:34 provision: converged acme.go.tito.io channel edge -> canary/rehearsal
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: empty channel
2026/10/20 08:24:34 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: converged acme.go.tito.io environment "" -> "staging"
2026/10/20 08:24:34 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: converged acme.go.tito.io steering "" -> "latency"
2026/10/20 08:24:34 provision: converged acme.go.tito.io steering "latency" -> ""
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: converged acme.go.tito.io hibernate false -> true
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: converged acme.go.tito.io hibernate true -> false (replication "daily" cleared: only a hibernating route's rung is read)
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: converged acme.go.tito.io status-named false -> true
2026/10/20 08:24:34 provision: converged acme.go.tito.io status-named true -> false
2026/10/20 08:24:34 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:34 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/20 08:24:34 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/20 08:24:34 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/20 08:24:35 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 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/20 08:24:35 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/20 08:24:35 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/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: skipping accounts/bac/account.json: malformed account manifest: invalid character 'o' in literal null (expecting 'u')
2026/10/20 08:24:35 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: manifest bac/tito: read failed: provision: manifest bac/tito: invalid character 'o' in literal null (expecting 'u')
2026/10/20 08:24:35 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/20 08:24:35 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/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 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/20 08:24:35 provision: not removing acme$evil.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 08:24:35 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/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 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/20 08:24:35 provision: not removing bad-service.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 08:24:35 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/20 08:24:35 provision: not removing no-channel.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 08:24:35 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/20 08:24:35 provision: removed retired instance route ghost.go.tito.io (record gone)
2026/10/20 08:24:35 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/20 08:24:35 provision: minted instance route dup.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 08:24:35 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/20 08:24:35 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 08:24:35 provision: removed retired static route site.go.tito.io (app in the trash)
2026/10/20 08:24:35 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/20 08:24:35 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 08:24:35 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/20 08:24:35 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/20 08:24:35 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/20 08:24:35 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 08:24:35 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 08:24:35 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 08:24:35 provision: converged acme.go.tito.io channel canary/rehearsal -> edge
2026/10/20 08:24:35 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/20 08:24:35 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 08:24:35 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/20 08:24:35 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/20 08:24:35 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/20 08:24:35 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/20 08:24:35 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/20 08:24:35 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/20 08:24:35 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 08:24:35 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 08:24:35 provision: dry-run: would mint instance route acme.go.tito.io (app "tito" acct "bac" channel "stable")
2026/10/20 08:24:35 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/20 08:24:35 provision: dry-run: would converge adopt.go.tito.io channel stable -> edge
2026/10/20 08:24:35 provision: dry-run: would converge adopt.go.tito.io environment "" -> "staging"
2026/10/20 08:24:35 provision: dry-run: would converge owned.go.tito.io channel stable -> edge
2026/10/20 08:24:35 provision: dry-run: would converge owned.go.tito.io environment "" -> "staging"
2026/10/20 08:24:35 provision: dry-run: would converge owned.go.tito.io hibernate false -> true
2026/10/20 08:24:35 provision: dry-run: would converge owned.go.tito.io seed
2026/10/20 08:24:35 provision: dry-run: would remove retired instance route gone.go.tito.io (record gone)
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: adopted existing route adopt.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 08:24:35 provision: converged adopt.go.tito.io channel stable -> edge
2026/10/20 08:24:35 provision: converged adopt.go.tito.io environment "" -> "staging"
2026/10/20 08:24:35 provision: converged owned.go.tito.io channel stable -> edge
2026/10/20 08:24:35 provision: converged owned.go.tito.io environment "" -> "staging"
2026/10/20 08:24:35 provision: converged owned.go.tito.io hibernate false -> true
2026/10/20 08:24:35 provision: removed retired instance route gone.go.tito.io (record gone)
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: adopted existing route story.carlosframework.com (app "story" acct "bad") — this record now owns its channel and environment
2026/10/20 08:24:35 provision: story.carlosframework.com exists but is not the route this record describes (kind "instance"/"static") — leaving it alone
2026/10/20 08:24:35 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted service route pub.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted service route pubs.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted service route loop.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted service route named.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted service route priv.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted instance route unit.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted instance route exec.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted static route pisite.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: removed retired static route site.go.tito.io (record gone)
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: converged acme.go.tito.io replicas "ie,uk" -> "uk"
2026/10/20 08:24:35 provision: converged acme.go.tito.io replicas "uk" -> ""
2026/10/20 08:24:35 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: converged acme-uk.go.tito.io replica mark true -> false
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 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/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:35 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/20 08:24:35 provision: router.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/20 08:24:35 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/20 08:24:35 provision: converged acme.go.tito.io channel stable -> edge
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/20 08:24:35 provision: not removing acme.go.tito.io (record gone): participant of a running operation
2026/10/20 08:24:35 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/20 08:24:35 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/20 08:24:35 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/20 08:24:35 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/20 08:24:35 provision: acme.go.tito.io: held restoring by rb_other, not by mv_acme; leaving it
2026/10/20 08:24:35 provision: acme.go.tito.io: the row is not this pass's (app "other" acct ""); not holding it for mv_acme
2026/10/20 08:24:35 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/20 08:24:35 provision: dry-run: would mint instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac" channel "stable")
2026/10/20 08:24:35 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/20 08:24:36 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/20 08:24:36 provision: minted instance route acme.example.com (app "shop" acct "bac")
2026/10/20 08:24:36 provision: minted instance route plain.example.com (app "shop" acct "bac")
2026/10/20 08:24:36 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 08:24:36 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/20 08:24:36 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 08:24:36 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/20 08:24:36 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 08:24:36 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/20 08:24:36 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 08:24:36 provision: listing apps/bac/shop/instances/: list refused — its records are unseen this pass
2026/10/20 08:24:36 provision: a.shop.example.com: swapped for import sd_gd3awv6afbmj7fejmp2thx4oze (the original route is journaled)
2026/10/20 08:24:36 provision: a.shop.example.com: import sd_gd3awv6afbmj7fejmp2thx4oze committed: its gate is cleared and its journal row dropped
2026/10/20 08:24:36 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/20 08:24:36 provision: a.shop.example.com: import sd_2y5ehe4ccpbdpepxiiymrjx57a rolled back to its original route
2026/10/20 08:24:36 provision: a.shop.example.com: import sd_2y5ehe4ccpbdpepxiiymrjx57a: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 08:24:36 provision: a.shop.example.com: import sd_2y5ehe4ccpbdpepxiiymrjx57a is cleaned up and its journal row retired
2026/10/20 08:24:36 provision: a.shop.example.com: import sd_j7viuxfsb72fvcl4hfmoijsrou rolled back to its original route
2026/10/20 08:24:36 provision: a.shop.example.com: import sd_j7viuxfsb72fvcl4hfmoijsrou: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 08:24:36 provision: a.shop.example.com: import sd_j7viuxfsb72fvcl4hfmoijsrou is cleaned up and its journal row retired
2026/10/20 08:24:36 provision: dry-run: would redo a.shop.example.com's swap record CAS for import sd_adnmjmqbamruulu4ibhiuefv4m
2026/10/20 08:24:36 provision: dry-run: would clear a.shop.example.com's import gate
2026/10/20 08:24:36 provision: dry-run: would converge a.shop.example.com seed source
2026/10/20 08:24:36 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/20 08:24:36 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/20 08:24:36 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/20 08:24:36 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/20 08:24:36 provision: a.shop.example.com: import sd_7d5btbt4rodxc46a5si4cwm6fq cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 08:24:36 provision: a.shop.example.com: import sd_jlukoqtx6sv5pea6yglqs7ohda cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 08:24:36 provision: a.shop.example.com: import sd_4mk7bt4de6bnpzn3nliwyw6w2u is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 08:24:36 provision: a.shop.example.com: import sd_rc5iqkb2iozbotfi5d24dhpv4y is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 08:24:36 provision: a.shop.example.com: import sd_3mn7cw43rn3legjfvmmefoml74 is journaled, but this box cannot act on imports; its row is left alone
2026/10/20 08:24:36 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/20 08:24:36 provision: b.shop.example.com: import sd_zy7cwocxwyqasfnn36nirsw4h4 left alone this pass: the import journal could not be read
2026/10/20 08:24:36 provision: c.shop.example.com: import sd_cp53to7yg5eopfyv37uxes6o3q left alone this pass: the import journal could not be read
2026/10/20 08:24:36 provision: a.shop.example.com: import sd_mhvl7so356jnoftc3s3b2u7dbe committed: its gate is cleared and its journal row dropped
2026/10/20 08:24:36 provision: a.shop.example.com: not converging import sd_lhw2c4ijivgmxmucgalvtlbliy: it is swapped but not committed, and the row on this box has no import gate
2026/10/20 08:24:36 provision: a.shop.example.com: not converging import sd_xmxbc6yrs45knbhphkavvnnmc4: it is swapped but not committed, and the row on this box has no import gate
2026/10/20 08:24:36 provision: a.shop.example.com: not converging import sd_4osj7dryid5omhtfhr4tdmwqaa: it is placed but not committed, and the row on this box has no import gate
2026/10/20 08:24:36 provision: a.shop.example.com: not converging import sd_n7qv64y6hs5avktnojksnvutoa: it is placed but not committed, and the row on this box has no import gate
2026/10/20 08:24:37 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/20 08:24:37 provision: converge seed source on a.shop.example.com: constraint failed: seed_source is read-only here (1811)
2026/10/20 08:24:37 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/20 08:24:37 provision: a.shop.example.com: import sd_44usiutiozrfc3jk5ubndosrqi committed: its gate is cleared and its journal row dropped
2026/10/20 08:24:37 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/20 08:24:37 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:37 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/20 08:24:37 provision: acme.go.tito.io: not minting a seeded instance: this box does not mint nested (<nil>)
2026/10/20 08:24:37 provision: acme.go.tito.io: not minting a seeded instance: claim control is on for this box
2026/10/20 08:24:37 provision: acme.go.tito.io: aborted seed sd_efb25acoytngo54iukhxxxasou: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/20 08:24:37 provision: acme.go.tito.io: aborted seed sd_efb25acoytngo54iukhxxxasou rolled back (no box had swapped it)
2026/10/20 08:24:37 provision: acme.go.tito.io: not minting a seeded instance: its record does not describe a hibernating instance
2026/10/20 08:24:37 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:37 provision: removed instance route acme.go.tito.io (its seed sd_jjlj7npoj7epym4mnyjmse6nre was aborted); the next pass rolls it back
2026/10/20 08:24:37 provision: acme.go.tito.io: aborted seed sd_jjlj7npoj7epym4mnyjmse6nre: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/20 08:24:37 provision: acme.go.tito.io: aborted seed sd_jjlj7npoj7epym4mnyjmse6nre rolled back (no box had swapped it)
2026/10/20 08:24:37 provision: acme.go.tito.io: aborted seed sd_vdnkvqiljbz4mgiejjannm7xte has a row this pass may not remove; leaving the seed aborted
2026/10/20 08:24:37 provision: acme.go.tito.io: aborted seed sd_w5h3ci3bmxlqgftp44um5lmad4 rolled back (no box had swapped it)
2026/10/20 08:24:37 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:37 provision: removed instance route acme.go.tito.io (its seed sd_r5vis7xu7hn5k6hezd25siv6xy was aborted); the next pass rolls it back
2026/10/20 08:24:37 provision: acme.go.tito.io: aborted seed sd_r5vis7xu7hn5k6hezd25siv6xy has no route on this box: its local data is removed
2026/10/20 08:24:37 provision: acme.go.tito.io: aborted seed sd_r5vis7xu7hn5k6hezd25siv6xy rolled back (no box had swapped it)
2026/10/20 08:24:37 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_fz2hinnvjd5g2gjifwkhuosp34 (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_fz2hinnvjd5g2gjifwkhuosp34 rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_fz2hinnvjd5g2gjifwkhuosp34 is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_3e5ft22y47tnz7hyvlfbxoe5qi (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_3e5ft22y47tnz7hyvlfbxoe5qi rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_3e5ft22y47tnz7hyvlfbxoe5qi is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_g7qh626iyyr7bcjokxewsavnei (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_g7qh626iyyr7bcjokxewsavnei rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_g7qh626iyyr7bcjokxewsavnei: the host's replica is left alone: its record no longer names this seed
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_g7qh626iyyr7bcjokxewsavnei is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_awoshnobqd6qxlj3t5e5mho7s4 (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_awoshnobqd6qxlj3t5e5mho7s4 rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_awoshnobqd6qxlj3t5e5mho7s4 rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_awoshnobqd6qxlj3t5e5mho7s4 is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_xs4kfdaggipvwnbwvattetq4ea (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_xs4kfdaggipvwnbwvattetq4ea rollback deferred: the host is not fenced and stopped yet (stop unproven)
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_kylylrgelhbcitzyyfwf6snreq (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_kylylrgelhbcitzyyfwf6snreq is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_mizgnmjoj6efbk2qer2a3px6ry (the original route is journaled)
2026/10/20 08:24:37 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_mizgnmjoj6efbk2qer2a3px6ry left alone this pass: its record could not be read
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_kvyzptbv6x2d6snr2y5ckgamgm (the original route is journaled)
2026/10/20 08:24:37 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: read failed: connection reset
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_kvyzptbv6x2d6snr2y5ckgamgm left alone this pass: its record could not be read
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_frl2h52ftm44bopeswnpbyjypi (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_frl2h52ftm44bopeswnpbyjypi: close the import gate: constraint failed: injected (1811)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_frl2h52ftm44bopeswnpbyjypi rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_frl2h52ftm44bopeswnpbyjypi is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_rjo2gfulswqk2ntussnfgz5eku (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_rjo2gfulswqk2ntussnfgz5eku: close the import gate: constraint failed: injected (1811)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_rjo2gfulswqk2ntussnfgz5eku rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_rjo2gfulswqk2ntussnfgz5eku is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_dstsiokbyy4fwxrmef6fksmvca (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_dstsiokbyy4fwxrmef6fksmvca rollback deferred: the host is not fenced and stopped yet (injected failure at fence)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_dstsiokbyy4fwxrmef6fksmvca rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_dstsiokbyy4fwxrmef6fksmvca is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_ydnlv7udqqoszpbxakjwru36ui (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_ydnlv7udqqoszpbxakjwru36ui rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_ydnlv7udqqoszpbxakjwru36ui is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_3y5w5ulzjxfpojji2xfd3ox32q (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_3y5w5ulzjxfpojji2xfd3ox32q: retire its instance key: injected failure at retire-key
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_3y5w5ulzjxfpojji2xfd3ox32q rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_3y5w5ulzjxfpojji2xfd3ox32q is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_mkdgcntgmaqne7gzis2clyavdu (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_mkdgcntgmaqne7gzis2clyavdu rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_mkdgcntgmaqne7gzis2clyavdu is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_xwqm3aanndarzxxtyde3fowmsi (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_xwqm3aanndarzxxtyde3fowmsi: remove its local data: injected failure at remove-local
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_xwqm3aanndarzxxtyde3fowmsi rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_xwqm3aanndarzxxtyde3fowmsi is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_znjmfa5icb5qthgiiugmegjeem (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_znjmfa5icb5qthgiiugmegjeem rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_znjmfa5icb5qthgiiugmegjeem is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_ohevmsrngytsktklmts67l4gbe (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_ohevmsrngytsktklmts67l4gbe: remove its local data: injected failure at remove-local-done
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_ohevmsrngytsktklmts67l4gbe rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_ohevmsrngytsktklmts67l4gbe is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_q2pgsnf446fzmefrr4xbvj64rq (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_q2pgsnf446fzmefrr4xbvj64rq rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_q2pgsnf446fzmefrr4xbvj64rq is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_36kc2sbsi7lg63y4nkwc4okp2m (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_36kc2sbsi7lg63y4nkwc4okp2m: restore the original route: constraint failed: injected (1811)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_36kc2sbsi7lg63y4nkwc4okp2m rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_36kc2sbsi7lg63y4nkwc4okp2m is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_z4gnrvhpybwxuqkiip5a5bce6e (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_z4gnrvhpybwxuqkiip5a5bce6e: restore the original route: constraint failed: injected (1811)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_z4gnrvhpybwxuqkiip5a5bce6e rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_z4gnrvhpybwxuqkiip5a5bce6e is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_hcchgoyyhhniigrda7v5vyv5iy (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_hcchgoyyhhniigrda7v5vyv5iy is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_xyzyjziis7pda4yaj25vxuwnbu (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_xyzyjziis7pda4yaj25vxuwnbu rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_xyzyjziis7pda4yaj25vxuwnbu: delete its snapshot: injected failure at delete-snapshot
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_xyzyjziis7pda4yaj25vxuwnbu is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_ldtf4ncqdv4n5mxonlh6nmn55a (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_ldtf4ncqdv4n5mxonlh6nmn55a rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_ldtf4ncqdv4n5mxonlh6nmn55a is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_4z2bboe6q6ozyrxh224lvgfedu (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_4z2bboe6q6ozyrxh224lvgfedu rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_4z2bboe6q6ozyrxh224lvgfedu: delete the host's replica: injected failure at delete-replica
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_4z2bboe6q6ozyrxh224lvgfedu is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_3b2imrpip7rkh5a65k3ilwv5bu (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_3b2imrpip7rkh5a65k3ilwv5bu rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_3b2imrpip7rkh5a65k3ilwv5bu is cleaned up and its journal row retired
2026/10/20 08:24:37 provision: a.shop.example.com: swapped for import sd_6otg6st6oyit6bd7t2rdagbjgu (the original route is journaled)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_6otg6st6oyit6bd7t2rdagbjgu rolled back to its original route
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_6otg6st6oyit6bd7t2rdagbjgu: retire its journal row: constraint failed: injected (1811)
2026/10/20 08:24:37 provision: a.shop.example.com: import sd_6otg6st6oyit6bd7t2rdagbjgu is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_bzvdgl77lml6a5xredl62hfl3q (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_bzvdgl77lml6a5xredl62hfl3q rolled back to its original route
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_bzvdgl77lml6a5xredl62hfl3q: retire its journal row: constraint failed: injected (1811)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_bzvdgl77lml6a5xredl62hfl3q is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_bbth5yhnqip3qbuidbvs2gt3de (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_bbth5yhnqip3qbuidbvs2gt3de rolled back to its original route
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_bbth5yhnqip3qbuidbvs2gt3de is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: a.shop.example.com: mark import sd_bbth5yhnqip3qbuidbvs2gt3de rolled back: injected failure at cas
2026/10/20 08:24:38 provision: a.shop.example.com: aborted seed sd_bbth5yhnqip3qbuidbvs2gt3de rolled back (no box had swapped it)
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_4oyues6kykpmhv47zl32gwjc3u (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_4oyues6kykpmhv47zl32gwjc3u rolled back to its original route
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_4oyues6kykpmhv47zl32gwjc3u is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: a.shop.example.com: aborted seed sd_4oyues6kykpmhv47zl32gwjc3u rolled back (no box had swapped it)
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_dzhysnoos2f3de7wf2vqtowmoq (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_dzhysnoos2f3de7wf2vqtowmoq rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_dzhysnoos2f3de7wf2vqtowmoq rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_dzhysnoos2f3de7wf2vqtowmoq rolled back to its original route
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_dzhysnoos2f3de7wf2vqtowmoq is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_y2mvtnqvvhji7cwse6uzqcjbne (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_y2mvtnqvvhji7cwse6uzqcjbne rolled back to its original route
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_y2mvtnqvvhji7cwse6uzqcjbne is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_kpakougzpn2rgopbbx2eoqofby (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_kpakougzpn2rgopbbx2eoqofby rolled back to its original route
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_kpakougzpn2rgopbbx2eoqofby is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_3qtpap2skgbx6un2a4bihppfoy (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_3qtpap2skgbx6un2a4bihppfoy rolled back to its original route
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_3qtpap2skgbx6un2a4bihppfoy is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_gtxagwlhtojohw5yg66bnmjnoa (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_gtxagwlhtojohw5yg66bnmjnoa rolled back to its original route
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_gtxagwlhtojohw5yg66bnmjnoa is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_ta3zwbdcbhekrh2kgarudfyx7m (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_ta3zwbdcbhekrh2kgarudfyx7m rolled back to its original route
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_ta3zwbdcbhekrh2kgarudfyx7m is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_patzq2vbf67hiop2gqx4kuc3ci (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_patzq2vbf67hiop2gqx4kuc3ci rolled back to its original route
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_patzq2vbf67hiop2gqx4kuc3ci is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_43dis6usua2lcbjjqgz57brn3y (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_43dis6usua2lcbjjqgz57brn3y rolled back to its original route
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_43dis6usua2lcbjjqgz57brn3y is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_op53fg3mj2suy6dp3luzinosye (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_op53fg3mj2suy6dp3luzinosye has no route on this box: its local data is removed and no route is put back
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_op53fg3mj2suy6dp3luzinosye is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_libfsm4mzyruxa37ioowenyoxi (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_x5acq2mx4fmh7vtbhcdwp2ntcm (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_cdhirztflis7gwbk67i7mrm7re (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_cdhirztflis7gwbk67i7mrm7re cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_dr7x3pqkicmbxsn3piosppbgqe (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_dr7x3pqkicmbxsn3piosppbgqe is not rolled back: the route changed under the fence, so nothing there is touched
2026/10/20 08:24:38 provision: a.shop.example.com: import "../not-a-seed" names no snapshot and no replica; only its journal row is cleaned up
2026/10/20 08:24:38 provision: a.shop.example.com: import ../not-a-seed is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_kxvsuvqn24py4wzxwfbiirfnge (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_v2e3rxnrexmabaye53e4xppu6a (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_kyfn2vfjr2lbekqix6hkeylkhy (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_lvesjgr3jbfcnd6jt3fskj5qo4 (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_f6th7s3utnohmwvhkvupp4mnie (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_f6th7s3utnohmwvhkvupp4mnie rollback deferred: the host is not fenced and stopped yet (stop evidence unreadable)
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_doeaupsjkunvd4gpma7cxz7mrm (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_doeaupsjkunvd4gpma7cxz7mrm has no route on this box: its local data is removed and no route is put back
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_doeaupsjkunvd4gpma7cxz7mrm is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_atsuowcmvetyg2f5u62y2of4x4 (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_atsuowcmvetyg2f5u62y2of4x4: remove its local data: injected failure at remove-local
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_atsuowcmvetyg2f5u62y2of4x4 is not rolled back: the route at the host is not the import's, so nothing there is touched
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_aa4gz34u3tfgjqesruco5vsgj4 (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_aa4gz34u3tfgjqesruco5vsgj4: a route appeared at the host, so its local database is left and the rollback waits
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_cdlotaqsap77ekm5h7ihn2ac7u (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_cdlotaqsap77ekm5h7ihn2ac7u rollback deferred: no fence generation: registry busy
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_esuvwmxwx7o6dvh744db67j22m (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_esuvwmxwx7o6dvh744db67j22m rollback deferred: no fence generation: the generation source answered 0
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_ie6g2wqlkmlilwklbdcxw4oiba (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_5seu6i3mqj7v2x7q6qrzwnxwsi (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_wde2zxwjybg42hb73psjziefoy (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import deferred: this box cannot read the instance's env file
2026/10/20 08:24:38 provision: a.shop.example.com: import deferred: the instance's env file could not be read: a symlink
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_iv46krtdoqfps634si2nwpbj6i (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_iv46krtdoqfps634si2nwpbj6i rolled back to its original route
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_iv46krtdoqfps634si2nwpbj6i is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_a6ltgmphqkibjhvjo5dt3um424 (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_a6ltgmphqkibjhvjo5dt3um424 rolled back to its original route
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_a6ltgmphqkibjhvjo5dt3um424 is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_l7avxnv7n6e5gvxj2e345khrdi (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_l7avxnv7n6e5gvxj2e345khrdi rolled back to its original route
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_l7avxnv7n6e5gvxj2e345khrdi is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_wvoq3cmpaaimwn4ofzlieqqgjy (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_wvoq3cmpaaimwn4ofzlieqqgjy: retire its instance key: the env file is a symlink
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_wvoq3cmpaaimwn4ofzlieqqgjy rolled back to its original route
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_wvoq3cmpaaimwn4ofzlieqqgjy is cleaned up and its journal row retired
2026/10/20 08:24:38 provision: a.shop.example.com: swapped for import sd_myxnjtjhnrthkvxfm6nabje75a (the original route is journaled)
2026/10/20 08:24:38 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/20 08:24:38 provision: a.shop.example.com: swapped for import sd_gkq67yse47cwp5z37tkkrvavgm (the original route is journaled)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_kmgebhpl6oesmisfyavu3edrpy refused: there is no route at a.shop.example.com to replace
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_ed7jv5a3a6y33sshkfp3are3j4 refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_ocebjfkkiziu3ydvgelxivufcq refused: the route's address is 127.0.0.1:8401,127.0.0.1:8402, not 127.0.0.1:8401
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_ezxalwpzuoufh4r75db2xhtfge refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_spnsg64xgpawx3weefjqdmkdou refused: the route belongs to app other
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_d2p4u6j7nwmwdpjtbjsdnndfze refused: the route is filed under another account
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_aatkszdtnnguouei5ctfk2xigy refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_z3472igz32iwow4s4o5zyci2wy refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_4rl57fnag5lqrcmi74w2xpc5te refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_hniqmhdx7xjbjb7ybsnu6ptf6m refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_3vlopzlsh2phb7amsoqfxvzqzu refused: the route is not an address route this import can take over (socket)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_lde2p3vemegtxpsngq6on2no6e refused: the route is not an address route this import can take over (no address)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_ln6zi4dufkqivgoufzccm6mfti refused: the route is not an address route this import can take over (provisioned)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_4m2qpgxm2l3vrxh4eulzjvgdhy refused: the route is not an address route this import can take over (kind static)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_3bnn3i2r5sncmuwekemk3imaze refused: the route is not an address route this import can take over (backing)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_i2cgy6mhkunuqzpjevqdqja5gu refused: the route is not an address route this import can take over (tunnel)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_cf3u3n25l3dq5zf6rekuwp2at4 refused: the route is not an address route this import can take over (caps)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_zahamyihn7lgewuykvxksmeshi refused: the route is not an address route this import can take over (platform)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_rld6hmnw5lrrfhh62qy2sph6n4 refused: the route is not an address route this import can take over (canary)
2026/10/20 08:24:38 provision: a.shop.example.com: import sd_6lphwo3vcmvbbagqtybcidiahe refused: the route is not an address route this import can take over (kind sidecar)
2026/10/20 08:24:39 provision: a.shop.example.com: import sd_cqdiznr7wcfw2fyrtiqc7lihxy refused: the route is not an address route this import can take over (region)
2026/10/20 08:24:39 provision: a.shop.example.com: import sd_mrzwkjqxyqgxut6sgnp7jkiocu refused: the route is not an address route this import can take over (fleet_box)
2026/10/20 08:24:39 provision: a.shop.example.com: import sd_vo4jmuonp2b2jsqurzwq7j54ay refused: the route is not an address route this import can take over (hibernate)
2026/10/20 08:24:39 provision: a.shop.example.com: import sd_r7culjkooxwpy6l3opfffhvp4u refused: the route is not an address route this import can take over (claim_owner)
2026/10/20 08:24:39 provision: a.shop.example.com: import sd_6upwcugmq4sunmmhmkxzsyhywi refused: this box does not run instances nested
2026/10/20 08:24:39 provision: a.shop.example.com: import sd_rh3w6frjxw67z4fibowswxvjay refused: this box does not run instances nested
2026/10/20 08:24:39 provision: a.shop.example.com: import sd_3ya3tmyuz6o3w5e2tpw77xjf74 refused: claim control is on for this box
2026/10/20 08:24:39 provision: a.shop.example.com: swapped for import sd_6pde4a44lnbpgf5pp7lsvgqwtu (the original route is journaled)
2026/10/20 08:24:39 provision: a.shop.example.com: swapped for import sd_7sgh2chv23ot7u4ogzayxbn2wu (the original route is journaled)
2026/10/20 08:24:39 provision: a.shop.example.com: import deferred: the legacy route assignments could not be read: store down
2026/10/20 08:24:39 provision: a.shop.example.com: import deferred: this box cannot read the legacy route assignments
2026/10/20 08:24:39 provision: a.shop.example.com: not swapping for import sd_b3hzybv6jmy6vdl4mrtc5ybvum: its verify hash is not a sha256
2026/10/20 08:24:39 provision: a.shop.example.com: not swapping for import sd_xbrjsjpquxlfnao37kkwexmn3q: its verify hash is not a sha256
2026/10/20 08:24:39 provision: a.shop.example.com: not swapping for import sd_2tv2zrgcer7u37c75cvjvkiosu: its verify hash is not a sha256
2026/10/20 08:24:39 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/20 08:24:39 provision: A.shop.example.com/..: not swapping for import sd_5lxph6btv5lbmbn7c5c2ixjcni: its host or seed id is malformed (seeds: not a host)
2026/10/20 08:24:39 provision: a.shop.example.com: not swapping for import sd_2ccqxv6wojt4tpyewrzb5zfwoi: its record does not describe a nested, hibernating instance
2026/10/20 08:24:39 provision: a.shop.example.com: not swapping for import sd_pgf7accnhrhs3tttbzecyqwfhq: its record does not describe a nested, hibernating instance
2026/10/20 08:24:39 provision: a.shop.example.com: not swapping for import sd_of7lj6h4xk5zmnrptznpq5z3ci: its record does not describe a nested, hibernating instance
2026/10/20 08:24:39 provision: a.shop.example.com: not swapping for import sd_w4g2e4bzk7chvoz7es7pxjkhca: its record does not describe a nested, hibernating instance
2026/10/20 08:24:39 provision: a.shop.example.com: import deferred: the box's layout intent could not be read: store down
2026/10/20 08:24:39 provision: a.shop.example.com: swapped for import sd_jh3zk5575y2aam5mgjgkb27hjy (the original route is journaled)
2026/10/20 08:24:39 provision: a.shop.example.com: import deferred: the box's nested probe did not answer: ready probe timed out
2026/10/20 08:24:39 provision: a.shop.example.com: swapped for import sd_6nzml36sigexi4jvkanduatgci (the original route is journaled)
2026/10/20 08:24:39 provision: a.shop.example.com: swapped for import sd_ktxv6db7qkbbso4h23v2ro4gbi (the original route is journaled)
2026/10/20 08:24:39 provision: a.shop.example.com: import deferred: the route is held by operation op_1
2026/10/20 08:24:39 provision: dry-run: would consider swapping a.shop.example.com for import sd_gdl62nb3brs6tsvne7xszrfux4
2026/10/20 08:24:39 provision: a.shop.example.com: import sd_qpyzq7e3nqebvj7vmyk6s64y5i rolled back to its original route
2026/10/20 08:24:39 provision: a.shop.example.com: import sd_qpyzq7e3nqebvj7vmyk6s64y5i: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/20 08:24:39 provision: a.shop.example.com: import sd_qpyzq7e3nqebvj7vmyk6s64y5i is cleaned up and its journal row retired
2026/10/20 08:24:39 provision: a.shop.example.com: import sd_xfms25z2yotu3fys5g5kr7m3ya left alone: the import journal holds seed sd_2ccz7i4sbec2qknwfl5hxogeny at swapped
2026/10/20 08:24:39 provision: a.shop.example.com: not minting import sd_gddwz3etv54yqt3lfxgvvsjgeq: it is swapped but not committed, and only its swap makes its row
2026/10/20 08:24:39 provision: a.shop.example.com: not minting import sd_zpav24uhbcsbye6grf2yt2gfp4: it is placed but not committed, and only its swap makes its row
2026/10/20 08:24:39 provision: a.shop.example.com: swapped for import sd_qis7xz4epai275j4dujd3cwajy (the original route is journaled)
2026/10/20 08:24:39 provision: a.shop.example.com: not minting import sd_qis7xz4epai275j4dujd3cwajy: it is swapped but not committed, and only its swap makes its row
2026/10/20 08:24:39 provision: a.shop.example.com: not minting import sd_qis7xz4epai275j4dujd3cwajy: it is placed but not committed, and only its swap makes its row
2026/10/20 08:24:39 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/20 08:24:39 provision: removed retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/20 08:24:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 08:24:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 08:24:39 provision: converged sidecar bot.eleven.bac.sidecar.internal args ["sidecar","run"] -> ["worker","run"]
2026/10/20 08:24:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 08:24:39 provision: converged sidecar bot.eleven.bac.sidecar.internal ceilings 300/3600 -> 60/120
2026/10/20 08:24:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 08:24:39 provision: converged sidecar bot.eleven.bac.sidecar.internal channel stable -> canary/eleven
2026/10/20 08:24:39 provision: converged sidecar bot.eleven.bac.sidecar.internal environment "other" -> "relay"
2026/10/20 08:24:39 provision: converged sidecar bot.eleven.bac.sidecar.internal hibernate true -> false
2026/10/20 08:24:39 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: read failed: failStore: reads disabled under apps/bac/eleven/sidecars/
2026/10/20 08:24:39 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: malformed: invalid character 'n' looking for beginning of object key string
2026/10/20 08:24:39 provision: not removing sidecar bot.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/20 08:24:39 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: empty channel
2026/10/20 08:24:39 provision: skipping sidecar record apps/bac/eleven/sidecars/held.json: empty channel
2026/10/20 08:24:39 provision: not removing sidecar held.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/20 08:24:39 provision: removed retired sidecar route old.eleven.bac.sidecar.internal (record gone)
2026/10/20 08:24:39 provision: bac/eleven has sidecar records but no sidecars manifest — not minting
2026/10/20 08:24:39 provision: bac/eleven is in the trash — not minting sidecar routes for it
2026/10/20 08:24:39 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/20 08:24:39 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/20 08:24:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 08:24:39 provision: minted sidecar route hub.relay.bac.sidecar.internal (app "relay" acct "bac" args ["relay"])
2026/10/20 08:24:39 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/20 08:24:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 08:24:39 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/20 08:24:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 08:24:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 08:24:39 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/20 08:24:39 provision: removed retired sidecar route bot.eleven.bac.sidecar.internal (record gone)
2026/10/20 08:24:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 08:24:39 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/20 08:24:39 provision: skipping sidecar record apps/bac/relay/sidecars/hub.json: read failed: failStore: reads disabled under apps/bac/relay/sidecars/
2026/10/20 08:24:39 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/20 08:24:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/20 08:24:39 provision: dry-run: would mint sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" channel "stable" args ["sidecar","run"])
2026/10/20 08:24:39 provision: dry-run: would remove retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/20 08:24:39 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/20 08:24:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:39 provision: converged acme.go.tito.io update settings "{\"updates\":\"manual\",\"channel\":\"stable\"}" -> ""
2026/10/20 08:24:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:39 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 08:24:39 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 08:24:39 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/20 08:24:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/20 08:24:39 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/20 08:24:39 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/20 08:24:39 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 37.077s
ok github.com/carlosframework/platform/internal/publicrelease 0.008s
? github.com/carlosframework/platform/internal/regionname [no test files]
ok github.com/carlosframework/platform/internal/registry 5.530s
ok github.com/carlosframework/platform/internal/relay 7.218s
ok github.com/carlosframework/platform/internal/release 24.143s
ok github.com/carlosframework/platform/internal/rollout 3.821s
ok github.com/carlosframework/platform/internal/rolloutwords 0.007s
ok github.com/carlosframework/platform/internal/rootaws 0.009s
ok github.com/carlosframework/platform/internal/rootparticipation 0.057s
ok github.com/carlosframework/platform/internal/rootstate 0.026s
ok github.com/carlosframework/platform/internal/runs 0.585s
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.506s
ok github.com/carlosframework/platform/internal/seeds 0.014s
ok github.com/carlosframework/platform/internal/sim/hostlife 9.484s
ok github.com/carlosframework/platform/internal/sim/litestreamfacts 3.695s
ok github.com/carlosframework/platform/internal/status 0.061s
ok github.com/carlosframework/platform/internal/steering 0.005s
ok github.com/carlosframework/platform/internal/stopevidence 0.273s
ok github.com/carlosframework/platform/internal/svcrole 0.002s
ok github.com/carlosframework/platform/internal/telemetry 0.005s
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.002s
ok github.com/carlosframework/platform/internal/updatewords 0.004s
ok github.com/carlosframework/platform/internal/usage 0.004s
ok github.com/carlosframework/platform/internal/version 0.002s
ok github.com/carlosframework/platform/internal/vet 1.576s
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/internal/host/movesoffline_e2e_test.go b/internal/host/movesoffline_e2e_test.go| new file mode 100644 |
| index 000000000..32f356db6 |
| --- /dev/null |
| +++ b/internal/host/movesoffline_e2e_test.go |
| @@ -0,0 +1,1278 @@ |
| +//go:build linux |
| + |
| +package host |
| + |
| +import ( |
| + "bytes" |
| + "context" |
| + "encoding/base64" |
| + "encoding/json" |
| + "errors" |
| + "io" |
| + "net/http" |
| + "net/http/httptest" |
| + "os" |
| + "path/filepath" |
| + "reflect" |
| + "slices" |
| + "sort" |
| + "strings" |
| + "sync" |
| + "testing" |
| + "time" |
| + |
| + "github.com/carlosframework/platform/internal/activator" |
| + "github.com/carlosframework/platform/internal/appconfig" |
| + "github.com/carlosframework/platform/internal/console" |
| + "github.com/carlosframework/platform/internal/domains" |
| + "github.com/carlosframework/platform/internal/hostops" |
| + "github.com/carlosframework/platform/internal/instancekey" |
| + "github.com/carlosframework/platform/internal/layout" |
| + "github.com/carlosframework/platform/internal/lease" |
| + "github.com/carlosframework/platform/internal/lease/leasetest" |
| + "github.com/carlosframework/platform/internal/moves" |
| + "github.com/carlosframework/platform/internal/provision" |
| + "github.com/carlosframework/platform/internal/registry" |
| + "github.com/carlosframework/platform/internal/release" |
| + "github.com/carlosframework/platform/internal/status" |
| +) |
| + |
| +// The offline operator move end to end (Task 8 of docs/superpowers/plans/ |
| +// 2026-10-20-offline-operator-move.md): the console's real doors, in |
| +// process, driven in the operator's order (start, seal, flip, open, finish), |
| +// and two boxes in two regions, each ticked between the door calls in the |
| +// agent's order (reconcileSerializedWith, the edges-file write, movesPass). |
| +// |
| +// Production wiring throughout: console.NewServer over the deployment store |
| +// with an operator's CLI token; per box newMovesWorker armed by armOffline, |
| +// a real registry and data directory, a real activator.Service, the |
| +// production edges-file writer fed the identity edgesFileLoop builds from |
| +// the box's own environment, the production build-state carry |
| +// (moveCarry(newBuildStates)), a real litestream replica in data-ie written |
| +// through lease.ReplicateWithLease, leasetest's S3 server for data-ie and |
| +// data-uk, and the exec backend's real launch composition, restore and |
| +// lease take. |
| +// |
| +// The fakes, and why: |
| +// - the activator's wake backend (fakeWakeBackend), which only the fence |
| +// needs, as the plan allows; the real ExecBackend does every lease take |
| +// and the restore; |
| +// - the operator page (sealWorld.arm's Page records instead of writing |
| +// the outbox), so the test can say no page fired; |
| +// - the box status snapshots, written once before the move as each box's |
| +// status loop would (status.WriteBox), because the console's fleet read |
| +// joins them and no status loop runs in a test; |
| +// - the reconcile Layout intent (offBox.reconcile names flat or nested) |
| +// instead of mintLayoutIntentWith, as T3 to T5's worlds do; |
| +// - the source's config.env is rendered once by RenderHeld before the |
| +// seal, standing in for config sync's render at rest; |
| +// - the agent process environment: both boxes live in one test process, |
| +// and the launch composer (childEnv) reads os.Environ(), so each box's |
| +// LaunchLayers runs with that box's own agent variables swapped into |
| +// the process environment for the call (withAgentEnv). That is what a |
| +// separate carlos-edge process per box gives production. |
| +// - for the nested source only, T5's raw-directory stand-in for the bind |
| +// mount (the fixture's mount is a symlink the nested reader refuses). |
| + |
| +const e2eAddr = "ops@example.com" |
| + |
| +// The agent environments of the two boxes: the variables measured on dev |
| +// and flagship that differ from box to box (97f541f2). Each box's launch |
| +// composer sees its own. |
| +var ( |
| + e2eIEAgentEnv = map[string]string{ |
| + "SYSTEMD_EXEC_PID": "1101", |
| + "MEMORY_PRESSURE_WATCH": "/sys/fs/cgroup/system.slice/carlos-edge.service/memory.pressure", |
| + "INVOCATION_ID": "0f0e0d0c0b0a09080706050403020100", |
| + "AWS_REGION": sealIERegion, |
| + "STATUS_BOX_REGION": sealIERegion, |
| + "PLATFORM_EDGE_IPS": "192.0.2.10", |
| + } |
| + e2eUKAgentEnv = map[string]string{ |
| + "SYSTEMD_EXEC_PID": "2202", |
| + "MEMORY_PRESSURE_WATCH": "/sys/fs/cgroup/system.slice/carlos-edge.service/memory.pressure.uk", |
| + "INVOCATION_ID": "00010203040506070809", |
| + "AWS_REGION": sealUKRegion, |
| + "STATUS_BOX_REGION": sealUKRegion, |
| + "PLATFORM_EDGE_IPS": "198.51.100.20,198.51.100.21", |
| + } |
| +) |
| + |
| +// envSwapMu serializes the agent-environment swap: the composer is called |
| +// from one goroutine at a time in this test, and the lock keeps it so. |
| +var envSwapMu sync.Mutex |
| + |
| +// withAgentEnv runs compose with env as the process's agent environment, |
| +// restored after the call. |
| +func withAgentEnv(env map[string]string, compose func(registry.Route) (map[string]string, map[string]bool, []string, error)) func(registry.Route) (map[string]string, map[string]bool, []string, error) { |
| + return func(rt registry.Route) (map[string]string, map[string]bool, []string, error) { |
| + envSwapMu.Lock() |
| + defer envSwapMu.Unlock() |
| + type prev struct { |
| + v string |
| + ok bool |
| + } |
| + old := map[string]prev{} |
| + for k, v := range env { |
| + pv, ok := os.LookupEnv(k) |
| + old[k] = prev{pv, ok} |
| + os.Setenv(k, v) |
| + } |
| + defer func() { |
| + for k, p := range old { |
| + if p.ok { |
| + os.Setenv(k, p.v) |
| + } else { |
| + os.Unsetenv(k) |
| + } |
| + } |
| + }() |
| + return compose(rt) |
| + } |
| +} |
| + |
| +// recordingStore is the deployment store every party uses (the console and |
| +// both boxes), logging each write in order. |
| +type recordingStore struct { |
| + *release.DirStore |
| + mu sync.Mutex |
| + writes []string // "put <key>" or "delete <key>" |
| +} |
| + |
| +func (r *recordingStore) note(op, key string) { |
| + r.mu.Lock() |
| + r.writes = append(r.writes, op+" "+key) |
| + r.mu.Unlock() |
| +} |
| + |
| +func (r *recordingStore) Put(ctx context.Context, key string, body []byte, ifMatch string) (string, error) { |
| + r.note("put", key) |
| + return r.DirStore.Put(ctx, key, body, ifMatch) |
| +} |
| + |
| +func (r *recordingStore) PutFrom(ctx context.Context, key string, body io.ReadSeeker, size int64, ifMatch string) (string, error) { |
| + r.note("put", key) |
| + return r.DirStore.PutFrom(ctx, key, body, size, ifMatch) |
| +} |
| + |
| +func (r *recordingStore) Delete(ctx context.Context, key string) error { |
| + r.note("delete", key) |
| + return r.DirStore.Delete(ctx, key) |
| +} |
| + |
| +func (r *recordingStore) DeleteIfMatch(ctx context.Context, key, etag string) error { |
| + r.note("delete", key) |
| + return r.DirStore.DeleteIfMatch(ctx, key, etag) |
| +} |
| + |
| +func (r *recordingStore) mark() int { |
| + r.mu.Lock() |
| + defer r.mu.Unlock() |
| + return len(r.writes) |
| +} |
| + |
| +func (r *recordingStore) since(m int) []string { |
| + r.mu.Lock() |
| + defer r.mu.Unlock() |
| + return append([]string(nil), r.writes[m:]...) |
| +} |
| + |
| +// e2eView is the part of the console's status view the test drives by. |
| +type e2eView struct { |
| + State string `json:"state"` |
| + ID string `json:"id"` |
| + Next string `json:"next"` |
| + Waiting string `json:"waiting"` |
| + Failed bool `json:"failed"` |
| + Last *provision.MoveOutcome `json:"last"` |
| +} |
| + |
| +// e2eWorld is shop.example.com at home on ie-box (data-ie) with uk-box |
| +// (data-uk) in uk, the console's doors over the same store. |
| +type e2eWorld struct { |
| + *landWorld |
| + t *testing.T |
| + rs *recordingStore |
| + base string // the doors' base URL |
| + token string |
| + ieEB *activator.ExecBackend // ie-box's real lease take and restore |
| + |
| + id string |
| + recBefore map[string]any |
| + storeMark int |
| + bucketsAt map[string]map[string]bool // bucket -> key@version seen before the move |
| + // The source's files tree and env/config bytes, before the move. |
| + srcTree map[string]string |
| + srcEnvRaw, srcCfgRaw []byte |
| + srcFiles, srcEnv, cfg string |
| + srcTimers map[string]registry.Timer |
| + rows int |
| +} |
| + |
| +func newE2EWorld(t *testing.T, opts landOpts) *e2eWorld { |
| + t.Helper() |
| + ctx := context.Background() |
| + t.Setenv("CARLOS_HOST_CLAIM", "") |
| + // The test process's own values of the agent variables, so each box's |
| + // swap is visibly its own and the process value is restored after. |
| + for k := range e2eIEAgentEnv { |
| + t.Setenv(k, "test-process") |
| + } |
| + |
| + // The data buckets over the S3 wire protocol, on loopback. |
| + fake := leasetest.NewVersionedBucket() |
| + fake.AddBucket(sealIE) |
| + fake.AddBucket(sealUK) |
| + h, _ := leasetest.NewS3Server(fake) |
| + s3srv := httptest.NewServer(h) |
| + t.Cleanup(s3srv.Close) |
| + t.Setenv("AWS_ACCESS_KEY_ID", "test-key") |
| + t.Setenv("AWS_SECRET_ACCESS_KEY", "test-secret") |
| + t.Setenv("AWS_SESSION_TOKEN", "") |
| + t.Setenv("AWS_EC2_METADATA_DISABLED", "true") |
| + t.Setenv("AWS_CONFIG_FILE", filepath.Join(t.TempDir(), "absent")) |
| + t.Setenv("AWS_SHARED_CREDENTIALS_FILE", filepath.Join(t.TempDir(), "absent")) |
| + t.Setenv("CARLOS_S3_ENDPOINT", s3srv.URL) |
| + |
| + // One deployment store for everyone, recording every write. |
| + rs := &recordingStore{DirStore: release.NewDirStore(t.TempDir())} |
| + |
| + // The keys: the deployment's secrets key (the console's public half, |
| + // each box's private half) and the release key. |
| + keyB64, _, err := appconfig.GenerateKey() |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + priv, err := appconfig.ParsePrivateKey(keyB64, "test key") |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + seed, pubB64, err := release.GenerateKey() |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + relPriv, err := release.ParseSigningKey(seed, "test") |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + relPub, err := release.ParsePublicKey(pubB64, "test") |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + |
| + // The console: an operator, its CLI token, the ops account owning app. |
| + dir := t.TempDir() |
| + cst, err := console.Open(filepath.Join(dir, "console.db")) |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + t.Cleanup(func() { cst.Close() }) |
| + var srv *console.Server |
| + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { srv.ServeHTTP(w, r) })) |
| + t.Cleanup(ts.Close) |
| + if srv, err = console.NewServer(console.Config{Origin: ts.URL, Keymail: "http://keymail.invalid", |
| + Registry: filepath.Join(dir, "registry.db"), Releases: rs, ReleasePub: relPub, Key: relPriv, AppScheme: "http", |
| + HomeRegion: "ie", SecretsPub: base64.StdEncoding.EncodeToString(priv.PublicKey().Bytes())}, cst); err != nil { |
| + t.Fatal(err) |
| + } |
| + now := time.Now() |
| + if err := cst.AddMember(console.OpsAccountID, e2eAddr, console.RoleOwner, now); err != nil { |
| + t.Fatal(err) |
| + } |
| + if err := cst.SetOperator(e2eAddr, true); err != nil { |
| + t.Fatal(err) |
| + } |
| + if _, err := cst.CreateAppIn(console.OpsAccountID, "app", e2eAddr, now); err != nil { |
| + t.Fatal(err) |
| + } |
| + userCode, deviceCode, err := cst.NewCLIAuth("ops@laptop", "127.0.0.1", now) |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + if err := cst.ApproveCLIAuth(userCode, e2eAddr, now); err != nil { |
| + t.Fatal(err) |
| + } |
| + _, token, _, err := cst.PollCLIAuth(deviceCode, now) |
| + if err != nil || token == "" { |
| + t.Fatalf("no CLI token: %v", err) |
| + } |
| + |
| + // The deployment: the ops account, app's manifest and the instance's |
| + // record at home. |
| + wd := &offWorld{t: t, s: rs, acct: release.OpsAccount, now: now} |
| + if _, _, err := rs.Get(ctx, domains.AccountManifestKey(wd.acct)); errors.Is(err, os.ErrNotExist) { |
| + manifest, _ := json.Marshal(map[string]any{"id": console.OpsAccountID, "sqid": wd.acct, "name": "ops", "created_at": now}) |
| + if _, err := rs.Put(ctx, domains.AccountManifestKey(wd.acct), manifest, ""); err != nil { |
| + t.Fatal(err) |
| + } |
| + } |
| + if err := provision.PutManifest(ctx, rs, wd.acct, "app", provision.Manifest{Schema: 1, App: "app", Domain: "example.com"}); err != nil { |
| + t.Fatal(err) |
| + } |
| + wd.create(offHost) |
| + |
| + // The boxes. ie-box is the home's one box; uk-box is uk's. |
| + sw := &sealWorld{offWorld: wd, fake: fake, keyB64: keyB64, priv: priv} |
| + sw.ie = sw.sourceBox("ie-box") |
| + sw.ie.env["CARLOS_HIBERNATE_REGION"] = sealIERegion |
| + sw.uk = sw.box("uk-box", "uk", map[string]string{"CARLOS_HIBERNATE_BUCKET": sealUK, "CARLOS_SECRETS_KEY": keyB64, |
| + "CARLOS_HIBERNATE_REGION": sealUKRegion, "CARLOS_RELEASE_PUBKEY": pubB64}) |
| + lw := &landWorld{t: t, sw: sw, wd: wd, s3: &landS3{f: fake}, ie: sw.ie, uk: sw.uk, opts: opts, relPriv: relPriv} |
| + shipVersion(t, rs, wd.acct, "app", sealVersion) |
| + shipVersion(t, rs, wd.acct, "app", "v2") |
| + lw.promote(sealVersion) |
| + lw.bundle(landStore) |
| + lw.ukEB = &activator.ExecBackend{DataDir: lw.uk.dd, OptDir: lw.uk.opt, Region: "uk"} |
| + lw.arm(lw.uk) |
| + w := &e2eWorld{landWorld: lw, t: t, rs: rs, base: ts.URL + "/api/cli/apps/" + wd.acct + "/app/instances/" + offHost + "/move/offline", token: token} |
| + |
| + // The source box's production build-state carry, and each box's launch |
| + // composer under its own agent environment. |
| + ie := lw.ie |
| + bs, bsErr := newBuildStates(&activator.Config{Bucket: sealIE, Region: sealIERegion, Prefix: sealPrefix}, ie.reg, ie.opt) |
| + ie.w.cfg.CarryRequest = moveCarry(bs, bsErr) |
| + ie.w.cfg.LaunchLayers = withAgentEnv(e2eIEAgentEnv, ie.w.cfg.LaunchLayers) |
| + lw.uk.w.cfg.LaunchLayers = withAgentEnv(e2eUKAgentEnv, lw.ukEB.LaunchLayers) |
| + w.ieEB = &activator.ExecBackend{Cfg: activator.Config{Bucket: sealIE, Region: sealIERegion, Prefix: sealPrefix}, DataDir: ie.dd, OptDir: ie.opt} |
| + |
| + // The source at rest, as a box that has served it: rows replicated in |
| + // two sessions, then a tail the stop never checkpointed. |
| + sw.instance(ie) // rows 0..19, replicated |
| + db := sw.dbPath(ie) |
| + sw.writeRows(ie, db, 20, 25, true) |
| + sw.writeRows(ie, db, 25, 30, false) |
| + w.rows = 30 |
| + w.srcFiles, w.srcEnv, w.cfg = filepath.Join(ie.dd, offHost), filepath.Join(ie.dd, offHost+".env"), filepath.Join(ie.dd, offHost+".config.env") |
| + if opts.nested { |
| + raw := sw.nest(ie) |
| + w.srcFiles, w.srcEnv, w.cfg = filepath.Join(raw, offHost), filepath.Join(raw, offHost+".env"), filepath.Join(raw, offHost+".config.env") |
| + for _, name := range []string{"launch.run.json", "launch.seed.json", "launch.gen.7.json"} { |
| + writeFile(t, filepath.Join(raw, name), "{}") |
| + } |
| + // T5's stand-in for the bind mount: the same two files, composed by |
| + // the same code, from the raw instance directory. |
| + ie.w.cfg.LaunchLayers = withAgentEnv(e2eIEAgentEnv, func(rt registry.Route) (map[string]string, map[string]bool, []string, error) { |
| + rt.DBPath, rt.Socket = provision.DefaultDBPath(raw, rt.Host), filepath.Join(provision.SocketDir, rt.Host+".sock") |
| + return (&activator.ExecBackend{DataDir: raw}).LaunchLayers(rt) |
| + }) |
| + } |
| + if opts.noFiles { |
| + if err := os.RemoveAll(w.srcFiles); err != nil { |
| + t.Fatal(err) |
| + } |
| + } |
| + lw.srcFiles, lw.srcEnv, lw.srcConfig = w.srcFiles, w.srcEnv, w.cfg |
| + |
| + // Both boxes published as their loops publish them, and their status |
| + // snapshots. |
| + w.tickAll() |
| + for _, b := range []*offBox{ie, lw.uk} { |
| + if err := status.WriteBox(ctx, rs, status.Box{Label: b.name, GeneratedAt: time.Now(), Metrics: &status.BoxMetrics{}}); err != nil { |
| + t.Fatal(err) |
| + } |
| + } |
| + if !ie.lists(offHost) || lw.uk.lists(offHost) { |
| + t.Fatal("fixture: ie-box must serve the host and uk-box must not") |
| + } |
| + return w |
| +} |
| + |
| +// publish is one pass of edgesFileLoop on b: the identity it builds at arm |
| +// from the box's own environment, the capability from the box's armed |
| +// worker, through the production writer. |
| +func (w *e2eWorld) publish(b *offBox) { |
| + w.t.Helper() |
| + sharedPool, inbound := edgesFileEligibility(b.getenv) |
| + aws := sealIERegion |
| + if b.region == "uk" { |
| + aws = sealUKRegion |
| + } |
| + ident := edgesFile{ |
| + Box: b.name, BoxID: b.name, Region: aws, Placement: b.region, |
| + DataBucket: strings.TrimSpace(b.getenv("CARLOS_HIBERNATE_BUCKET")), |
| + DataBucketRegion: strings.TrimSpace(b.getenv("CARLOS_HIBERNATE_REGION")), |
| + HibernationConfigured: strings.TrimSpace(b.getenv("CARLOS_HIBERNATE_BUCKET")) != "", |
| + ServesSharedPool: sharedPool, |
| + AcceptsInbound: inbound, |
| + SecretsKeyFP: edgesFileSecretsFP(b.getenv), |
| + Capabilities: withOfflineCapability(edgesFileCapabilities(b.getenv), b.w.cfg.OfflineCapable && b.w.cfg.Offline != nil), |
| + } |
| + if err := edgesFileWrite(context.Background(), w.wd.s, b.reg, ident, "192.0.2.1", &b.last, false); err != nil { |
| + w.t.Fatal(err) |
| + } |
| +} |
| + |
| +// tick is the agent's order on one box: reconcile, the edges file, the |
| +// moves pass. The boxes' clock is the wall clock, which the doors judge |
| +// report freshness by. |
| +func (w *e2eWorld) tick(b *offBox) { |
| + w.t.Helper() |
| + w.wd.mu.Lock() |
| + w.wd.now = time.Now() |
| + w.wd.mu.Unlock() |
| + b.reconcile() |
| + w.publish(b) |
| + b.pass() |
| +} |
| + |
| +func (w *e2eWorld) tickAll() { |
| + w.t.Helper() |
| + w.tick(w.ie) |
| + w.tick(w.uk) |
| +} |
| + |
| +// door posts to one of the doors (verb "" is start). |
| +func (w *e2eWorld) door(verb, body string) (int, string) { |
| + w.t.Helper() |
| + u := w.base |
| + if verb != "" { |
| + u += "/" + verb |
| + } |
| + return w.do(http.MethodPost, u, body) |
| +} |
| + |
| +func (w *e2eWorld) do(method, u, body string) (int, string) { |
| + w.t.Helper() |
| + req, err := http.NewRequest(method, u, strings.NewReader(body)) |
| + if err != nil { |
| + w.t.Fatal(err) |
| + } |
| + req.Header.Set("Authorization", "Bearer "+w.token) |
| + req.Header.Set("Content-Type", "application/json") |
| + res, err := http.DefaultClient.Do(req) |
| + if err != nil { |
| + w.t.Fatal(err) |
| + } |
| + defer res.Body.Close() |
| + raw, _ := io.ReadAll(res.Body) |
| + return res.StatusCode, string(raw) |
| +} |
| + |
| +func (w *e2eWorld) decode(out string) e2eView { |
| + w.t.Helper() |
| + var v e2eView |
| + if err := json.Unmarshal([]byte(out), &v); err != nil { |
| + w.t.Fatalf("%v in %s", err, out) |
| + } |
| + return v |
| +} |
| + |
| +// accept posts a verb and wants the door's 202 with the state. |
| +func (w *e2eWorld) accept(verb, body, wantState string) e2eView { |
| + w.t.Helper() |
| + code, out := w.door(verb, body) |
| + if code != http.StatusAccepted { |
| + w.t.Fatalf("%s = %d %s", verbName(verb), code, out) |
| + } |
| + v := w.decode(out) |
| + if v.State != wantState { |
| + w.t.Fatalf("%s: state %q, want %q (%s)", verbName(verb), v.State, wantState, out) |
| + } |
| + return v |
| +} |
| + |
| +func verbName(v string) string { |
| + if v == "" { |
| + return "start" |
| + } |
| + return v |
| +} |
| + |
| +func (w *e2eWorld) status() e2eView { |
| + w.t.Helper() |
| + code, out := w.do(http.MethodGet, w.base, "") |
| + if code != http.StatusOK { |
| + w.t.Fatalf("status = %d %s", code, out) |
| + } |
| + return w.decode(out) |
| +} |
| + |
| +// until ticks both boxes, then reads the status view, until ok says the |
| +// step has reported. |
| +func (w *e2eWorld) until(what string, ok func(e2eView) bool) e2eView { |
| + w.t.Helper() |
| + var v e2eView |
| + for range 6 { |
| + w.tickAll() |
| + if v = w.status(); ok(v) { |
| + return v |
| + } |
| + } |
| + w.t.Fatalf("%s: never reported; the view is %+v", what, v) |
| + return v |
| +} |
| + |
| +func nextIs(verb string) func(e2eView) bool { |
| + return func(v e2eView) bool { return v.Next == verb } |
| +} |
| + |
| +func (w *e2eWorld) recordRaw() []byte { |
| + w.t.Helper() |
| + raw, _, err := w.rs.Get(context.Background(), provision.RecordKey(w.wd.acct, "app", offHost)) |
| + if err != nil { |
| + w.t.Fatal(err) |
| + } |
| + return raw |
| +} |
| + |
| +func asJSONMap(t *testing.T, raw []byte) map[string]any { |
| + t.Helper() |
| + out := map[string]any{} |
| + if err := json.Unmarshal(raw, &out); err != nil { |
| + t.Fatal(err) |
| + } |
| + return out |
| +} |
| + |
| +// requireRecordDiff: the record differs from the one read before start in |
| +// region, move, last_move and record_seq only (move.updated_at lives in |
| +// move). |
| +func (w *e2eWorld) requireRecordDiff(when string) map[string]any { |
| + w.t.Helper() |
| + after := asJSONMap(w.t, w.recordRaw()) |
| + allowed := map[string]bool{"region": true, "move": true, "last_move": true, "record_seq": true} |
| + keys := map[string]bool{} |
| + for k := range w.recBefore { |
| + keys[k] = true |
| + } |
| + for k := range after { |
| + keys[k] = true |
| + } |
| + for k := range keys { |
| + if !allowed[k] && !reflect.DeepEqual(w.recBefore[k], after[k]) { |
| + w.t.Errorf("%s: record field %q changed: %v -> %v", when, k, w.recBefore[k], after[k]) |
| + } |
| + } |
| + return after |
| +} |
| + |
| +// bucketVersions is every key@version in bucket. |
| +func (w *e2eWorld) bucketVersions(bucket string) map[string]bool { |
| + w.t.Helper() |
| + vers, err := w.sw.fake.ListVersions(context.Background(), bucket, "") |
| + if err != nil { |
| + w.t.Fatal(err) |
| + } |
| + out := map[string]bool{} |
| + for _, v := range vers { |
| + out[v.Key+"@"+v.VersionID] = true |
| + } |
| + return out |
| +} |
| + |
| +// newBucketKeys is the keys written or deleted in bucket since snap. |
| +func (w *e2eWorld) newBucketKeys(bucket string, snap map[string]bool) []string { |
| + w.t.Helper() |
| + var out []string |
| + seen := map[string]bool{} |
| + for kv := range w.bucketVersions(bucket) { |
| + if snap[kv] { |
| + continue |
| + } |
| + k := kv[:strings.LastIndex(kv, "@")] |
| + if !seen[k] { |
| + seen[k] = true |
| + out = append(out, k) |
| + } |
| + } |
| + sort.Strings(out) |
| + return out |
| +} |
| + |
| +func (w *e2eWorld) snapBuckets() { |
| + w.bucketsAt = map[string]map[string]bool{sealIE: w.bucketVersions(sealIE), sealUK: w.bucketVersions(sealUK)} |
| +} |
| + |
| +// requireClosedWriteSet: since start, the deployment store saw writes only |
| +// in the plan's closed write set, and the data buckets only under the |
| +// move's own data keys. control/hosts/, control/host-census/, |
| +// control/host-actors.json, the app's admission and the domains claim are |
| +// named, so a write there reads as what it is. |
| +func (w *e2eWorld) requireClosedWriteSet(when string) { |
| + t := w.t |
| + t.Helper() |
| + recKey := provision.RecordKey(w.wd.acct, "app", offHost) |
| + admission, err := hostops.AdmissionKey(w.wd.acct, "app") |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + forbidden := []string{"control/hosts/", "control/host-census/", "control/host-actors.json", admission, domains.ClaimsPrefix, domains.ClaimKey(offHost)} |
| + allowed := func(key string) bool { |
| + switch { |
| + case key == recKey, key == release.SerialKey, |
| + strings.HasPrefix(key, "control/offline-moves/"), |
| + strings.HasPrefix(key, "control/config-ack/"), |
| + strings.HasPrefix(key, edgesFilePrefix): |
| + return true |
| + } |
| + return false |
| + } |
| + ops := w.rs.since(w.storeMark) |
| + if !slices.ContainsFunc(ops, func(op string) bool { return strings.HasPrefix(op, "put control/offline-moves/") }) { |
| + t.Fatalf("%s: the recording saw no report written: %v", when, ops) |
| + } |
| + for _, op := range ops { |
| + key := op[strings.IndexByte(op, ' ')+1:] |
| + for _, f := range forbidden { |
| + if strings.HasPrefix(key, f) { |
| + t.Errorf("%s: the move wrote the claim's key %s (%s)", when, key, op) |
| + } |
| + } |
| + if !allowed(key) { |
| + t.Errorf("%s: a write outside the closed write set: %s", when, op) |
| + } |
| + } |
| + loc := activator.HibernatePrefix(sealPrefix, offHost) + "/" |
| + for _, k := range w.newBucketKeys(sealIE, w.bucketsAt[sealIE]) { |
| + if !strings.HasPrefix(k, loc) && k != "move-receipts/"+offHost+".json" { |
| + t.Errorf("%s: data-ie written outside the move's keys: %s", when, k) |
| + } |
| + } |
| + for _, k := range w.newBucketKeys(sealUK, w.bucketsAt[sealUK]) { |
| + if !strings.HasPrefix(k, activator.MovesPrefix(offHost)) && !strings.HasPrefix(k, moves.OfflineArchivePrefix(offHost, w.id)) { |
| + t.Errorf("%s: data-uk written outside the move's keys: %s", when, k) |
| + } |
| + } |
| +} |
| + |
| +// begin captures the state the move is judged against, then starts it |
| +// through the door and ticks until the seal door would accept. |
| +func (w *e2eWorld) begin() { |
| + t := w.t |
| + t.Helper() |
| + w.recBefore = asJSONMap(t, w.recordRaw()) |
| + timers, err := w.ie.reg.TimersFor(offHost) |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + w.srcTimers = map[string]registry.Timer{} |
| + for _, tm := range timers { |
| + w.srcTimers[tm.Name] = tm |
| + } |
| + w.storeMark = w.rs.mark() |
| + w.snapBuckets() |
| + |
| + v := w.accept("", `{"region":"uk"}`, provision.OfflineStopping) |
| + w.id = v.ID |
| + if !strings.HasPrefix(w.id, "mv_") { |
| + t.Fatalf("move id %q", w.id) |
| + } |
| + w.until("the source's stop", nextIs("seal")) |
| + w.requireRecordDiff("after start") |
| + if w.ie.lists(offHost) { |
| + t.Fatal("ie-box still lists the host after its stop") |
| + } |
| + |
| + // Config sync's render at rest, standing in: the source's config.env |
| + // from the bundle (store binding and secret). |
| + hr, err := w.ie.w.cfg.RenderHeld(context.Background(), w.wd.s, *w.ie.row(offHost), w.id, nil, func(string) error { return nil }) |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + if hr.Path != w.cfg { |
| + // The nested fixture's sockets are not production's, so the render |
| + // took the flat path (T5's note): production renders into the |
| + // instance directory. |
| + if err := os.Rename(hr.Path, w.cfg); err != nil { |
| + t.Fatal(err) |
| + } |
| + } |
| + if isDir(w.srcFiles) { |
| + w.srcTree = tree(t, w.srcFiles) |
| + } |
| + w.srcEnvRaw, w.srcCfgRaw = mustRead(t, w.srcEnv), mustRead(t, w.cfg) |
| + if !bytes.Contains(w.srcCfgRaw, []byte("STORE_BUCKET")) { |
| + t.Fatalf("fixture: the source's config carries no store binding: %q", w.srcCfgRaw) |
| + } |
| +} |
| + |
| +func mustRead(t *testing.T, p string) []byte { |
| + t.Helper() |
| + b, err := os.ReadFile(p) |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + return b |
| +} |
| + |
| +// sealAndFlip drives seal, the sealer's passes and flip, and asserts the |
| +// stop between them: the tombstone holds data-ie against every wake. |
| +func (w *e2eWorld) seal() { |
| + t := w.t |
| + t.Helper() |
| + w.accept("seal", "", provision.OfflineSealing) |
| + w.until("the seal", nextIs("flip")) |
| + if st := w.wd.record().Move.State; st != provision.OfflineSealed { |
| + t.Fatalf("state %s after the seal", st) |
| + } |
| + w.requireStopped("after the seal") |
| +} |
| + |
| +// requireStopped: a wake's lease take on data-ie meets this move's |
| +// tombstone, through lease.Acquire and through ie-box's ExecBackend (the one |
| +// lease take for every wake source), and the row stays held. Until open, |
| +// the activator also refuses a request for the held row at its fence (the |
| +// source lifts the fence once it has parked, at open). |
| +func (w *e2eWorld) requireStopped(when string) { |
| + t := w.t |
| + t.Helper() |
| + rt := w.requireTombstoned(when) |
| + if !w.ie.svc.Fenced(offHost) { |
| + t.Fatalf("%s: ie-box's activator is not fenced", when) |
| + } |
| + proxied := false |
| + rec := httptest.NewRecorder() |
| + w.ie.svc.ServeHTTP(rec, httptest.NewRequest("GET", "http://"+offHost+"/", nil), rt, |
| + http.HandlerFunc(func(http.ResponseWriter, *http.Request) { proxied = true })) |
| + if proxied || rec.Code < 500 { |
| + t.Fatalf("%s: a request on ie-box was answered %d (proxied %v)", when, rec.Code, proxied) |
| + } |
| +} |
| + |
| +// requireTombstoned is requireStopped's lease half, and the held row. |
| +func (w *e2eWorld) requireTombstoned(when string) registry.Route { |
| + t := w.t |
| + t.Helper() |
| + ctx := context.Background() |
| + _, err := acquireAsAWake(ctx) |
| + var he *lease.HeldError |
| + if !errors.As(err, &he) || he.Owner != moves.TombstoneOwner(w.id) { |
| + t.Fatalf("%s: lease.Acquire on data-ie = %v, want a HeldError naming %s", when, err, moves.TombstoneOwner(w.id)) |
| + } |
| + rt := w.ie.row(offHost) |
| + if rt == nil || rt.HoldOp != w.id || rt.Status == "ready" { |
| + t.Fatalf("%s: ie-box's row %+v is not held by the move", when, rt) |
| + } |
| + if l, err := w.ieEB.Acquire(ctx, *rt); err == nil || !strings.Contains(err.Error(), moves.TombstoneOwner(w.id)) { |
| + if l != nil { |
| + l.Release(ctx) |
| + } |
| + t.Fatalf("%s: ie-box's exec backend took the lease: %v", when, err) |
| + } |
| + return *rt |
| +} |
| + |
| +func (w *e2eWorld) flipAndLand() { |
| + w.t.Helper() |
| + w.accept("flip", "", provision.OfflineLanding) |
| + w.requireRecordDiff("after flip") |
| + w.until("the landing", nextIs("open")) |
| +} |
| + |
| +// open drives open and ticks until the console would take finish: the |
| +// target opened and every source box parked. |
| +func (w *e2eWorld) open() { |
| + w.t.Helper() |
| + w.accept("open", "", provision.OfflineOpen) |
| + w.until("the open", nextIs("finish")) |
| + w.requireRecordDiff("after open") |
| +} |
| + |
| +// finish drives both finish calls and the passes between. |
| +func (w *e2eWorld) finish(wantOutcome string) { |
| + t := w.t |
| + t.Helper() |
| + code, out := w.door("finish", "") |
| + if code != http.StatusAccepted { |
| + t.Fatalf("finish = %d %s", code, out) |
| + } |
| + if v := w.decode(out); v.State != "none" { |
| + if v.State != provision.OfflineFinishing { |
| + t.Fatalf("finish: state %q", v.State) |
| + } |
| + w.until("the finishing", nextIs("finish")) |
| + w.accept("finish", "", "none") |
| + } |
| + v := w.status() |
| + if v.State != "none" || v.Last == nil || v.Last.ID != w.id || v.Last.Outcome != wantOutcome { |
| + t.Fatalf("after finish: %+v (last %+v)", v, v.Last) |
| + } |
| +} |
| + |
| +// requireTombstoneLifted: data-ie's lock is absent or a lifted tombstone. |
| +func (w *e2eWorld) requireTombstoneLifted() { |
| + w.t.Helper() |
| + _, owner, expires, err := lease.LockState(context.Background(), sealIE, activator.HibernatePrefix(sealPrefix, offHost), sealIERegion) |
| + if err != nil || !(owner == "" || lease.IsLiftedTombstone(owner, expires)) { |
| + w.t.Fatalf("data-ie's lock is %q until %v (%v), want it lifted", owner, expires, err) |
| + } |
| +} |
| + |
| +// requireTarget: what uk-box holds after open, against the source as it |
| +// was before the move. |
| +func (w *e2eWorld) requireTarget() { |
| + t := w.t |
| + t.Helper() |
| + uk := w.uk |
| + if w.opts.noFiles { |
| + if got := tree(t, filepath.Join(uk.dd, offHost)); len(got) != 1 { |
| + t.Fatalf("a source with no files directory landed %v", got) |
| + } |
| + } else if got := tree(t, filepath.Join(uk.dd, offHost)); !reflect.DeepEqual(got, w.srcTree) { |
| + t.Fatalf("files differ:\nsource %v\ntarget %v", w.srcTree, got) |
| + } |
| + if got := mustRead(t, filepath.Join(uk.dd, offHost+".env")); !bytes.Equal(got, w.srcEnvRaw) { |
| + t.Fatalf("<host>.env differs:\nsource %q\ntarget %q", w.srcEnvRaw, got) |
| + } |
| + ukCfg := mustRead(t, filepath.Join(uk.dd, offHost+".config.env")) |
| + if !bytes.Equal(ukCfg, w.srcCfgRaw) { |
| + t.Fatalf("<host>.config.env differs:\nsource %q\ntarget %q", w.srcCfgRaw, ukCfg) |
| + } |
| + // The instance key the app is handed: byte for byte the source's. |
| + srcKey, _ := instancekey.Effective(instancekey.ParseEnv(w.srcCfgRaw), instancekey.ParseEnv(w.srcEnvRaw)) |
| + dstKey, _ := instancekey.Effective(instancekey.ParseEnv(ukCfg), instancekey.ParseEnv(mustRead(t, filepath.Join(uk.dd, offHost+".env")))) |
| + if srcKey == "" || dstKey != srcKey { |
| + t.Fatalf("instance key: source %q, target %q", srcKey, dstKey) |
| + } |
| + rt := uk.row(offHost) |
| + if rt == nil || rt.Status != "ready" || rt.HoldOp != "" { |
| + t.Fatalf("uk-box's row after open: %+v", rt) |
| + } |
| + // The launch the target composes, under its own agent environment: the |
| + // store binding, its secret, the key; and the agent's own variables |
| + // are uk-box's, not ie-box's (the pin matched across them). |
| + env, _, _, err := uk.w.cfg.LaunchLayers(*rt) |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + for k, want := range map[string]string{"STORE_BUCKET": landStore, "STORE_SECRET_KEY": landSecret, "CARLOS_INSTANCE_KEY": srcKey, |
| + "SYSTEMD_EXEC_PID": e2eUKAgentEnv["SYSTEMD_EXEC_PID"], "PLATFORM_EDGE_IPS": e2eUKAgentEnv["PLATFORM_EDGE_IPS"]} { |
| + if env[k] != want { |
| + t.Fatalf("the target launches with %s=%q, want %q", k, env[k], want) |
| + } |
| + } |
| + // Timers, NextDue and replication arrived. |
| + rows, err := uk.reg.TimersFor(offHost) |
| + if err != nil || len(rows) != 2 || moves.TimersDigest(rows) != w.sealDigest() { |
| + t.Fatalf("timers on the target %+v %v", rows, err) |
| + } |
| + for _, tm := range rows { |
| + want, ok := w.srcTimers[tm.Name] |
| + if !ok || tm.Kind != want.Kind || tm.Spec != want.Spec || tm.Path != want.Path || tm.NextAt != want.NextAt { |
| + t.Fatalf("timer %+v on the target, the source had %+v", tm, want) |
| + } |
| + } |
| + if rt.NextDue != 1_800_000_000 || rt.Replication != registry.ReplicationBatched { |
| + t.Fatalf("row columns %+v", rt) |
| + } |
| + // The edges loop's pass on the registry change the release made. |
| + w.publish(uk) |
| + w.publish(w.ie) |
| + if !uk.lists(offHost) { |
| + t.Fatal("uk-box's edges file does not list the opened host") |
| + } |
| + if w.ie.lists(offHost) { |
| + t.Fatal("ie-box's edges file lists the moved host") |
| + } |
| +} |
| + |
| +func (w *e2eWorld) sealDigest() string { |
| + w.t.Helper() |
| + raw, _, err := w.wd.s.Get(context.Background(), moves.OfflineSealKey(offHost, w.id)) |
| + if err != nil { |
| + w.t.Fatal(err) |
| + } |
| + var r moves.OfflineReport |
| + if err := json.Unmarshal(raw, &r); err != nil { |
| + w.t.Fatal(err) |
| + } |
| + return r.TimersDigest |
| +} |
| + |
| +// firstWake is the target's first wake: the real exec backend's restore |
| +// promotes moves/<host>/ into data-uk's own prefix, and the database passes |
| +// the integrity check holding every row written before the stop. |
| +func (w *e2eWorld) firstWake() { |
| + t := w.t |
| + t.Helper() |
| + ctx := context.Background() |
| + m, err := lease.NewS3Mirror(ctx, sealUKRegion, sealUKRegion) |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + rt := w.uk.row(offHost) |
| + eb := &activator.ExecBackend{Cfg: activator.Config{Bucket: sealUK, Region: sealUKRegion, Prefix: sealPrefix}, DataDir: w.uk.dd, OptDir: w.uk.opt, Mirror: m} |
| + l, err := eb.Acquire(ctx, *rt) |
| + if err != nil { |
| + t.Fatalf("the first wake's lease on data-uk: %v", err) |
| + } |
| + defer l.Release(ctx) |
| + fresh, err := eb.Restore(ctx, *rt) |
| + if err != nil || fresh { |
| + t.Fatalf("restore: fresh %v, %v", fresh, err) |
| + } |
| + if err := lease.CheckDB(rt.DBPath); err != nil { |
| + t.Fatal(err) |
| + } |
| + if n := countRows(t, rt.DBPath); n != w.rows { |
| + t.Fatalf("the target restored %d rows, want %d", n, w.rows) |
| + } |
| + if got := w.s3.current(t, sealUK, activator.MovesPrefix(offHost)); len(got) != 0 { |
| + t.Fatalf("staging left after the promotion: %v", keysOf(got)) |
| + } |
| +} |
| + |
| +// requireRetired: ie-box's parked report lists every source-retire path |
| +// as parked, absent or left with a reason; what it parked is in the park |
| +// directory and not in place; nothing it had is gone. |
| +func (w *e2eWorld) requireRetired() moves.OfflineReport { |
| + t := w.t |
| + t.Helper() |
| + ie := w.ie |
| + r := w.wd.reportFor(w.id, moves.OfflineRoleSource, "ie-box") |
| + if r.Phase != moves.OfflinePhaseParked { |
| + t.Fatalf("ie-box reports %s, want parked", r.Phase) |
| + } |
| + for _, rp := range r.Retired { |
| + switch rp.Action { |
| + case moves.RetiredParked: |
| + if lexists(rp.Path) { |
| + t.Errorf("%s is reported parked but is still in place", rp.Path) |
| + } |
| + case moves.RetiredAbsent: |
| + if lexists(rp.Path) && !w.opts.nested { |
| + t.Errorf("%s is reported absent but exists", rp.Path) |
| + } |
| + case moves.RetiredLeft: |
| + if rp.Reason == "" { |
| + t.Errorf("%s left with no reason", rp.Path) |
| + } |
| + default: |
| + t.Errorf("%s: action %q", rp.Path, rp.Action) |
| + } |
| + } |
| + if !w.opts.nested { |
| + // Every path of the manifest's source-retire row, each with the |
| + // action this source must get ("" is parked or absent, as the |
| + // database's companions are whatever litestream left). |
| + db := provision.DefaultDBPath(ie.dd, offHost) |
| + files := moves.RetiredParked |
| + if w.opts.noFiles { |
| + files = moves.RetiredAbsent |
| + } |
| + want := map[string]string{ |
| + db: moves.RetiredParked, db + "-wal": "", db + "-shm": "", |
| + db + "-litestream": moves.RetiredAbsent, activatorMetaDir(db): moves.RetiredParked, |
| + filepath.Join(ie.dd, offHost): files, |
| + filepath.Join(ie.dd, offHost+".env"): moves.RetiredParked, |
| + filepath.Join(ie.dd, offHost+".config.env"): moves.RetiredParked, |
| + filepath.Join(ie.dd, "programs", offHost+".json"): moves.RetiredAbsent, |
| + filepath.Join(ie.opt, "live", offHost): moves.RetiredLeft, |
| + } |
| + got := map[string]string{} |
| + for _, rp := range r.Retired { |
| + got[rp.Path] = rp.Action |
| + } |
| + for p, action := range want { |
| + a, ok := got[p] |
| + if !ok || (action != "" && a != action) || (action == "" && a != moves.RetiredParked && a != moves.RetiredAbsent) { |
| + t.Errorf("source-retire %s: %q (listed %v), want %q", p, a, ok, action) |
| + } |
| + } |
| + if len(got) != len(want) { |
| + t.Errorf("the inventory lists %d paths, want %d: %+v", len(got), len(want), r.Retired) |
| + } |
| + } else { |
| + // Nested: the raw directory's contents, each listed, the platform's |
| + // launch descriptors included; the directory and its view are left. |
| + raw := layout.RawInstanceDir(ie.dd, offHost) |
| + listed := map[string]string{} |
| + for _, rp := range r.Retired { |
| + listed[rp.Path] = rp.Action |
| + } |
| + for _, name := range []string{offHost, offHost + ".env", offHost + ".config.env", offHost + ".db", "launch.run.json", "launch.gen.7.json"} { |
| + if listed[filepath.Join(raw, name)] != moves.RetiredParked { |
| + t.Errorf("the nested source's %s: %q, want parked", name, listed[filepath.Join(raw, name)]) |
| + } |
| + } |
| + if listed[raw] != moves.RetiredLeft { |
| + t.Errorf("the raw instance directory: %q, want left", listed[raw]) |
| + } |
| + } |
| + w.requireParkedBytes() |
| + return r |
| +} |
| + |
| +// requireParkedBytes: nothing the source had is gone. The app's files, env |
| +// and config are in the park directory byte for byte, and the database with |
| +// every row. |
| +func (w *e2eWorld) requireParkedBytes() { |
| + t := w.t |
| + t.Helper() |
| + park := moves.OfflineParkDir(w.ie.dd, offHost, w.id, moves.OfflineRoleSource) |
| + if w.opts.nested { |
| + park = filepath.Join(park, "instance") |
| + for _, name := range []string{"launch.run.json", "launch.gen.7.json"} { |
| + if !lexists(filepath.Join(park, name)) { |
| + t.Errorf("the nested source's %s was not parked", name) |
| + } |
| + } |
| + } |
| + if !w.opts.noFiles { |
| + if got := tree(t, filepath.Join(park, offHost)); !reflect.DeepEqual(got, w.srcTree) { |
| + t.Fatalf("the parked files differ:\nsource %v\nparked %v", w.srcTree, got) |
| + } |
| + } |
| + if got := mustRead(t, filepath.Join(park, offHost+".env")); !bytes.Equal(got, w.srcEnvRaw) { |
| + t.Fatal("the parked env differs") |
| + } |
| + if got := mustRead(t, filepath.Join(park, offHost+".config.env")); !bytes.Equal(got, w.srcCfgRaw) { |
| + t.Fatal("the parked config differs") |
| + } |
| + if n := countRows(t, filepath.Join(park, offHost+".db")); n != w.rows { |
| + t.Fatalf("the parked database holds %d rows, want %d", n, w.rows) |
| + } |
| +} |
| + |
| +// reportFor reads one box's report for op. |
| +func (wd *offWorld) reportFor(op, role, box string) moves.OfflineReport { |
| + wd.t.Helper() |
| + body, _, err := wd.s.Get(context.Background(), moves.OfflineReportKey(offHost, op, role, box)) |
| + if err != nil { |
| + wd.t.Fatalf("no %s report from %s: %v", role, box, err) |
| + } |
| + var r moves.OfflineReport |
| + if err := json.Unmarshal(body, &r); err != nil { |
| + wd.t.Fatal(err) |
| + } |
| + if err := moves.ValidateOfflineReport(r); err != nil { |
| + wd.t.Fatal(err) |
| + } |
| + return r |
| +} |
| + |
| +// TestOfflineMoveE2E is the two-box witness: the whole offline move through |
| +// the console's doors and both boxes' production passes. |
| +func TestOfflineMoveE2E(t *testing.T) { |
| + t.Run("done", func(t *testing.T) { offlineMoveDone(t, landOpts{}) }) |
| + t.Run("nested source with launch files", func(t *testing.T) { offlineMoveDone(t, landOpts{nested: true}) }) |
| + t.Run("no files directory", func(t *testing.T) { offlineMoveDone(t, landOpts{noFiles: true}) }) |
| + t.Run("rollback after a tampered archive", offlineMoveRollback) |
| +} |
| + |
| +func offlineMoveDone(t *testing.T, opts landOpts) { |
| + w := newE2EWorld(t, opts) |
| + ctx := context.Background() |
| + |
| + // The env pin's premise: the two boxes compose under different agent |
| + // environments, each its own. |
| + for _, c := range []struct { |
| + b *offBox |
| + env map[string]string |
| + }{{w.ie, e2eIEAgentEnv}, {w.uk, e2eUKAgentEnv}} { |
| + rt := registry.Route{Host: offHost, Kind: "instance", DBPath: provision.DefaultDBPath(c.b.dd, offHost), Socket: filepath.Join(provision.SocketDir, offHost+".sock")} |
| + env, _, _, err := c.b.w.cfg.LaunchLayers(rt) |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + for k, v := range c.env { |
| + if env[k] != v { |
| + t.Fatalf("%s composes %s=%q, want its own %q", c.b.name, k, env[k], v) |
| + } |
| + } |
| + } |
| + if os.Getenv("SYSTEMD_EXEC_PID") != "test-process" { |
| + t.Fatal("the agent environment swap leaked into the process") |
| + } |
| + |
| + w.begin() |
| + w.seal() |
| + w.flipAndLand() |
| + if r := w.wd.reportFor(w.id, moves.OfflineRoleTarget, "uk-box"); !r.Items["env-pin"].OK { |
| + t.Fatalf("env-pin across the two agent environments: %+v", r.Items["env-pin"]) |
| + } |
| + w.requireStopped("after the landing") |
| + w.open() |
| + |
| + w.requireTarget() |
| + retired := w.requireRetired() |
| + if rt := w.ie.row(offHost); rt == nil { |
| + t.Fatal("ie-box's row went before finishing") |
| + } |
| + w.requireTombstoned("after open") |
| + // The writes so far, before the first wake (which is not the tool's). |
| + w.requireClosedWriteSet("through open") |
| + w.firstWake() |
| + w.storeMark = w.rs.mark() |
| + w.snapBuckets() |
| + |
| + w.finish("done") |
| + w.requireClosedWriteSet("from open to the end") |
| + w.requireTombstoneLifted() |
| + if rt := w.ie.row(offHost); rt != nil { |
| + t.Fatalf("ie-box still has a row after finish: %+v", rt) |
| + } |
| + w.tickAll() |
| + if w.ie.lists(offHost) || !w.uk.lists(offHost) { |
| + t.Fatalf("after finish: ie lists %v, uk lists %v", w.ie.lists(offHost), w.uk.lists(offHost)) |
| + } |
| + w.requireRetiredAfterFinish(retired) |
| + |
| + after := w.requireRecordDiff("after finish") |
| + if after["region"] != "uk" { |
| + t.Fatalf("region %v", after["region"]) |
| + } |
| + if _, ok := after["move"]; ok { |
| + t.Fatalf("a move is left on the record: %v", after["move"]) |
| + } |
| + rec := w.wd.record() |
| + if rec.LastMove == nil || rec.LastMove.Outcome != "done" || rec.LastMove.ID != w.id { |
| + t.Fatalf("last_move %+v", rec.LastMove) |
| + } |
| + if len(w.sw.pages) != 0 { |
| + t.Fatalf("pages fired: %v", w.sw.pages) |
| + } |
| + // The source's lease is free once the move has finished. |
| + held, err := acquireAsAWake(ctx) |
| + if err != nil { |
| + t.Fatalf("data-ie after finish: %v", err) |
| + } |
| + held.Release(ctx) |
| +} |
| + |
| +// requireRetiredAfterFinish: finishing removed the row and nothing parked |
| +// came back or went. |
| +func (w *e2eWorld) requireRetiredAfterFinish(at moves.OfflineReport) { |
| + t := w.t |
| + t.Helper() |
| + park := moves.OfflineParkDir(w.ie.dd, offHost, w.id, moves.OfflineRoleSource) |
| + if !isDir(park) { |
| + t.Fatal("the park directory is gone after finish") |
| + } |
| + for _, rp := range at.Retired { |
| + if rp.Action == moves.RetiredParked && lexists(rp.Path) { |
| + t.Fatalf("%s came back after finish", rp.Path) |
| + } |
| + } |
| + r := w.wd.reportFor(w.id, moves.OfflineRoleSource, "ie-box") |
| + if r.Phase != moves.OfflinePhaseGone { |
| + t.Fatalf("ie-box reports %s after finish, want gone", r.Phase) |
| + } |
| + w.requireParkedBytes() |
| +} |
| + |
| +// A tampered archive fails the landing; open refuses; abort lifts the stop |
| +// and unfences; the source serves again with every row. |
| +func offlineMoveRollback(t *testing.T) { |
| + w := newE2EWorld(t, landOpts{}) |
| + ctx := context.Background() |
| + w.begin() |
| + w.seal() |
| + |
| + // Tamper with the sealed archive in data-uk. |
| + key := moves.OfflineArchivePrefix(offHost, w.id) + offlineArchiveSealed |
| + body, ok := w.sw.fake.Current(sealUK, key) |
| + if !ok || len(body) < 64 { |
| + t.Fatal("fixture: no sealed archive") |
| + } |
| + tampered := bytes.Clone(body) |
| + tampered[len(tampered)/2] ^= 0xff |
| + w.sw.fake.Put(sealUK, key, tampered) |
| + |
| + w.accept("flip", "", provision.OfflineLanding) |
| + var v e2eView |
| + for range 4 { |
| + w.tickAll() |
| + if v = w.status(); v.Failed { |
| + break |
| + } |
| + } |
| + r := w.wd.reportFor(w.id, moves.OfflineRoleTarget, "uk-box") |
| + if !v.Failed || r.Phase != moves.OfflinePhaseFailed || r.Items["files"].OK { |
| + t.Fatalf("the landing of a tampered archive: view %+v, report %s %+v", v, r.Phase, r.Items["files"]) |
| + } |
| + if code, out := w.door("open", ""); code != http.StatusConflict { |
| + t.Fatalf("open on a failed landing = %d %s", code, out) |
| + } |
| + if rt := w.uk.row(offHost); rt == nil || rt.HoldOp != w.id { |
| + t.Fatalf("uk-box's row %+v, want held by the move", rt) |
| + } |
| + |
| + w.accept("abort", "", provision.OfflineReverting) |
| + w.until("the revert", nextIs("finish")) |
| + w.finish("aborted") |
| + w.requireClosedWriteSet("through the abort") |
| + after := w.requireRecordDiff("after the abort") |
| + if r, ok := after["region"]; ok && r != "" { |
| + t.Fatalf("region %v after the abort, want home", r) |
| + } |
| + if _, ok := after["move"]; ok { |
| + t.Fatalf("a move is left on the record: %v", after["move"]) |
| + } |
| + |
| + // The source: the row ready and listed, unfenced, the tombstone gone. |
| + w.tickAll() |
| + rt := w.ie.row(offHost) |
| + if rt == nil || rt.Status != "ready" || rt.HoldOp != "" { |
| + t.Fatalf("ie-box's row after the abort: %+v", rt) |
| + } |
| + if !w.ie.lists(offHost) { |
| + t.Fatal("ie-box does not list the host after the abort") |
| + } |
| + if w.ie.svc.Fenced(offHost) { |
| + t.Fatal("ie-box is still fenced after the abort") |
| + } |
| + w.requireTombstoneLifted() |
| + |
| + // The target: no row; what it extracted is parked, not deleted. |
| + if rt := w.uk.row(offHost); rt != nil { |
| + t.Fatalf("uk-box has a row after the abort: %+v", rt) |
| + } |
| + for _, name := range []string{offHost, offHost + ".env", offHost + ".config.env"} { |
| + if lexists(filepath.Join(w.uk.dd, name)) { |
| + t.Errorf("uk-box keeps %s in place after the abort", name) |
| + } |
| + } |
| + if parked := w.parkedTarget(); !parked[offHost+".config.env"] { |
| + t.Errorf("uk-box parked %v, want what it rendered", parked) |
| + } |
| + if w.uk.lists(offHost) { |
| + t.Fatal("uk-box lists the host after the abort") |
| + } |
| + // Both staging prefixes are empty, and data-uk's own prefix untouched. |
| + for _, p := range []string{activator.MovesPrefix(offHost), moves.OfflineArchivePrefix(offHost, w.id), activator.HibernatePrefix(sealPrefix, offHost) + "/"} { |
| + if got := w.s3.current(t, sealUK, p); len(got) != 0 { |
| + t.Fatalf("data-uk %s holds %v after the abort", p, keysOf(got)) |
| + } |
| + } |
| + |
| + // The source serves again with no write lost: the wake takes the |
| + // lease, the warm cache is the database, and it holds every row; so |
| + // does the replica. |
| + l, err := w.ieEB.Acquire(ctx, *rt) |
| + if err != nil { |
| + t.Fatalf("a wake on ie-box after the abort: %v", err) |
| + } |
| + defer l.Release(ctx) |
| + if fresh, err := w.ieEB.Restore(ctx, *rt); err != nil || fresh { |
| + t.Fatalf("restore on ie-box: fresh %v, %v", fresh, err) |
| + } |
| + if err := lease.CheckDB(rt.DBPath); err != nil { |
| + t.Fatal(err) |
| + } |
| + if n := countRows(t, rt.DBPath); n != w.rows { |
| + t.Fatalf("ie-box's database holds %d rows, want %d", n, w.rows) |
| + } |
| + scratch := filepath.Join(t.TempDir(), "replica.db") |
| + if ok, err := lease.Restore(ctx, scratch, sealIE, activator.HibernatePrefix(sealPrefix, offHost), sealIERegion); err != nil || !ok { |
| + t.Fatalf("restore data-ie's replica: %v %v", ok, err) |
| + } |
| + if n := countRows(t, scratch); n != w.rows { |
| + t.Fatalf("data-ie's replica holds %d rows, want %d", n, w.rows) |
| + } |
| + if len(w.sw.pages) != 0 { |
| + t.Fatalf("pages fired: %v", w.sw.pages) |
| + } |
| +} |
| + |
| +// parkedTarget is the base names uk-box parked for the move. |
| +func (w *e2eWorld) parkedTarget() map[string]bool { |
| + out := map[string]bool{} |
| + for _, role := range []string{moves.OfflineRoleTarget, moves.OfflineParkTargetBefore} { |
| + ents, _ := os.ReadDir(moves.OfflineParkDir(w.uk.dd, offHost, w.id, role)) |
| + for _, e := range ents { |
| + out[e.Name()] = true |
| + } |
| + } |
| + return out |
| +} |