carlos / platform Public

WIP claim Plan 14 Part 1 fix round 1 (not for merge): release-dir modes, digest binding, reader liveness, replay bounds, root-owned named-unit sources for record-less units, census and test fixes

Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
codex agent, operated by paul@keymail.dev pushed by claude agent, operated by paul@keymail.dev 127a1591f0986833ddce7d8221bc1d664e9003ea parent 01cfa04
33 files changed, +1483 −127
  • internal/host/plan14_backend_source_test.go +2 −1
  • internal/host/plan14_canonical_restart_test.go +2 −2
  • internal/host/plan14_root_fixture_linux_test.go +75 −0
  • internal/host/proofbinding.go +52 −19
  • internal/host/proofbinding_provenance_linux_test.go +77 −0
  • internal/host/proofbinding_test.go +0 −46
  • internal/host/proofduplicate_linux_test.go +96 −0
  • internal/host/proofnamed.go +201 −0
  • internal/host/proofnamed_linux_test.go +209 −0
  • internal/host/proofobserve.go +1 −1
  • internal/host/releaseinit_linux_test.go +90 −0
  • internal/host/rootexecution_launch_linux_test.go +24 −1
  • internal/host/rootrestart.go +33 −4
  • internal/host/rootrollback.go +16 −12
  • internal/host/rootrollback_process_test.go +1 −1
  • internal/host/rootroute.go +6 −1
  • internal/hostexec/live_test.go +134 −0
  • internal/hostexec/plan14_root_participation_test.go +4 −6
  • internal/hostexec/replay_window_test.go +110 −0
  • internal/hostexec/rootbroker.go +26 −10
  • internal/hostexec/rootbroker_lifetime_test.go +2 −7
  • internal/hostexec/rootread.go +5 −13
  • internal/provision/plan14_root_reads_test.go +7 −0
  • internal/provision/plan9_b8_census_test.go +4 −3
  • internal/provision/testdata/plan14-root-reads-fix1.tsv +134 −0
  • internal/release/healthy_root.go +3 −0
  • internal/rootstate/file_linux.go +11 −0
  • internal/rootstate/file_other.go +2 −0
  • internal/rootstate/live.go +22 −0
  • internal/rootstate/live_linux.go +56 −0
  • internal/rootstate/live_linux_test.go +22 −0
  • internal/rootstate/shared_linux.go +54 −0
  • internal/rootstate/state_other.go +2 −0

CI failed — run details

CI log
=== gate ===
cd launchctx && go vet ./... && go test ./... -count=1
ok  	amadan.net/carlos/platform.git/launchctx	0.011s
?   	amadan.net/carlos/platform.git/launchctx/controlname	[no test files]
?   	amadan.net/carlos/platform.git/launchctx/wireid	[no test files]
go vet ./...
gofmt -l .: clean
go test ./... -count=1 -timeout 30m
ok  	github.com/carlosframework/platform	339.045s
?   	github.com/carlosframework/platform/cmd/changelog	[no test files]
ok  	github.com/carlosframework/platform/cmd/console	3.185s
ok  	github.com/carlosframework/platform/cmd/moveprobe	92.268s
ok  	github.com/carlosframework/platform/internal/activator	227.314s
ok  	github.com/carlosframework/platform/internal/agentsock	0.017s
ok  	github.com/carlosframework/platform/internal/alerting	0.004s
ok  	github.com/carlosframework/platform/internal/analytics	0.019s
ok  	github.com/carlosframework/platform/internal/appconfig	2.380s
ok  	github.com/carlosframework/platform/internal/apperr	0.081s
ok  	github.com/carlosframework/platform/internal/applog	0.129s
ok  	github.com/carlosframework/platform/internal/awsinv	0.003s
ok  	github.com/carlosframework/platform/internal/boxchoice	0.004s
ok  	github.com/carlosframework/platform/internal/boxid	0.576s
?   	github.com/carlosframework/platform/internal/boxid/boxidtest	[no test files]
?   	github.com/carlosframework/platform/internal/boxid/internal/signtest	[no test files]
ok  	github.com/carlosframework/platform/internal/boxvolumes	0.008s
ok  	github.com/carlosframework/platform/internal/caps	0.012s
ok  	github.com/carlosframework/platform/internal/certwarm	0.002s
ok  	github.com/carlosframework/platform/internal/cgroup	0.200s
ok  	github.com/carlosframework/platform/internal/changelog	0.303s
ok  	github.com/carlosframework/platform/internal/clamd	0.054s
?   	github.com/carlosframework/platform/internal/cliflag	[no test files]
2026/10/13 13:00:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:53 console: account fleet bab: open registry: unable to open database file (14)
2026/10/13 13:00:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:53 console: account fleet bab: fleet view: bucket having a moment
2026/10/13 13:00:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: backfilled account manifest for bab (ops)
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: backfilled account manifest for bab (ops)
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: backfilled account manifest for bab (ops)
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: backfilled account manifest for bab (ops)
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: backfilled account manifest for bab (ops)
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: alert watch: no keymail grant for ops-b@keymail.dev — not notified (they must sign in to the console once)
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: alert watch: no keymail grant for ops-b@keymail.dev — not notified (they must sign in to the console once)
2026/10/13 13:00:54 console: alert watch: no keymail grant for ops-b@keymail.dev — not notified (they must sign in to the console once)
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: alert watch: no keymail grant for ops-b@keymail.dev — not notified (they must sign in to the console once)
2026/10/13 13:00:54 console: alert watch: keymail box-a/disk to ops-a@keymail.dev: context deadline exceeded
2026/10/13 13:00:54 console: alert watch: no keymail grant for ops-b@keymail.dev — not notified (they must sign in to the console once)
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: alert watch: keymail box-a/disk to ops-b@keymail.dev: context deadline exceeded
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: alert watch: no keymail grant for ops-b@keymail.dev — not notified (they must sign in to the console once)
2026/10/13 13:00:54 console: alert watch: box-a/disk transition dropped — no operator holds a keymail grant
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: alert watch: no keymail grant for ops-b@keymail.dev — not notified (they must sign in to the console once)
2026/10/13 13:00:54 console: alert watch: unparsable alerts/boxes/box-junk.json: invalid character 'n' looking for beginning of object key string
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: alert watch: no keymail grant for ops-b@keymail.dev — not notified (they must sign in to the console once)
2026/10/13 13:00:54 console: alert watch: no keymail grant for ops-b@keymail.dev — not notified (they must sign in to the console once)
2026/10/13 13:00:54 console: alert watch: no keymail grant for ops-b@keymail.dev — not notified (they must sign in to the console once)
2026/10/13 13:00:54 console: alert watch: no keymail grant for ops-b@keymail.dev — not notified (they must sign in to the console once)
2026/10/13 13:00:54 console: alert watch: no keymail grant for ops-b@keymail.dev — not notified (they must sign in to the console once)
2026/10/13 13:00:54 console: alert watch: no keymail grant for ops-b@keymail.dev — not notified (they must sign in to the console once)
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: app region bab/gamma:  (default)
2026/10/13 13:00:54 console: backfilled account manifest for bab (ops)
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:00:55 console: backfilled account manifest for bab (ops)
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: backfilled account manifest for bab (ops)
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:00:55 console: backfilled account manifest for bab (ops)
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: app region bab/piped:  (default)
2026/10/13 13:00:55 console: backfilled account manifest for bab (ops)
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: api channels bab/widget: pipeline read: pipeline wrapper: invalid character 'o' in literal null (expecting 'u')
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: could not notify alice@keymail.dev of a CLI token issue: Post "http://127.0.0.1:42139/api/app/send": dial tcp 127.0.0.1:42139: connect: connection refused
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:55 console: could not notify alice@keymail.dev of a CLI token issue: Post "http://127.0.0.1:34899/api/app/send": dial tcp 127.0.0.1:34899: connect: connection refused
2026/10/13 13:00:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:56 console: app region bab/piped:  (default)
2026/10/13 13:00:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:00:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:56 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:00:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:56 console: api promote titogo abc1234 -> beta: promote titogo abc1234 -> beta: beta is entered from edge only, and this build is on no rung yet — use --hotfix to bypass the ladder
2026/10/13 13:00:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:56 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:00:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: bab/titogo is in the trash in the bucket; marking it trashed here
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: trashed bab/titogo: settle: release: read trash marker for bab/titogo: AccessDenied: s3://carlos-prod-secret/deleted.json request id ABC123
2026/10/13 13:00:58 console: bab/titogo is in the trash in the bucket; marking it trashed here
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: api trash bab/titogo: production flag: AccessDenied: s3://carlos-prod-secret/production.json request id ABC123
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: could not notify alice@keymail.dev of a CLI token issue: Post "http://127.0.0.1:46363/api/app/send": dial tcp 127.0.0.1:46363: connect: connection refused
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: app region bab/paul:  (default)
2026/10/13 13:00:58 console: backfilled account manifest for bab (ops)
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: app region bab/titogo:  (default)
2026/10/13 13:00:58 console: backfilled account manifest for bab (ops)
2026/10/13 13:00:58 console: app region bab/unplaced:  (default)
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: app region bab/titogo:  (default)
2026/10/13 13:00:58 console: claim bab/titogo: set placement fleet/pi: SQL logic error: no such column: placement (1)
2026/10/13 13:00:58 console: backfilled account manifest for bab ()
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: app region bab/app-0:  (default)
2026/10/13 13:00:58 console: backfilled account manifest for bab (ops)
2026/10/13 13:00:58 console: app region bab/app-1:  (default)
2026/10/13 13:00:58 console: app region bab/app-2:  (default)
2026/10/13 13:00:58 console: app region bab/app-3:  (default)
2026/10/13 13:00:58 console: app region bab/app-4:  (default)
2026/10/13 13:00:58 console: app region bab/app-5:  (default)
2026/10/13 13:00:58 console: app region bab/app-6:  (default)
2026/10/13 13:00:58 console: app region bab/bob-fresh:  (default)
2026/10/13 13:00:58 console: app region bab/via-browser:  (default)
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:58 console: api ship bab/console: read app flags: SQL logic error: no such column: build_probe (1)
2026/10/13 13:00:58 console: could not notify paul@keymail.dev of a CLI token issue: Post "http://127.0.0.1:34835/api/app/send": dial tcp 127.0.0.1:34835: connect: connection refused
2026/10/13 13:00:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:00:59 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: could not notify alice@keymail.dev of a CLI token issue: Post "http://127.0.0.1:43265/api/app/send": read tcp 127.0.0.1:54938->127.0.0.1:43265: read: connection reset by peer
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: api config apply bab/titogo (default): config: titogo has no default bundle — nothing to unset
2026/10/13 13:01:00 console: api config apply bab/titogo (staging): config: titogo has no staging bundle — nothing to unset
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
2026/10/13 13:01:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
2026/10/13 13:01:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 console: api db bab/titogo/acme.go.tito.io: list level 0: api error AccessDenied: no access to secret-bucket
2026/10/13 13:01:01 console: api db bab/titogo/acme.go.tito.io: open level 0 1-1: api error AccessDenied: no access to secret-bucket
2026/10/13 13:01:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:01 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:01 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:02 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
2026/10/13 13:01:02 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
2026/10/13 13:01:02 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
2026/10/13 13:01:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:02 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:02 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:02 console: could not notify bob@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:02 console: api db bab/titogo/acme.go.tito.io: stream level 0 1-1: context canceled
2026/10/13 13:01:02 console: api db bab/titogo/acme.go.tito.io: stream level 0 1-1: context canceled
2026/10/13 13:01:02 console: api db bab/titogo/acme.go.tito.io: stream level 0 1-1: context canceled
2026/10/13 13:01:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:02 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:02 console: api db bab/titogo/acme.go.tito.io: stream level 0 1-1: context canceled
2026/10/13 13:01:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:02 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:02 console: api db bab/titogo/acme.go.tito.io: stream level 0 1-1: write tcp 127.0.0.1:44461->127.0.0.1:33272: i/o timeout
2026/10/13 13:01:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:02 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:02 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000003
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000003 maxTXID=0000000000000003 size=454
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000003 txid.db=0000000000000003
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
2026/10/13 13:01:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
2026/10/13 13:01:03 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
2026/10/13 13:01:03 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
2026/10/13 13:01:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:04 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:01:04 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:01:04 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:01:04 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000002
2026/10/13 13:01:04 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000002 maxTXID=0000000000000002 size=370
2026/10/13 13:01:04 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000002 txid.db=0000000000000002
2026/10/13 13:01:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:04 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:04 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:04 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:04 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:04 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:05 console: api rollback km canary/x: rollback: km canary/x would go back to v1, which has no signed digest. Run carlos channels resign --app km canary/x first, or promote a newer build
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:06 console: CARLOS_ACME_DELEGATION_ZONE "*.bad zone" is not a valid domain — delegation off, wildcard-enable requests refuse with "no delegation zone configured" until it's fixed
2026/10/13 13:01:06 console: CARLOS_ACME_DELEGATION_ZONE "-leading-hyphen.example.com" is not a valid domain — delegation off, wildcard-enable requests refuse with "no delegation zone configured" until it's fixed
2026/10/13 13:01:06 console: CARLOS_ACME_DELEGATION_ZONE "has a space.example.com" is not a valid domain — delegation off, wildcard-enable requests refuse with "no delegation zone configured" until it's fixed
2026/10/13 13:01:07 console: CARLOS_ACME_DELEGATION_ZONE "*.bad zone" is not a valid domain — delegation off, wildcard-enable requests refuse with "no delegation zone configured" until it's fixed
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: door keys bab/titogo: database revision 1 was below the bucket's 99; advanced past it
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:07 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: door keys bab/titogo: database revision 2 was below the bucket's 7; advanced past it
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: door keys bab/titogo: overwriting an unverifiable object: invalid character 'o' in literal null (expecting 'u')
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: door keys bab/titogo: overwriting an unverifiable object: doorkey: bad signature
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: api features block bab/titogo: features at apps/bab/titogo/features.json: unknown schema 9
2026/10/13 13:01:08 console: api features get bab/titogo: features at apps/bab/titogo/features.json: unknown schema 9
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:08 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:09 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:10 console: api instance move bab/titogo/acme.go.tito.io: termination fence of uk-box: hostactors: roster authority refused
2026/10/13 13:01:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:10 console: api instance move bab/titogo/acme.go.tito.io: begin move mv_ruy2wajqnad2v6zrgtuiyfoa5m: hostops: identity mismatch
2026/10/13 13:01:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:10 console: api instance move bab/titogo/acme.go.tito.io: the claim is moving under mv_cdx4iklenhtpo2o62dpzqtqsae but the record start failed: secret-detail: record put failed
2026/10/13 13:01:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:10 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:11 console: api instances delete bab/titogo/acme.go.tito.io: provision: claim retirement unavailable
2026/10/13 13:01:11 console: api instances delete bab/titogo/acme.go.tito.io: provision: claim retirement unavailable
2026/10/13 13:01:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:11 console: api instance move bab/titogo/acme.go.tito.io: typed move write refused: hostops: identity mismatch
2026/10/13 13:01:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:11 console: api instance move bab/titogo/acme.go.tito.io: typed move write refused: hostops: identity mismatch
2026/10/13 13:01:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:11 console: api instance move bab/titogo/acme.go.tito.io: typed move write refused: hostops: identity mismatch
2026/10/13 13:01:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:11 console: api instance move bab/titogo/acme.go.tito.io: typed move write refused: hostops: identity mismatch
2026/10/13 13:01:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:11 console: api instance move bab/titogo/acme.go.tito.io: typed move write refused: hostops: identity mismatch
2026/10/13 13:01:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:11 console: api instance move bab/titogo/acme.go.tito.io: typed move write refused: hostops: identity mismatch
2026/10/13 13:01:11 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:11 console: api instance move bab/titogo/acme.go.tito.io: typed move write refused: hostops: identity mismatch
2026/10/13 13:01:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:12 console: api instance move bab/titogo/acme.go.tito.io: typed move write refused: hostops: identity mismatch
2026/10/13 13:01:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:12 console: api instance move bab/titogo/acme.go.tito.io: typed move write refused: hostops: identity mismatch
2026/10/13 13:01:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:12 console: api instance move bab/titogo/acme.go.tito.io: typed move write refused: hostclaim: transition not legal from the claim's state
2026/10/13 13:01:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:12 console: api instance move bab/titogo/acme.go.tito.io: typed move write refused: hostops: pending
2026/10/13 13:01:12 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:13 console: api instance move bab/titogo/acme.go.tito.io: typed move write refused: hostclaim: transition not legal from the claim's state
2026/10/13 13:01:13 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:14 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:15 console: api instance move bab/titogo/acme.go.tito.io: declared loss refused: hostresolve: evidence or operation does not authorize resolution
2026/10/13 13:01:15 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:16 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:17 edges: box "uk-box" has an edges file under control/edges/ but no status snapshot at all, so no region outside the home is automatically eligible until it reports; said once
2026/10/13 13:01:17 edges: 1 edges file(s) under control/edges/ but no fresh box snapshot matched any of them, so automatic region placement sees the home alone (are edges and status in different buckets? see CARLOS_STATUS_BUCKET/CARLOS_STATUS_PREFIX)
2026/10/13 13:01:17 console: an incomplete read of the edges files or box snapshots (edges complete true, snapshots complete false), so no region outside the home is automatically eligible this request; said once
2026/10/13 13:01:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:18 edges: could not read control/edges/se-box.json for the placement join: read timeout
2026/10/13 13:01:18 edges: could not read control/edges/se-box.json for the placement join: read timeout
2026/10/13 13:01:18 edges: box "se-box" has a fresh status snapshot but no edges file under control/edges/, so no region outside the home is automatically eligible until it publishes one; said once
2026/10/13 13:01:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:18 console: api instance move bab/titogo/acme.go.tito.io: protocol floor: moves: read floor: read timeout
2026/10/13 13:01:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:19 console: api instance move bab/titogo/acme.go.tito.io: termination fence of ie-box: secret-detail: fence store down
2026/10/13 13:01:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:19 console: api instance move bab/titogo/acme.go.tito.io: termination fence of ie-box: hostactors: roster authority refused
2026/10/13 13:01:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:20 console: api instance move bab/titogo/acme.go.tito.io: host roster: dirstore: control/host-actors.json: file does not exist
2026/10/13 13:01:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:20 console: api instance move bab/titogo/acme.go.tito.io: host roster: hostactors: roster authority refused
2026/10/13 13:01:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:20 console: api instance move bab/titogo/acme.go.tito.io: host roster: hostactors: roster authority refused
2026/10/13 13:01:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:20 console: api instance move bab/titogo/acme.go.tito.io: host roster: hostactors: roster authority refused
2026/10/13 13:01:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:20 console: api instance move bab/titogo/acme.go.tito.io: storage binding: read timeout
2026/10/13 13:01:20 console: api instance move bab/titogo/acme.go.tito.io: manifest: read timeout
2026/10/13 13:01:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:20 console: api instance move bab/titogo/acme.go.tito.io: the claim is moving under mv_4k4il7hsmol4omomelo3hiuoly but the record write failed: write timeout
2026/10/13 13:01:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:21 console: api instance move bab/titogo/acme.go.tito.io: the claim is moving under mv_rkommvatv6j33zmgoogn6afcke but the record write failed: write timeout
2026/10/13 13:01:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:21 console: api instance move bab/titogo/acme.go.tito.io: the claim is moving under mv_jgql42bdbsprnf27a5d4cgcrom but the record write failed: write timeout
2026/10/13 13:01:21 console: api instance move bab/titogo/acme.go.tito.io: move mv_jgql42bdbsprnf27a5d4cgcrom: record reread: read timeout; the claim is left moving
2026/10/13 13:01:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:21 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 provision: minted instance route acme.go.tito.io (app "titogo" acct "kam")
2026/10/13 13:01:23 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 console: app region bab/titogo:  (default)
2026/10/13 13:01:23 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 status: fleet: skipping status/boxes/broken.json: corrupt snapshot: invalid character 'n' looking for beginning of object key string
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: api instances create bab/titogo/acme.go.tito.io: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:24 console: api instances manifest bab/titogo: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:24 console: api instances delete bab/titogo/acme.go.tito.io: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 edges: skipping control/edges/broken.json in the placement join: not a versioned edges file
2026/10/13 13:01:24 edges: skipping control/edges/old.json in the placement join: not a versioned edges file
2026/10/13 13:01:24 edges: skipping control/edges/broken.json in the placement join: not a versioned edges file
2026/10/13 13:01:24 edges: skipping control/edges/old.json in the placement join: not a versioned edges file
2026/10/13 13:01:24 edges: skipping control/edges/broken.json in the placement join: not a versioned edges file
2026/10/13 13:01:24 edges: skipping control/edges/old.json in the placement join: not a versioned edges file
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: api instances create bab/titogo: host claim check junk-titogo.bab.oncarlos.test: domains: claim junk-titogo.bab.oncarlos.test: invalid character 'o' in literal null (expecting 'u')
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: api instances create bab/titogo: pipeline read: pipeline wrapper: invalid character 'o' in literal null (expecting 'u')
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 provision: minted instance route hub.kam.oncarlos.test (app "hub" acct "kam")
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:26 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:27 console: ledger append bab/titogo/carbon: ledger: append lost 4 CAS races: ledger: append contention: dirstore: ledgers/bab/titogo/carbon/entries/20261013T130127Z-04a995011923.json exists: store: compare-and-swap conflict
2026/10/13 13:01:27 console: ledger publish bab/titogo: store: compare-and-swap conflict
2026/10/13 13:01:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:27 console: ledger append bab/titogo/carbon: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:27 console: ledger publish bab/titogo: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:27 console: ledger list bab/titogo: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:27 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:27 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: could not notify random-operator@keymail.dev of a CLI token issue: Post "http://127.0.0.1:45105/api/app/send": dial tcp 127.0.0.1:45105: connect: connection refused
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: app region bab/widget:  (default)
2026/10/13 13:01:29 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: api pipeline get bab/widget: pipeline wrapper: invalid character 'o' in literal null (expecting 'u')
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:29 console: app region bab/widget:  (default)
2026/10/13 13:01:29 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: api pipeline put bab/widget: set: store: compare-and-swap conflict
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: api pipeline put bab/widget: set: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation 134d27c5a7aa7e42, op 1)
2026/10/13 13:01:30 console: relay disabled bab/titogo by alice@keymail.dev (op 2)
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation 0f3a46ed61e90293, op 1)
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation 654d865d1b83eb67, op 1)
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation ec1fb00f3171451c, op 1)
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation bad41ec444a5b4b7, op 1)
2026/10/13 13:01:30 console: relay rotated eu-west-1 to kid k2, re-issued 1 app(s)
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation 5dc2980c94cfa302, op 1)
2026/10/13 13:01:30 console: relay rotated eu-west-1 to kid k2, re-issued 1 app(s)
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation 0f58d666f226adf2, op 1)
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation 7f7034602a79b902, op 1)
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: relay enabled bab/titogo in eu-west-1 by alice@keymail.dev (incarnation cf307acf211aea1a, op 1)
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: could not notify alice@keymail.dev of a CLI token issue: Post "http://127.0.0.1:43439/api/app/send": dial tcp 127.0.0.1:43439: connect: connection refused
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: could not notify alice@keymail.dev of a CLI token issue: Post "http://127.0.0.1:36125/api/app/send": dial tcp 127.0.0.1:36125: connect: connection reset by peer
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: api scan sweep bab/titogo: objstore: object scanning is disabled for this deployment (bab/titogo)
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: api schedule status bab/titogo: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: api schedule status bab/titogo: apps/bab/titogo/schedule-status/bad.bab.oncarlos.com.json: invalid character 'n' looking for beginning of object key string
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:34 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: api sidecars create bab/titogo/bot: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:35 console: api sidecars manifest bab/titogo: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:35 console: api sidecars list bab/titogo: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:35 console: api sidecars delete bab/titogo/bot: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:35 console: api sidecars create bab/titogo: open registry: unable to open database file (14)
2026/10/13 13:01:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: app region bab/afterstatus:  (default)
2026/10/13 13:01:36 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: could not notify eve@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: could not notify owner@example.teſt of a CLI token issue: Post "http://127.0.0.1:41469/api/app/send": dial tcp 127.0.0.1:41469: connect: connection refused
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: store decision bab: no keymail grant for paul@keymail.dev — not notified (they must sign in to the console once)
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: store decision bab: no keymail grant for paul@keymail.dev — not notified (they must sign in to the console once)
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:36 console: api store approvals: list entitlements: list unavailable
2026/10/13 13:01:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: api store approvals: read store/entitlements/bab.json: objstore: store/entitlements/bab.json: invalid character 'o' in literal null (expecting 'u')
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: api store provision bab/titogo: objstore: ensure bucket carlos-bab-titogo: backend detail must stay private
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:37 console: api store provision bab: read entitlement: objstore: store/entitlements/bab.json: invalid character 'p' looking for beginning of value
2026/10/13 13:01:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: could not notify alice@keymail.dev of a CLI token issue: Post "http://127.0.0.1:42869/api/app/send": dial tcp 127.0.0.1:42869: connect: connection refused
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: api store grant bab/titogo (bucket "other-uploads"): objstore: bucket or IAM user name belongs to another store: other-uploads
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: api store seal key: CARLOS_SECRETS_PUBKEY: invalid base64: illegal base64 data at input byte 3
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: api store rotate bab/titogo: dirstore: apps/bab/titogo/store.json moved on: store: compare-and-swap conflict
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:38 console: api store grant bab/titogo (bucket ""): objstore: ensure bucket carlos-bab-titogo: AccessDenied: arn:aws:s3:::carlos-bab-titogo — status code 403, request id 8EXAMPLE7
2026/10/13 13:01:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: object scanning disabled deployment-wide by alice@keymail.dev
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: object scanning enabled deployment-wide by alice@keymail.dev
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: object scanning enabled deployment-wide by alice@keymail.dev
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: could not notify alice@keymail.dev of a CLI token issue: Post "http://127.0.0.1:41719/api/app/send": dial tcp 127.0.0.1:41719: connect: connection refused
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: api system antivirus: read: release: system/antivirus.json: schema 99 is not 1
2026/10/13 13:01:39 console: api system antivirus: replacing an unreadable record on disable: release: system/antivirus.json: schema 99 is not 1
2026/10/13 13:01:39 console: object scanning disabled deployment-wide by alice@keymail.dev
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: geoip publish refused: geoip database refused: not a valid MaxMind-format database
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: geoip upload: unexpected EOF
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:01:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:39 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:01:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:40 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:01:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:42 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:42 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:42 console: api system: role: SQL logic error: no such table: memberships (1)
2026/10/13 13:01:42 console: api system: role: SQL logic error: no such table: memberships (1)
2026/10/13 13:01:42 console: api system: role: SQL logic error: no such table: memberships (1)
2026/10/13 13:01:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:42 console: api system: list fleets: unable to open database file (14) — reporting the platform's own boxes only
2026/10/13 13:01:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:43 console: api system status: canary pointer: system pointer does not verify: system pointer router/canary: signature does not verify
2026/10/13 13:01:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:45 console: SystemFeed is only partly configured (latest_url=false download_base=true pub_key=false) — a feed is all three or none, so this console is using the vendor feed instead
2026/10/13 13:01:45 console: SystemFeed is only partly configured (latest_url=false download_base=true pub_key=true) — a feed is all three or none, so this console is using the vendor feed instead
2026/10/13 13:01:45 console: SystemFeed is only partly configured (latest_url=false download_base=false pub_key=true) — a feed is all three or none, so this console is using the vendor feed instead
2026/10/13 13:01:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:45 console: could not notify paul@keymail.dev of a CLI token issue: Post "http://127.0.0.1:43133/api/app/send": dial tcp 127.0.0.1:43133: connect: connection refused
2026/10/13 13:01:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:45 console: app region bab/tmp-docs:  (default)
2026/10/13 13:01:45 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:45 console: app region bab/tmp-docs:  (default)
2026/10/13 13:01:45 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:45 console: could not notify paul@keymail.dev of a CLI token issue: Post "http://127.0.0.1:36387/api/app/send": dial tcp 127.0.0.1:36387: connect: connection refused
2026/10/13 13:01:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:45 console: app region bab/tmp-other:  (default)
2026/10/13 13:01:45 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:45 console: temporary create bab/tmp-blind: routes: unable to open database file (14)
2026/10/13 13:01:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:45 console: app region bab/tmp-race2:  (default)
2026/10/13 13:01:45 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:45 console: app region bab/tmp-race1:  (default)
2026/10/13 13:01:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:45 console: app region bab/tmp-ci:  (default)
2026/10/13 13:01:45 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:45 console: app region bab/tmp-b0:  (default)
2026/10/13 13:01:45 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:45 console: app region bab/tmp-b1:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b2:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b3:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b4:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b5:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b6:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b7:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b8:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b9:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b10:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b11:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b12:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b13:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b14:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b15:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b16:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b17:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b18:  (default)
2026/10/13 13:01:45 console: app region bab/tmp-b19:  (default)
2026/10/13 13:01:45 console: app region bab/permanent-one:  (default)
2026/10/13 13:01:45 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: bab/tmp-a is in the trash in the bucket; marking it trashed here
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: bab/tmp-a is in the trash in the bucket; marking it trashed here
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: bab/tmp-b is in the trash in the bucket; marking it trashed here
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: api updates bab/km/a.example.com: enable refused, not every box applies update settings: ie-1: runs a binary that does not apply update settings
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: api updates bab/km/a.example.com: enable refused, the box inventory could not be read: edges records: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: api updates bab/km/a.example.com: enable refused, not every box applies update settings: ie-1: runs a binary that does not apply update settings
2026/10/13 13:01:46 console: api updates bab/km/a.example.com: enable refused, not every box applies update settings: ie-1: runs a binary that does not apply update settings
2026/10/13 13:01:46 console: api updates bab/km/a.example.com: enable refused, not every box applies update settings: ie-1: runs a binary that does not apply update settings
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: api updates bab/km/a.example.com: promotion record v2: promotion record km/v2: signature verification failed
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:46 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:46 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: api updates install bab/km/a.example.com: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: api updates bab/km policy: enable refused, not every box applies update settings: ie-1: runs a binary that does not apply update settings
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: api updates bab/km policy: enable refused, not every box applies update settings: ie-1: runs a binary that does not apply update settings
2026/10/13 13:01:47 console: api updates bab/km policy: enable refused, not every box applies update settings: ie-1: runs a binary that does not apply update settings
2026/10/13 13:01:47 console: api updates bab/km policy: enable refused, not every box applies update settings: ie-1: runs a binary that does not apply update settings
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: api updates bab/km policy: enable refused, the box inventory could not be read: edges records: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: api updates policy bab/km: manifest: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: api updates policy bab/km: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: api version-target set bab/km: version target: write: AccessDenied: s3://carlos-prod-secret-bucket/version-target request id ABC123
2026/10/13 13:01:47 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:47 console: could not notify eve@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: api releases list bab/km: tags: AccessDenied: s3://carlos-prod-secret-bucket/tags request id DEF456
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: app region bab/existing-site:  (default)
2026/10/13 13:01:48 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: app region bab/existing-site:  (default)
2026/10/13 13:01:48 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: app region bab/existing-site:  (default)
2026/10/13 13:01:48 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: app region bab/fresh-site:  (default)
2026/10/13 13:01:48 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: app region bab/console:  (default)
2026/10/13 13:01:48 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: app region bab/console:  (default)
2026/10/13 13:01:48 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:48 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:49 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: store destroy bab/kass: objstore: empty bucket carlos-bab-kass: backend unreachable
2026/10/13 13:01:50 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: settings mail read bab/kass: AccessDenied: s3://carlos-releases/apps/.../email.json request id XYZ
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:50 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: architecture refresh: console: infra inventory disabled for this process
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: architecture: registry: unable to open database file (14)
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: architecture: fleet view: bucket having a bad moment
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: instances manifest bab/kass: AccessDenied: s3://carlos-prod-secret-bucket/ledgers request id ABC123
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:52 console: app region bab/svc-a0:  (default)
2026/10/13 13:01:52 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:52 console: app region bab/svc-a1:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a2:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a3:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a4:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a5:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a6:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a7:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a8:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a9:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a10:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a11:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a12:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a13:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a14:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a15:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a16:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a17:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a18:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a19:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a20:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a21:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a22:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a23:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a24:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a25:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a26:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a27:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a28:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a29:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a30:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a31:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a32:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a33:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a34:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a35:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a36:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a37:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a38:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a39:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a40:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a41:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a42:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a43:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a44:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a45:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a46:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a47:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a48:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a49:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a50:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a51:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a52:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a53:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a54:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a55:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a56:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a57:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a58:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a59:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a60:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a61:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a62:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a63:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a64:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a65:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a66:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a67:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a68:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a69:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a70:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a71:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a72:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a73:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a74:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a75:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a76:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a77:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a78:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a79:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a80:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a81:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a82:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a83:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a84:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a85:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a86:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a87:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a88:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a89:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a90:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a91:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a92:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a93:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a94:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a95:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a96:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a97:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a98:  (default)
2026/10/13 13:01:52 console: app region bab/svc-a99:  (default)
2026/10/13 13:01:52 console: app region bab/mine:  (default)
2026/10/13 13:01:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:52 console: app region bab/rot-a0:  (default)
2026/10/13 13:01:52 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:52 console: app region bab/rot-a1:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a2:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a3:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a4:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a5:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a6:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a7:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a8:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a9:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a10:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a11:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a12:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a13:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a14:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a15:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a16:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a17:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a18:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a19:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a20:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a21:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a22:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a23:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a24:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a25:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a26:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a27:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a28:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a29:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a30:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a31:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a32:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a33:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a34:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a35:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a36:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a37:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a38:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a39:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a40:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a41:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a42:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a43:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a44:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a45:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a46:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a47:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a48:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a49:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a50:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a51:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a52:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a53:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a54:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a55:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a56:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a57:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a58:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a59:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a60:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a61:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a62:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a63:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a64:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a65:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a66:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a67:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a68:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a69:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a70:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a71:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a72:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a73:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a74:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a75:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a76:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a77:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a78:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a79:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a80:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a81:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a82:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a83:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a84:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a85:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a86:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a87:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a88:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a89:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a90:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a91:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a92:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a93:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a94:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a95:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a96:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a97:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a98:  (default)
2026/10/13 13:01:52 console: app region bab/rot-a99:  (default)
2026/10/13 13:01:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:52 console: app region bab/person-a0:  (default)
2026/10/13 13:01:52 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:52 console: app region bab/person-a1:  (default)
2026/10/13 13:01:52 console: app region bab/person-a2:  (default)
2026/10/13 13:01:52 console: app region bab/person-a3:  (default)
2026/10/13 13:01:52 console: app region bab/person-a4:  (default)
2026/10/13 13:01:52 console: app region bab/person-a5:  (default)
2026/10/13 13:01:52 console: app region bab/person-a6:  (default)
2026/10/13 13:01:52 console: app region bab/person-a7:  (default)
2026/10/13 13:01:52 console: app region bab/person-a8:  (default)
2026/10/13 13:01:52 console: app region bab/person-a9:  (default)
2026/10/13 13:01:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:52 console: app region bab/hub-a-0:  (default)
2026/10/13 13:01:52 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:52 console: app region bab/hub-a-1:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-2:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-3:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-4:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-5:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-6:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-7:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-8:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-9:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-10:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-11:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-12:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-13:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-14:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-15:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-16:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-17:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-18:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-19:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-20:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-21:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-22:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-23:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-24:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-25:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-26:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-27:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-28:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-29:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-30:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-31:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-32:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-33:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-34:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-35:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-36:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-37:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-38:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-39:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-40:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-41:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-42:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-43:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-44:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-45:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-46:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-47:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-48:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-49:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-50:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-51:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-52:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-53:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-54:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-55:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-56:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-57:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-58:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-59:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-60:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-61:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-62:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-63:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-64:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-65:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-66:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-67:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-68:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-69:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-70:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-71:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-72:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-73:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-74:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-75:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-76:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-77:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-78:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-79:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-80:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-81:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-82:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-83:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-84:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-85:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-86:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-87:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-88:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-89:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-90:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-91:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-92:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-93:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-94:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-95:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-96:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-97:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-98:  (default)
2026/10/13 13:01:52 console: app region bab/hub-a-99:  (default)
2026/10/13 13:01:52 console: app region bab/hub-b-fresh:  (default)
2026/10/13 13:01:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:52 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:53 console: materialized account bac (Kass) from the bucket
2026/10/13 13:01:53 console: materialized account bac (Legacy) from the bucket
2026/10/13 13:01:53 console: account bac 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> bac --role owner
2026/10/13 13:01:53 console: materialized account bac (Typo) from the bucket
2026/10/13 13:01:53 console: accounts/bac/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> bac --role owner`
2026/10/13 13:01:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:53 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:53 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:53 console: production flag kass: production flag wrapper: invalid character 'n' looking for beginning of object key string
2026/10/13 13:01:53 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:53 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:53 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:54 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:55 edges: skipping control/edges/broken.json in the placement join: not a versioned edges file
2026/10/13 13:01:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: move door: read the identity record of uk-b: read timeout
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: api updates bab/kass/web.kass.carlosapp.dev: enable refused, not every box applies update settings: linus-marquetry: runs a binary that does not apply update settings
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:01:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:58 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:01:58 console: materialized account bac (Account) from the bucket
2026/10/13 13:01:59 console: audit geoip off platform: sql: no rows in result set
2026/10/13 13:01:59 console: geoip publish refused: geoip database refused: not a valid MaxMind-format database
2026/10/13 13:02:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:02:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:02:00 console: mail push: bab/kass: hostops: identity mismatch
2026/10/13 13:02:00 console: mail push: bab/kass: hostops: identity mismatch
2026/10/13 13:02:00 console: api config apply bab/kass (default): hostops: identity mismatch
2026/10/13 13:02:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:02:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:02:00 console: mail push: bab/kass: hostops: identity mismatch
2026/10/13 13:02:00 console: api config apply bab/kass (default): hostops: identity mismatch
2026/10/13 13:02:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:02:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:02:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:02:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:02:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:02:00 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:02:05 console: claim request refused: hostops: pending
2026/10/13 13:02:06 console: api email credentials revoke bab/titogo (laptop): mail: lifecycle resource operation pending
hostops: pending
2026/10/13 13:02:07 console: api email domain remove bab/titogo (titogo.bab.oncarlos.com): mail: lifecycle resource operation pending
hostops: pending
2026/10/13 13:02:07 console: api email push off bab/titogo: hostops: pending
2026/10/13 13:02:08 console: audit instance-delete titogo: hostops: pending
2026/10/13 13:02:18 console: audit sidecar-delete titogo: hostops: pending
2026/10/13 13:02:27 console: audit db-read titogo: hostops: pending
2026/10/13 13:02:28 console: control-plane clear bab/titogo: hostops: pending
2026/10/13 13:02:28 console: api instances update bab/titogo/ha.go.tito.io: hostops: pending
2026/10/13 13:02:29 console: app region bab/claim-web-new:  (default)
2026/10/13 13:02:29 console: backfilled account manifest for bab (ops)
2026/10/13 13:02:29 console: analytics setting bab/kass: hostops: pending
2026/10/13 13:02:29 console: canary kass v1 -> canary/rc: hostops: pending
2026/10/13 13:02:30 console: retire kass canary/rc: hostops: pending
2026/10/13 13:02:30 console: control-plane clear bab/titogo: hostops: pending
2026/10/13 13:02:31 console: control-plane set bab/titogo: hostops: pending
2026/10/13 13:02:31 console: trash bab/titogo: hostops: pending
2026/10/13 13:02:33 console: errors level bab/kass: hostops: pending
2026/10/13 13:02:33 console: fast-track kass stable: hostops: pending
2026/10/13 13:02:34 console: gate write bab/titogo/acme.go.tito.io: hostops: pending
2026/10/13 13:02:34 console: browser restart bab/kass/kass.carlosapp.dev: hostops: pending
2026/10/13 13:02:35 console: browser retry bab/titogo/web.go.tito.io: hostops: pending
2026/10/13 13:02:35 console: api updates bab/titogo/acme.go.tito.io: hostops: pending
2026/10/13 13:02:36 console: api updates install bab/titogo/acme.go.tito.io: hostops: pending
2026/10/13 13:02:36 console: app region bab/tmp-claim-keep:  (default)
2026/10/13 13:02:36 console: backfilled account manifest for bab (ops)
2026/10/13 13:02:36 console: keep bab/tmp-claim-keep: hostops: pending
2026/10/13 13:02:37 console: confirm pending change: hostops: pending
2026/10/13 13:02:38 console: reject pending change e073672c08699eea77e1f5638b5becf6: hostops: pending
2026/10/13 13:02:38 console: backfilled account manifest for bab (ops)
2026/10/13 13:02:38 console: pipeline settings save bab/titogo: set: hostops: pending
2026/10/13 13:02:39 console: audit fleet-create pi: sql: no rows in result set
2026/10/13 13:02:39 console: production kass -> true: hostops: pending
2026/10/13 13:02:40 console: promote kass v1 -> canary/x: hostops: pending
2026/10/13 13:02:41 console: browser restart bab/kass/: hostops: pending
2026/10/13 13:02:41 console: rollback kass canary/x: hostops: pending
2026/10/13 13:02:42 console: store destroy bab/titogo: hostops: pending
2026/10/13 13:02:42 console: swap policy bab/kass: hostops: pending
2026/10/13 13:02:42 console: audit fleet-create pi: sql: no rows in result set
2026/10/13 13:02:43 console: service create bab/svc-web: hostops: pending
2026/10/13 13:02:43 console: service revoke bab: hostops: pending
2026/10/13 13:02:44 console: service rotate bab/svc-a: hostops: pending
2026/10/13 13:02:44 console: claim request refused: hostops: pending
2026/10/13 13:02:45 console: restore bab/titogo: hostops: pending
2026/10/13 13:02:45 console: app region bab/claim-cli-new:  (default)
2026/10/13 13:02:45 console: backfilled account manifest for bab (ops)
2026/10/13 13:02:46 console: app region bab/tmp-claim-cli:  (default)
2026/10/13 13:02:46 console: backfilled account manifest for bab (ops)
2026/10/13 13:02:47 console: api resign bab/kass canary/x: hostops: pending
2026/10/13 13:02:47 console: api config sync bab/titogo: hostops: pending
2026/10/13 13:02:48 console: api trash bab/titogo: hostops: pending
2026/10/13 13:02:49 console: door key mint bab/titogo: hostops: pending
2026/10/13 13:02:49 console: door key revoke bab/titogo a36951b3ff4a4e75: hostops: pending
2026/10/13 13:02:50 console: api email declare bab/titogo: mail: lifecycle resource operation pending
hostops: pending
2026/10/13 13:02:50 console: api email credentials create bab/titogo: mail: lifecycle resource operation pending
hostops: pending
2026/10/13 13:02:51 console: api email domain ensure bab/titogo (titogo.bab.oncarlos.com): mail: lifecycle resource operation pending
hostops: pending
2026/10/13 13:02:51 console: api email domain verify bab/titogo.bab.oncarlos.com: mail: lifecycle resource operation pending
hostops: pending
2026/10/13 13:02:52 console: api email enable bab/titogo: apply grant: mail: lifecycle resource operation pending
hostops: pending
2026/10/13 13:02:52 console: api email pause bab/titogo: mail: lifecycle resource operation pending
hostops: pending
2026/10/13 13:02:53 console: api email rotate bab/titogo: mail: lifecycle resource operation pending
hostops: pending
2026/10/13 13:02:53 console: api features set bab/titogo: hostops: pending
2026/10/13 13:02:54 console: api instance token bab/titogo: hostops: pending
2026/10/13 13:02:54 console: claim request refused: hostops: pending
2026/10/13 13:02:54 console: api instance channel bab/titogo/web.go.tito.io: hostops: pending
2026/10/13 13:02:56 console: api instance retry bab/titogo/web.go.tito.io: hostops: pending
2026/10/13 13:02:56 console: api updates install bab/titogo/acme.go.tito.io: hostops: pending
2026/10/13 13:02:57 console: app region bab/tmp-claim-keep:  (default)
2026/10/13 13:02:57 console: backfilled account manifest for bab (ops)
2026/10/13 13:02:57 console: lifecycle tmp-claim-keep: hostops: pending
2026/10/13 13:02:57 console: ledger publish bab/titogo: hostops: pending
2026/10/13 13:02:58 console: ledger append bab/titogo/carbon: hostops: pending
2026/10/13 13:02:58 console: ledger blob bab/titogo/prompts: hostops: pending
2026/10/13 13:02:59 console: audit fleet-create pi: sql: no rows in result set
2026/10/13 13:02:59 console: api promote kass v1 -> canary/claim: hostops: pending
2026/10/13 13:03:00 console: api relay enable: hostops: pending
2026/10/13 13:03:00 console: relay enabled bab/titogo in eu-west-1 by paul@keymail.dev (incarnation e643c4cb6bb23ca0, op 1)
2026/10/13 13:03:00 console: relay enabled bab/titogo in eu-west-1 by paul@keymail.dev (incarnation 9ef5447a466724d8, op 1)
2026/10/13 13:03:00 console: api relay adopted: hostops: pending
2026/10/13 13:03:01 console: relay enabled bab/titogo in eu-west-1 by paul@keymail.dev (incarnation 2dd546370f57222f, op 1)
2026/10/13 13:03:01 console: api relay disable: hostops: pending
2026/10/13 13:03:01 console: relay disabled bab/titogo by paul@keymail.dev (op 2)
2026/10/13 13:03:01 console: api ship titogo abc1234: hostops: pending
2026/10/13 13:03:02 console: api authorize bab/kass v1: hostops: pending
2026/10/13 13:03:02 console: api restart bab/titogo: hostops: pending
2026/10/13 13:03:02 console: api restart scope bab/kass (host kass.carlosapp.dev): hostops: pending
2026/10/13 13:03:03 console: api restore bab/titogo: hostops: pending
2026/10/13 13:03:03 console: api retention set bab/titogo: hostops: pending
2026/10/13 13:03:04 console: api rollback kass canary/x: hostops: pending
2026/10/13 13:03:04 console: api schedule set bab/titogo sync: hostops: pending
2026/10/13 13:03:05 console: api schedule rm bab/titogo sync: hostops: pending
2026/10/13 13:03:05 console: api schedule run bab/titogo sync: hostops: pending
2026/10/13 13:03:06 console: claim request refused: hostops: pending
2026/10/13 13:03:06 console: api sidecars wake bab/titogo/bot: hostops: pending
2026/10/13 13:03:07 console: api store create bab/titogo: hostops: pending
2026/10/13 13:03:07 console: api store grant bab/titogo (bucket ""): hostops: pending
2026/10/13 13:03:08 console: api store provision bab/titogo: hostops: pending
2026/10/13 13:03:08 console: api store rotate bab/titogo: hostops: pending
2026/10/13 13:03:09 console: api store rotate finish bab/titogo: hostops: pending
2026/10/13 13:03:09 console: api scan request bab/titogo: hostops: pending
2026/10/13 13:03:10 console: api scan enforce bab/titogo: hostops: pending
2026/10/13 13:03:10 console: api scan grant bab/titogo: enable: hostops: pending
2026/10/13 13:03:11 console: api scan revoke bab/titogo: hostops: pending
2026/10/13 13:03:11 console: api scan sweep bab/titogo: hostops: pending
2026/10/13 13:03:11 console: app region bab/tmp-claim-ttl:  (default)
2026/10/13 13:03:11 console: backfilled account manifest for bab (ops)
2026/10/13 13:03:12 console: lifecycle tmp-claim-ttl: hostops: pending
2026/10/13 13:03:12 console: relay enabled bab/titogo in eu-west-1 by paul@keymail.dev (incarnation 36985479e42781cf, op 1)
2026/10/13 13:03:12 console: relay rotate eu-west-1: bab/titogo: hostops: pending
2026/10/13 13:03:12 console: relay rotated eu-west-1 to kid k2, re-issued 0 app(s)
2026/10/13 13:03:12 console: audit relay-rotate platform: sql: no rows in result set
2026/10/13 13:03:13 console: relay rotated eu-west-1 to kid k3, re-issued 1 app(s)
2026/10/13 13:03:13 console: audit relay-rotate platform: sql: no rows in result set
2026/10/13 13:03:13 console: service create bab/svc-cli: hostops: pending
2026/10/13 13:03:13 console: service revoke bab: hostops: pending
2026/10/13 13:03:14 console: service rotate bab/svc-a: hostops: pending
2026/10/13 13:03:14 console: ses events: logging Delivery for bab/titogo: hostops: pending
2026/10/13 13:03:14 console: ses events: recording Delivery for bab/titogo: hostops: pending
2026/10/13 13:03:15 console: cli token revoke paul@keymail.dev: hostops: pending
2026/10/13 13:03:15 console: api config apply bab/titogo (default): hostops: pending
2026/10/13 13:03:16 console: api domains paths bab/titogo ti.to: hostops: pending
2026/10/13 13:03:16 console: api email push key bab/titogo: hostops: pending
2026/10/13 13:03:17 console: api instances enable bab/titogo: hostops: pending
2026/10/13 13:03:17 console: api updates bab/titogo/acme.go.tito.io: hostops: pending
2026/10/13 13:03:18 console: api pipeline put bab/titogo: set: hostops: pending
2026/10/13 13:03:18 console: api sidecars enable bab/titogo: hostops: pending
2026/10/13 13:03:19 console: api swap bab/titogo: hostops: pending
2026/10/13 13:03:19 console: api telemetry bab/titogo: hostops: pending
2026/10/13 13:03:20 console: api updates policy bab/titogo: hostops: pending
2026/10/13 13:03:20 console: api version-target set bab/titogo: hostops: pending
2026/10/13 13:03:24 console: claim restore bab/titogo: recovered (restored)
2026/10/13 13:03:27 console: door keys re-sign bab/titogo: hostops: pending
2026/10/13 13:03:33 console: app region bab/tmp-claim-expiry:  (default)
2026/10/13 13:03:33 console: backfilled account manifest for bab (ops)
2026/10/13 13:03:33 console: expiry pass: trash bab/tmp-claim-expiry: hostops: pending
2026/10/13 13:03:40 console: mail push: bab/titogo: hostops: pending
2026/10/13 13:03:46 console: relay enabled bab/titogo in eu-west-1 by paul@keymail.dev (incarnation b284873b51ba85fe, op 1)
2026/10/13 13:03:46 console: relay writer lease acquired (holder ab8d12ee913de405)
2026/10/13 13:03:46 console: relay reconcile bab/titogo: hostops: pending
2026/10/13 13:03:50 console: relay writer lease acquired (holder ab8d12ee913de405)
2026/10/13 13:03:53 console: scan pass: bab/titogo: hostops: pending
2026/10/13 13:04:02 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:04:02 console: audit geoip off platform: sql: no rows in result set
2026/10/13 13:04:03 console: backfilled account manifest for bab (ops)
2026/10/13 13:04:03 console: backfilled account manifest for bab (ops)
2026/10/13 13:04:04 console: backfilled account manifest for bab (ops)
2026/10/13 13:04:04 console: backfilled account manifest for bab (ops)
2026/10/13 13:04:05 console: backfilled account manifest for bab (ops)
2026/10/13 13:04:05 console: backfilled account manifest for bab (ops)
2026/10/13 13:04:05 console: backfilled account manifest for bab (ops)
2026/10/13 13:04:06 console: backfilled account manifest for bab (ops)
2026/10/13 13:04:06 console: backfilled account manifest for bab (ops)
2026/10/13 13:04:06 console: backfilled account manifest for bab (ops)
2026/10/13 13:04:07 console: backfilled account manifest for bab (ops)
2026/10/13 13:04:08 console: backfilled account manifest for bab (ops)
2026/10/13 13:04:08 console: backfilled account manifest for bab (ops)
2026/10/13 13:04:08 console: backfilled account manifest for bab (ops)
2026/10/13 13:04:09 console: audit fleet-create pi: sql: no rows in result set
2026/10/13 13:04:09 console: audit fleet-create pi: sql: no rows in result set
2026/10/13 13:04:10 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/13 13:04:21 console: relay enabled bab/titogo in eu-west-1 by paul@keymail.dev (incarnation 1e9351130faa4aa6, op 1)
2026/10/13 13:04:26 console: audit fleet-create pi: sql: no rows in result set
2026/10/13 13:04:27 console: audit store-apply : constraint failed: claim: app write not permitted (1811)
2026/10/13 13:04:28 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:04:28 console: audit system-update platform: sql: no rows in result set
2026/10/13 13:04:30 console: audit system-update platform: sql: no rows in result set
2026/10/13 13:04:34 console: audit store-apply : constraint failed: claim: app write not permitted (1811)
2026/10/13 13:04:36 console: audit analytics-setting account: sql: no rows in result set
2026/10/13 13:04:37 console: audit errors-level account: sql: no rows in result set
2026/10/13 13:04:38 console: audit fleet-create pi: sql: no rows in result set
2026/10/13 13:04:38 console: audit fleet-add-box pi: sql: no rows in result set
2026/10/13 13:04:38 console: audit fleet-detach-box pi: sql: no rows in result set
2026/10/13 13:04:38 console: audit fleet-create pi: sql: no rows in result set
2026/10/13 13:04:38 console: audit fleet-add-box pi: sql: no rows in result set
2026/10/13 13:04:38 console: audit fleet-rotate-box pi: sql: no rows in result set
2026/10/13 13:04:38 console: audit fleet-create pi: sql: no rows in result set
2026/10/13 13:04:38 console: audit fleet-add-box pi: sql: no rows in result set
2026/10/13 13:04:38 console: audit fleet-tag-box pi: sql: no rows in result set
2026/10/13 13:04:40 console: audit store-apply : constraint failed: claim: app write not permitted (1811)
2026/10/13 13:04:41 console: audit store-apply : constraint failed: claim: app write not permitted (1811)
2026/10/13 13:04:41 console: audit store-apply : constraint failed: claim: app write not permitted (1811)
2026/10/13 13:04:41 console: audit store-approve : constraint failed: claim: app write not permitted (1811)
2026/10/13 13:04:42 console: audit store-apply : constraint failed: claim: app write not permitted (1811)
2026/10/13 13:04:42 console: audit store-decline : constraint failed: claim: app write not permitted (1811)
2026/10/13 13:04:43 console: audit fleet-create pi: sql: no rows in result set
2026/10/13 13:04:43 console: audit fleet-create pi: sql: no rows in result set
2026/10/13 13:04:43 console: audit fleet-add-box pi: sql: no rows in result set
2026/10/13 13:04:43 console: audit fleet-create pi: sql: no rows in result set
2026/10/13 13:04:43 console: audit fleet-add-box pi: sql: no rows in result set
2026/10/13 13:04:43 console: audit fleet-detach-box pi: sql: no rows in result set
2026/10/13 13:04:44 console: audit fleet-create pi: sql: no rows in result set
2026/10/13 13:04:44 console: audit fleet-add-box pi: sql: no rows in result set
2026/10/13 13:04:44 console: audit fleet-rotate-box pi: sql: no rows in result set
2026/10/13 13:04:44 console: audit fleet-create pi: sql: no rows in result set
2026/10/13 13:04:44 console: audit fleet-add-box pi: sql: no rows in result set
2026/10/13 13:04:44 console: audit fleet-tag-box pi: sql: no rows in result set
2026/10/13 13:04:45 console: audit system-update platform: sql: no rows in result set
2026/10/13 13:04:45 console: audit system-activation-cancel platform: sql: no rows in result set
2026/10/13 13:04:45 console: object scanning enabled deployment-wide by paul@keymail.dev
2026/10/13 13:04:45 console: audit system-layout platform: sql: no rows in result set
2026/10/13 13:04:46 console: audit pointer-digests-on platform: sql: no rows in result set
2026/10/13 13:04:46 console: audit system-update platform: sql: no rows in result set
2026/10/13 13:04:46 console: audit system-update platform: sql: no rows in result set
2026/10/13 13:04:46 console: audit system-rollback platform: sql: no rows in result set
2026/10/13 13:04:47 console: audit system-update platform: sql: no rows in result set
2026/10/13 13:04:50 console: audit store-apply : constraint failed: claim: app write not permitted (1811)
2026/10/13 13:04:50 console: audit store-decline : constraint failed: claim: app write not permitted (1811)
2026/10/13 13:04:50 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:04:50 console: audit geoip publish platform: sql: no rows in result set
2026/10/13 13:05:16 console: cli token revoke paul@keymail.dev: hostops: pending
2026/10/13 13:05:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:18 console: claim recovery: context canceled
2026/10/13 13:05:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:18 console: claim recovery: sns: context canceled
context canceled
context canceled
2026/10/13 13:05:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:20 console: materialized account bac (Account) from the bucket
2026/10/13 13:05:20 console: materialized account bac (Account) from the bucket
2026/10/13 13:05:20 console: materialized account bac (Account) from the bucket
2026/10/13 13:05:20 console: materialized account bac (Account) from the bucket
2026/10/13 13:05:20 console: materialized account bac (Account) from the bucket
2026/10/13 13:05:20 console: materialized account bac (Account) from the bucket
2026/10/13 13:05:20 console: materialized account bac (Account) from the bucket
2026/10/13 13:05:20 console: materialized account bac (Account) from the bucket
2026/10/13 13:05:20 console: materialized account bac (Account) from the bucket
2026/10/13 13:05:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:22 console: claim restore bab/kass: recovered (restored)
2026/10/13 13:05:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: claim restore bab/kass: recovered (restored)
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: hold app materialization bab/kass: constraint failed: test restore SQL failure (1811)
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:23 console: restore row bab/kass: constraint failed: test restore SQL failure (1811)
2026/10/13 13:05:25 console: mail push: bab/titogo: hostops: pending
2026/10/13 13:05:32 console: mail push: bab/titogo: no answer: lost response
no answer: lost response
2026/10/13 13:05:32 mail: disassociating tenant resource for bab/remove.example.com: lost disassociation response
2026/10/13 13:05:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:36 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:36 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:36 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:36 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: materialized account bac (Testco) from the bucket
2026/10/13 13:05:37 console: account telemetry bac: dirstore: invalid key "apps/bac//telemetry.json"
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: materialized account bac (Testco) from the bucket
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: control-plane check console in account bab: SQL logic error: no such column: control_plane (1)
2026/10/13 13:05:37 console: control-plane check console in account bab: SQL logic error: no such column: control_plane (1)
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:37 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:38 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:38 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/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:38 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:38 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/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:38 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:38 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/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:38 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:38 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/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:38 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:38 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:38 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:38 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:38 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:38 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:38 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:38 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:38 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/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 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/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 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/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 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/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 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/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 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/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:39 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:39 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:39 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:39 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 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/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 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/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:39 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:39 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:39 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:39 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:39 console: api instances create bab/titogo: read existing record for acme.go.tito.io: get secret-bucket: connection reset
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: api sidecars create bab/titogo: read existing record for bot.titogo.bab.sidecar.internal: get secret-bucket: connection reset
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:40 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:40 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000000 txid.db=0000000000000001
2026/10/13 13:05:40 INFO ltx file uploaded system=store db=source.db replica=file level=0 minTXID=0000000000000001 maxTXID=0000000000000001 size=720
2026/10/13 13:05:40 INFO replica sync system=store db=source.db replica=file txid.replica=0000000000000001 txid.db=0000000000000001
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: materialized account bac (Testco) from the bucket
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: materialized account bac (Testco) from the bucket
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: materialized account bac (Testco) from the bucket
2026/10/13 13:05:40 console: tombstone account bac: console: no deployment release store is configured on this box
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: trash marker bab/kass: release: malformed trash marker for bab/kass: invalid character 'n' looking for beginning of object key string
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: purge preflight bab/kass: release: bab/kass is flagged production — a trashed production app should be impossible; refusing to purge
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: purge preflight bab/kass: release: bab/kass is flagged production — a trashed production app should be impossible; refusing to purge
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: bab/kass has no trash marker and still has objects; restoring it here
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:40 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:40 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:41 edgesfile: could not load box snapshots (bucket list refused) — edge set falls back to the configured list
2026/10/13 13:05:41 console: versions kass: bucket list refused
2026/10/13 13:05:41 console: tags kass: bucket list refused
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/13 13:05:41 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/13 13:05:41 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/13 13:05:41 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/13 13:05:41 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/13 13:05:41 console: account telemetry bab: dirstore: invalid key "apps/bab//telemetry.json"
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: deploy signer for bab/hello: key grant signature verification failed (not signed by the deployment's root release key)
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: deploy signer for bab/hello: mint key grant: invalid name "deploy.bad name!" (letters, digits, . _ - ; up to 64)
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:41 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/13 13:05:41 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: attach story.carlosframework.com: existing record is not this door's to adopt (read: <nil>)
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: attach story.carlosframework.com: record write: opStore: timed out after the object landed
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: attach story.carlosframework.com: claim write: opStore: bucket unavailable
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: attach story.carlosframework.com: record write: opStore: bucket unavailable
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:42 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:05:42 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:43 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: bill pass 2026-08: cost explorer: AccessDeniedException: user is not authorized
2026/10/13 13:05:44 console: bill pass 2026-07: cost explorer: AccessDeniedException: user is not authorized
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: bill pass 2026-08: cost explorer: ThrottlingException: rate exceeded
2026/10/13 13:05:44 console: bill pass 2026-07: cost explorer: ThrottlingException: rate exceeded
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:44 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:48 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/13 13:05:48 console: bill pass 2026-08: cost explorer: console: cost explorer disabled for this process
2026/10/13 13:05:48 console: bill pass 2026-07: cost explorer: console: cost explorer disabled for this process
2026/10/13 13:05:48 console: bill pass 2026-08: cost explorer: console: cost explorer disabled for this process
2026/10/13 13:05:48 console: bill pass 2026-07: cost explorer: console: cost explorer disabled for this process
2026/10/13 13:05:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:48 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:48 console: storage pass: store bab/kass: endpoint down
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 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/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 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/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: load economics: fleet meters unavailable: console: fleet meters: registry /tmp/TestLoadEconomicsDegradesWithoutRegistry2765352365/003/nonexistent-registry.db: stat /tmp/TestLoadEconomicsDegradesWithoutRegistry2765352365/003/nonexistent-registry.db: no such file or directory
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: edge proof: first signed request from the edge — X-Forwarded-For from loopback now needs a proof
2026/10/13 13:05:49 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/13 13:05:49 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/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: expiry pass: trash bab/tmp-a: release: write trash marker for bab/tmp-a: hookStore: put refused
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: expiry pass: early purge bab/tmp-a: release: bab/tmp-a was trashed at 2026-10-13T12:05:49Z, not 2026-10-10T13:05:49Z: release: the trash marker is not the one the purge was decided for
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: expiry pass: early purge bab/tmp-a: release: purge apps/bab/tmp-a/releases/v1/site.tar.gz: hookStore: delete refused
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: expiry pass: bab/tmp-a is marked as the control plane; not purging it
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 console: expiry pass: bab/tmp-a has email estate; not purging it
2026/10/13 13:05:49 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:49 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/13 13:05:49 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/13 13:05:49 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/13 13:05:49 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/13 13:05:49 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/13 13:05:49 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/13 13:05:49 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/13 13:05:49 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/13 13:05:49 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/13 13:05:49 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/13 13:05:49 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/13 13:05:49 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/13 13:05:49 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/13 13:05:49 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/13 13:05:49 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/13 13:05:49 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/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 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/13 13:05:50 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/13 13:05:50 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/13 13:05:50 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/13 13:05:50 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/13 13:05:50 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/13 13:05:50 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/13 13:05:50 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/13 13:05:50 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/13 13:05:50 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/13 13:05:50 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/13 13:05:50 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/13 13:05:50 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/13 13:05:50 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/13 13:05:50 console: expiry pass: bab/tmp-due left the trash before its purge; settling it
2026/10/13 13:05:50 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/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: bab/tmp-a is in the trash in the bucket; marking it trashed here
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: expiry pass: early purge bab/tmp-a: hookStore: delete refused
2026/10/13 13:05:50 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/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: place bab/titogo: instance ghost.go.tito.io vanished mid-walk, skipping
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: fleet page bab/acme: load heartbeats: bucket list refused
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:50 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:51 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:51 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:51 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:51 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:51 console: geoip published ed972738 (GeoIP2-City, feed:test-feed)
2026/10/13 13:05:51 console: geoip published ed972738 (GeoIP2-City, feed:test-feed)
2026/10/13 13:05:51 console: geoip published ed972738 (GeoIP2-City, feed:test-feed)
2026/10/13 13:05:51 console: geoip feed test-feed: edition Tue, 06 Oct 2026 00:00:00 GMT rejected: checksum
2026/10/13 13:05:51 console: geoip feed test-feed: edition 2026-10 rejected: too large
2026/10/13 13:05:51 console: geoip feed test-feed: edition 2026-10 rejected: wrong type
2026/10/13 13:05:51 console: geoip feed test-feed: edition (none) rejected: download
2026/10/13 13:05:51 console: geoip feed status unreadable; this check's outcome was not recorded
2026/10/13 13:05:51 console: geoip feed status could not be cleared; retrying in 1ms
2026/10/13 13:05:51 console: geoip feed status could not be cleared; retrying in 2ms
2026/10/13 13:05:51 console: geoip published b3760190 (GeoIP2-Country, manual)
2026/10/13 13:05:51 console: geoip feed test-feed: edition (none) rejected: download
2026/10/13 13:05:51 console: geoip published ed972738 (GeoIP2-City, feed:test-feed)
2026/10/13 13:05:51 console: geoip database aaaaaaaa (GeoIP2-City) followed from this box's edge
2026/10/13 13:05:51 console: geoip database aaaaaaaa (GeoIP2-City) followed from this box's edge
2026/10/13 13:05:51 console: geoip database bbbbbbbb (GeoIP2-City) followed from this box's edge
2026/10/13 13:05:51 console: geoip database expired (GeoLite2, 30 days after build) and was closed
2026/10/13 13:05:51 console: geoip database cccccccc (GeoIP2-City) followed from this box's edge
2026/10/13 13:05:51 console: geoip local state unreadable; keeping the loaded database
2026/10/13 13:05:51 console: geoip database dddddddd (GeoIP2-City) followed from this box's edge
2026/10/13 13:05:51 console: geoip database expired (GeoLite2, 30 days after build) and was closed
2026/10/13 13:05:51 console: geoip database dddddddd (GeoIP2-City) followed from this box's edge
2026/10/13 13:05:51 console: geoip database expired (GeoLite2, 30 days after build) and was closed
2026/10/13 13:05:51 console: geoip local state unreadable; keeping the loaded database
2026/10/13 13:05:51 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:05:51 console: geoip published b3760190 (GeoIP2-Country, manual)
2026/10/13 13:05:52 console: geoip published b3760190 (GeoIP2-Country, manual)
2026/10/13 13:05:52 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:05:52 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:05:52 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:05:52 console: geoip published b3760190 (GeoIP2-Country, manual)
2026/10/13 13:05:52 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:05:52 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:05:52 console: geoip database bbbbbbbb expired (GeoLite2, 30 days after build) and was removed
2026/10/13 13:05:52 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:05:52 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:05:52 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:05:52 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:05:52 console: geoip published ed972738 (GeoIP2-City, feed:x)
2026/10/13 13:05:52 console: geoip published b3760190 (GeoIP2-Country, manual)
2026/10/13 13:05:52 console: geoip published ed972738 (GeoIP2-City, feed:x)
2026/10/13 13:05:52 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:05:52 console: geoip published ed972738 (GeoIP2-City, manual)
2026/10/13 13:05:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:55 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/13 13:05:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:55 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:55 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:55 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:55 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:55 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:55 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:55 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:55 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: could not notify alice@keymail.dev of a CLI token issue: Post "http://127.0.0.1:39349/api/app/send": dial tcp 127.0.0.1:39349: connect: connection refused
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: could not notify alice@keymail.dev of a CLI token issue: Post "http://127.0.0.1:39061/api/app/send": dial tcp 127.0.0.1:39061: connect: connection refused
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 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/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:56 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:56 console: backfilled account manifest for bab (ops)
2026/10/13 13:05:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:57 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
--- FAIL: TestSystemDoorsRefuseAPreLayoutMoveWhileABoxIsNested (2.25s)
    layoutguard_test.go:119: rollback with every row flat = 200 map[channel:canary version:v0.25.0]
2026/10/13 13:05:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:05:59 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:01 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: audit system-update platform: sql: database is closed
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:02 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: mail push: suspended bab/jb-book — nothing accepted for 24h0m0s
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:03 console: materialized account bbw (Blog) from the bucket
2026/10/13 13:06:03 console: materialized account mdbbndjqx (Kass) from the bucket
2026/10/13 13:06:03 console: materialized account bbw (Blog) from the bucket
2026/10/13 13:06:03 console: skipping accounts/bbx/account.json: sqid "bbx"/"elsewhere" is not Sqid(43)="bbx" — that is corruption, not a new account
2026/10/13 13:06:03 console: skipping accounts/broken/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/13 13:06:03 console: skipping accounts/empty/account.json: malformed account manifest: <nil>
2026/10/13 13:06:03 console: skipping accounts/wrong/account.json: sqid "wrong"/"wrong" is not Sqid(42)="bbw" — that is corruption, not a new account
2026/10/13 13:06:04 console: materialized account bac (Kass) from the bucket
2026/10/13 13:06:04 console: materialized account bbw (Kass) from the bucket
2026/10/13 13:06:04 console: materialized account bbw (Kass) from the bucket
2026/10/13 13:06:04 console: materialized account bac (Kass) from the bucket
2026/10/13 13:06:04 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/13 13:06:04 console: materialized account bbw (Kass) from the bucket
2026/10/13 13:06:04 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/13 13:06:04 console: materialized account bbw (Legacy) from the bucket
2026/10/13 13:06:04 console: materialized account bac (Testco) from the bucket
2026/10/13 13:06:04 console: reaped account bac (Testco) — its manifest is tombstoned
2026/10/13 13:06:04 console: materialized account bac (Testco) from the bucket
2026/10/13 13:06:04 console: reaped account bac (Testco) — its manifest is tombstoned
2026/10/13 13:06:04 console: materialized account bac (Testco) from the bucket
2026/10/13 13:06:04 console: bac/alpha is in the trash in the bucket — marking it trashed here
2026/10/13 13:06:04 console: bac/beta has no trash marker and still has objects — restoring it here
2026/10/13 13:06:04 console: bac/gamma is gone from the bucket — releasing the name here
2026/10/13 13:06:04 console: materialized account bac (Testco) from the bucket
2026/10/13 13:06:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:04 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:05 console: background metrics sweep panic, cache left at its last good sweep: simulated bucket panic
2026/10/13 13:06:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:05 console: background metrics sweep: list metrics/boxes/: bucket had a bad day
2026/10/13 13:06:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:05 console: background metrics sweep: list metrics/boxes/: bucket had a bad day
2026/10/13 13:06:05 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:06 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:06 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/13 13:06:06 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/13 13:06:06 console: audit instance-delete titogo: hostops: pending
2026/10/13 13:06:15 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:15 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:16 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:16 console: moves: acme.go.tito.io: the start of move mv_fqshykbsakhsyb4vxfrq6r55ve settled not-applied
2026/10/13 13:06:16 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:16 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:16 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:16 console: moves: acme.go.tito.io: move mv_idxo7wgym27hbp62fhyy3euire closed by the console (rolled-back-close); the release follows
2026/10/13 13:06:16 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:16 console: moves: acme.go.tito.io: move mv_qkpgnjzqek6dz3yptpbo5heoj4 closed by the console (close); the release follows
2026/10/13 13:06:16 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:16 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:16 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:17 console: moves: acme.go.tito.io: move mv_yhccu7dfnmdvislzr5ckneorta is still preparing after 6h0m0s; aborted
2026/10/13 13:06:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:17 console: moves: acme.go.tito.io: move mv_cfb5a7khvdnsiskghbp3hnentm closed by the console (close); the release follows
2026/10/13 13:06:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:17 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:18 console: moves: acme.go.tito.io: move mv_5fngthne2jpezyyvfe4tw6vrlu is still preparing after 6h0m0s; aborted
2026/10/13 13:06:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:18 console: moves: acme.go.tito.io: move mv_vumynfoslf5vzp35zqifaqbpya closed by the console (close); the release follows
2026/10/13 13:06:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:18 console: moves: acme.go.tito.io: move mv_gvkp3qiu2hjzjoq2cus4f643pe closed by the console (close); the release follows
2026/10/13 13:06:18 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:19 console: moves: acme.go.tito.io: move mv_utszwmlovrbu7xglbbjm5uwyxy closed by the console (close); the release follows
2026/10/13 13:06:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:19 console: moves: warning: kass.carlosapp.dev: the log of move mv_7as3jlocpmar3rum6f4cppbyo4 at elsewhere is held: the writer refuses it (hostops: identity mismatch); its entry is kept until its incarnation is purged
2026/10/13 13:06:19 console: moves: warning: acme.go.tito.io: the log of move mv_7as3jlocpmar3rum6f4cppbyo4 at stale is held: the writer refuses it (hostops: identity mismatch); its entry is kept until its incarnation is purged
2026/10/13 13:06:19 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/13 13:06:19 console: moves: warning: acme.go.tito.io: the log of move mv_7as3jlocpmar3rum6f4cppbyo4 at retired is held: the writer refuses it (hostops: identity mismatch); its entry is kept until its incarnation is purged
2026/10/13 13:06:19 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:20 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:22 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:23 console: api instance move bab/titogo/acme.go.tito.io: declared loss refused: hostresolve: evidence or operation does not authorize resolution
2026/10/13 13:06:23 console: moves: warning: acme.go.tito.io: the log of move mv_upv4g3zigybuz4f2agpb3obhny 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/13 13:06:23 console: moves: acme.go.tito.io: the log of move mv_upv4g3zigybuz4f2agpb3obhny at rolling_back-target-lost was never confirmed and the claim no longer holds the instance it was queued for; dropped
2026/10/13 13:06:23 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:24 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:25 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/13 13:06:25 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:26 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/13 13:06:26 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:28 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:29 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:30 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: backfilled account manifest for bab (ops)
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: backfilled account manifest for bab (ops)
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: backfilled account manifest for bab (ops)
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: backfilled account manifest for bab (ops)
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: backfilled account manifest for bab (ops)
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: backfilled account manifest for bab (ops)
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: confirm pending change: database is locked
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: could not notify paul@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 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/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: execute promote b66ea3f910a32354bf92556959f5e80d: 1 of 2 confirmations counted (1 rows, quorum stored 2)
2026/10/13 13:06:31 console: execute promote 14966459cf8cdb9fe243727e99849a5e: change belongs to 1/"kass", not 1/"widget"
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:31 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:32 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/13 13:06:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:32 console: backfilled account manifest for bab (ops)
2026/10/13 13:06:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:32 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: execute promote widget v2 -> production: promote --retry renews a promotion: production names v3, not v2
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: app region bab/solo:  (default)
2026/10/13 13:06:33 console: backfilled account manifest for bab (ops)
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: app region bab/solocan:  (default)
2026/10/13 13:06:33 console: backfilled account manifest for bab (ops)
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: app region bab/soloflow:  (default)
2026/10/13 13:06:33 console: backfilled account manifest for bab (ops)
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: app region bab/multiflow:  (default)
2026/10/13 13:06:33 console: backfilled account manifest for bab (ops)
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: app region bab/bakeapp:  (default)
2026/10/13 13:06:33 console: backfilled account manifest for bab (ops)
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: app region bab/multi:  (default)
2026/10/13 13:06:33 console: backfilled account manifest for bab (ops)
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: app region bab/queue:  (default)
2026/10/13 13:06:33 console: backfilled account manifest for bab (ops)
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: app region bab/settle:  (default)
2026/10/13 13:06:33 console: backfilled account manifest for bab (ops)
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:33 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:34 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
2026/10/13 13:06:35 console: CARLOS_SECRETS_PUBKEY is unset, so no region 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 da418583f0602e87, 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 9e9ba982cf40d3df, 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 8d5ef9f8b094b3ce, 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 09f054f3a96f4a96, 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 c4581267d9cbd8b1, op 1)
console: relay enabled bab/meet in eu-west-1 by alice@keymail.dev (incarnation 4ba4a4c19fbc5f60, 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 a059b913c5d890ed, 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 05380c1706378d4f, 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 4dde7416c3b7b07a, 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 254fb5b3fd11bac7, 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 c82862350ce542a2, 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 55e24691467fe27e, 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: 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: 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
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region 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:33609 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:38409/.well-known/keymail": dial tcp 127.0.0.1:38409: 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.105320033s)
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:38205/api/app/send": dial tcp 127.0.0.1:38205: 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:36337->127.0.0.1:58460: 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: could not notify paul@keymail.dev of a CLI token issue: Post "http://127.0.0.1:36739/api/app/send": dial tcp 127.0.0.1:36739: connect: connection refused
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: app region bab/four:  (default)
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: app region bab/tmp-tz: uk (timezone)
console: backfilled account manifest for bab (ops)
console: app region bab/tmp-chosen: uk (chosen)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: app region bab/tmp-plain: ie (default)
console: backfilled account manifest for bab (ops)
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
status: fleet: skipping status/boxes/zz-1.json: corrupt snapshot: invalid character 'n' looking for beginning of object key string
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
console: api updates bab/km/a.example.com: enable refused, not every box applies update settings: fx/bx-1: no heartbeat since 2026-10-13T12:51:56Z
console: api updates bab/km policy: enable refused, not every box applies update settings: fx/bx-1: no heartbeat since 2026-10-13T12:51:56Z
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
status: fleet: skipping status/boxes/zz-1.json: corrupt snapshot: invalid character 'n' looking for beginning of object key string
console: api updates bab/km/a.example.com: enable refused, not every box applies update settings: the list of boxes could not be read in full
status: fleet: skipping status/boxes/zz-1.json: corrupt snapshot: invalid character 'n' looking for beginning of object key string
console: api updates bab/km policy: enable refused, not every box applies update settings: the list of boxes could not be read in full
status: fleet: skipping status/boxes/zz-1.json: corrupt snapshot: invalid character 'n' looking for beginning of object key string
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
console: api updates bab/km/a.example.com: enable refused, not every box applies update settings: the fleet registry could not be read (no registry path is configured), so no fleet box was checked
console: api updates bab/km policy: enable refused, not every box applies update settings: the fleet registry could not be read (no registry path is configured), so no fleet box was checked
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: could not notify alice@keymail.dev of a CLI token issue: keymail: grant revoked or invalid
console: api updates bab/km/a.example.com: enable refused, not every box applies update settings: the fleet registry could not be read (registry /tmp/TestEnableDoorsFailClosedOnAnUncheckedBoxregistry_missing3193012522/003/absent-registry.db: stat /tmp/TestEnableDoorsFailClosedOnAnUncheckedBoxregistry_missing3193012522/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_missing3193012522/003/absent-registry.db: stat /tmp/TestEnableDoorsFailClosedOnAnUncheckedBoxregistry_missing3193012522/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: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no region outside the home can be chosen automatically
console: CARLOS_SECRETS_PUBKEY is unset, so no 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	364.165s
?   	github.com/carlosframework/platform/internal/controlname	[no test files]
?   	github.com/carlosframework/platform/internal/controlsock	[no test files]
ok  	github.com/carlosframework/platform/internal/dbdoor	6.409s
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.003s
ok  	github.com/carlosframework/platform/internal/docsite	0.005s
ok  	github.com/carlosframework/platform/internal/domains	2.197s
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	26.168s
?   	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.124s
ok  	github.com/carlosframework/platform/internal/gate	1.655s
ok  	github.com/carlosframework/platform/internal/genselect	0.015s
ok  	github.com/carlosframework/platform/internal/geo	0.015s
ok  	github.com/carlosframework/platform/internal/geoip	0.030s
ok  	github.com/carlosframework/platform/internal/host	85.321s
ok  	github.com/carlosframework/platform/internal/hostactors	0.464s
ok  	github.com/carlosframework/platform/internal/hostbox	2.207s
ok  	github.com/carlosframework/platform/internal/hostclaim	0.513s
ok  	github.com/carlosframework/platform/internal/hostevidence	0.019s
ok  	github.com/carlosframework/platform/internal/hostexec	4.130s
ok  	github.com/carlosframework/platform/internal/hostfence	0.032s
ok  	github.com/carlosframework/platform/internal/hostfiles	10.571s
ok  	github.com/carlosframework/platform/internal/hostfloor	0.021s
ok  	github.com/carlosframework/platform/internal/hostguard	0.388s
ok  	github.com/carlosframework/platform/internal/hostops	1.461s
?   	github.com/carlosframework/platform/internal/hostops/fencerelease	[no test files]
ok  	github.com/carlosframework/platform/internal/hostops/internal/fencerelease	0.019s
ok  	github.com/carlosframework/platform/internal/hostquarantine	0.021s
ok  	github.com/carlosframework/platform/internal/hostrelocate	0.460s
ok  	github.com/carlosframework/platform/internal/hostresolve	0.135s
ok  	github.com/carlosframework/platform/internal/hostwrite	0.020s
ok  	github.com/carlosframework/platform/internal/infraview	0.024s
ok  	github.com/carlosframework/platform/internal/instancectl	1.713s
ok  	github.com/carlosframework/platform/internal/instanceexec	2.746s
ok  	github.com/carlosframework/platform/internal/instancefs	0.021s
ok  	github.com/carlosframework/platform/internal/instancekey	0.019s
ok  	github.com/carlosframework/platform/internal/instanceupdates	0.025s
ok  	github.com/carlosframework/platform/internal/layout	1.445s
ok  	github.com/carlosframework/platform/internal/lease	9.448s
ok  	github.com/carlosframework/platform/internal/lease/leasetest	0.006s
ok  	github.com/carlosframework/platform/internal/ledger	0.016s
ok  	github.com/carlosframework/platform/internal/mail	0.168s
ok  	github.com/carlosframework/platform/internal/maintenance	0.077s
ok  	github.com/carlosframework/platform/internal/maintenanceexec	5.574s
ok  	github.com/carlosframework/platform/internal/maintenanceguard	0.094s
ok  	github.com/carlosframework/platform/internal/metrics	0.007s
ok  	github.com/carlosframework/platform/internal/moves	20.977s
ok  	github.com/carlosframework/platform/internal/moves/archive	0.756s
ok  	github.com/carlosframework/platform/internal/objstore	0.161s
ok  	github.com/carlosframework/platform/internal/ops	0.166s
ok  	github.com/carlosframework/platform/internal/park	0.212s
ok  	github.com/carlosframework/platform/internal/privatefile	0.003s
ok  	github.com/carlosframework/platform/internal/provision	12.927s
ok  	github.com/carlosframework/platform/internal/publicrelease	0.007s
?   	github.com/carlosframework/platform/internal/regionname	[no test files]
ok  	github.com/carlosframework/platform/internal/registry	4.041s
ok  	github.com/carlosframework/platform/internal/relay	7.243s
ok  	github.com/carlosframework/platform/internal/release	20.094s
ok  	github.com/carlosframework/platform/internal/rollout	3.751s
ok  	github.com/carlosframework/platform/internal/rolloutwords	0.003s
ok  	github.com/carlosframework/platform/internal/rootaws	0.007s
ok  	github.com/carlosframework/platform/internal/rootparticipation	0.007s
ok  	github.com/carlosframework/platform/internal/rootstate	0.025s
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.297s
ok  	github.com/carlosframework/platform/internal/sim/hostlife	9.530s
ok  	github.com/carlosframework/platform/internal/sim/litestreamfacts	4.090s
ok  	github.com/carlosframework/platform/internal/status	0.041s
ok  	github.com/carlosframework/platform/internal/steering	0.006s
ok  	github.com/carlosframework/platform/internal/stopevidence	0.079s
ok  	github.com/carlosframework/platform/internal/svcrole	0.002s
ok  	github.com/carlosframework/platform/internal/telemetry	0.004s
ok  	github.com/carlosframework/platform/internal/termfence	0.004s
ok  	github.com/carlosframework/platform/internal/tunnelclient	0.004s
ok  	github.com/carlosframework/platform/internal/unixdial	0.004s
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.553s
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/plan14_backend_source_test.go b/internal/host/plan14_backend_source_test.go
index 0a779beec..b3a147594 100644
--- a/internal/host/plan14_backend_source_test.go
+++ b/internal/host/plan14_backend_source_test.go
@@ -3,6 +3,7 @@ package host
import (
"context"
"encoding/json"
+ "os"
"path/filepath"
"testing"
"time"
@@ -77,7 +78,7 @@ func TestPlan14OrdinaryDispatchSourceGap(t *testing.T) {
t.Fatal(err)
}
u := &plan14RestartUnits{}
- checks := rootRestartChecks{dispatch: source.needsRestart}
+ checks := rootRestartChecks{targetFile: os.Open, dispatch: source.needsRestart}
if err := rootRestartRouteWith(reg, u, "", nil, nil, checks)(record.Host); err != nil {
t.Fatal(err)
}
diff --git a/internal/host/plan14_canonical_restart_test.go b/internal/host/plan14_canonical_restart_test.go
index 3e0b5e7fc..964f754d9 100644
--- a/internal/host/plan14_canonical_restart_test.go
+++ b/internal/host/plan14_canonical_restart_test.go
@@ -95,7 +95,7 @@ func plan14AdoptionFixture(t *testing.T) (*proofRootEnv, registry.Route, *plan14
}
source.healthy = func(acct, app, version, digest string) *release.HealthyBuild {
for _, b := range release.ReadHealthy(e.bake, acct, app) {
- if b.Version == version && b.SHA256 == digest {
+ if b.SHA256 == digest {
return &b
}
}
@@ -122,7 +122,7 @@ func plan14AdoptionFixture(t *testing.T) (*proofRootEnv, registry.Route, *plan14
}
now, sleep := settleClock()
mem := &rollbackMemory{files: map[string][]byte{}}
- c := rootRestartChecks{started: &sync.Map{}, attempts: func() (rootstate.Store, error) { return mem, nil }, rollback: source.rollback, prepareRollback: source.prepareRollback, resolve: source.resolve, host: source.forHost, ready: e.root.obs.ready, now: now, sleep: sleep}
+ c := rootRestartChecks{targetFile: os.Open, started: &sync.Map{}, attempts: func() (rootstate.Store, error) { return mem, nil }, rollback: source.rollback, prepareRollback: source.prepareRollback, resolve: source.resolve, host: source.forHost, ready: e.root.obs.ready, now: now, sleep: sleep}
return e, rt, u, c, pub
}
diff --git a/internal/host/plan14_root_fixture_linux_test.go b/internal/host/plan14_root_fixture_linux_test.go
new file mode 100644
index 000000000..726a322c5
--- /dev/null
+++ b/internal/host/plan14_root_fixture_linux_test.go
@@ -0,0 +1,75 @@
+package host
+
+import (
+ "os"
+ "os/exec"
+ "path/filepath"
+ "testing"
+
+ "golang.org/x/sys/unix"
+)
+
+func plan14RootFixture(t *testing.T) bool {
+ t.Helper()
+ if os.Getenv("PLAN14_ROOT_FIXTURE") == t.Name() {
+ root := os.Getenv("PLAN14_ROOT_DIR")
+ if err := unix.Mount("/proc", filepath.Join(root, "proc"), "", unix.MS_BIND|unix.MS_REC, ""); err != nil {
+ t.Fatal(err)
+ }
+ if err := unix.Mount("/usr/bin/true", filepath.Join(root, "foreign"), "", unix.MS_BIND, ""); err != nil {
+ t.Fatal(err)
+ }
+ if err := unix.Mount("/usr", filepath.Join(root, "foreign-dir"), "", unix.MS_BIND, ""); err != nil {
+ t.Fatal(err)
+ }
+ if err := unix.Chroot(root); err != nil {
+ t.Fatal(err)
+ }
+ if err := os.Chdir("/"); err != nil {
+ t.Fatal(err)
+ }
+ if err := os.Chmod("/", 0755); err != nil {
+ t.Fatal(err)
+ }
+ t.Setenv("TMPDIR", "/scratch")
+ return true
+ }
+ root := t.TempDir()
+ if err := os.Mkdir(filepath.Join(root, "scratch"), 0755); err != nil {
+ t.Fatal(err)
+ }
+ if err := os.Mkdir(filepath.Join(root, "proc"), 0755); err != nil {
+ t.Fatal(err)
+ }
+ if err := os.WriteFile(filepath.Join(root, "foreign"), nil, 0644); err != nil {
+ t.Fatal(err)
+ }
+ if err := os.Mkdir(filepath.Join(root, "foreign-dir"), 0755); err != nil {
+ t.Fatal(err)
+ }
+ binary, err := os.Executable()
+ if err != nil {
+ t.Fatal(err)
+ }
+ probe := exec.Command("unshare", "--user", "--map-root-user", "--mount", "true")
+ if out, err := probe.CombinedOutput(); err != nil {
+ t.Skipf("user namespace unavailable: %v %s", err, out)
+ }
+ cmd := exec.Command("unshare", "--user", "--map-root-user", "--mount", binary, "-test.run=^"+t.Name()+"$", "-test.v")
+ cmd.Env = append(os.Environ(), "PLAN14_ROOT_FIXTURE="+t.Name(), "PLAN14_ROOT_DIR="+root)
+ if out, err := cmd.CombinedOutput(); err != nil {
+ t.Fatalf("isolated root fixture: %v\n%s", err, out)
+ } else {
+ t.Log(string(out))
+ }
+ return false
+}
+
+func makeProofAncestorsPublic(t *testing.T, path string) {
+ t.Helper()
+ for dir := filepath.Dir(path); dir != "/"; dir = filepath.Dir(dir) {
+ if err := os.Chmod(dir, 0755); err != nil {
+ t.Fatal(err)
+ }
+ }
+}
diff --git a/internal/host/proofbinding.go b/internal/host/proofbinding.go
index 7f5d49a57..d9adcdcfe 100644
--- a/internal/host/proofbinding.go
+++ b/internal/host/proofbinding.go
@@ -13,13 +13,14 @@ import (
"github.com/carlosframework/platform/internal/hostclaim"
"github.com/carlosframework/platform/internal/hostwrite"
- "github.com/carlosframework/platform/internal/provision"
"github.com/carlosframework/platform/internal/registry"
"github.com/carlosframework/platform/internal/release"
"github.com/carlosframework/platform/internal/rootstate"
)
type proofBinding struct {
+ ExecPath string
+ Local bool
Route registry.Route
Source string
Network bool
@@ -44,14 +45,17 @@ type proofUnitFile struct {
type proofBindingResolver func(context.Context, registry.Route) (proofBinding, error)
type proofBindingSource struct {
- store release.Store
- claim func(context.Context, string) (hostclaim.Observed, error)
- box func(context.Context) (string, error)
- sys unitSystem
- optDir string
- openFile func(string) (*os.File, error)
- unitDirs []string
- healthy func(string, string, string, string) *release.HealthyBuild
+ now func() time.Time
+ namedPath string
+ attempts func() (rootstate.Store, error)
+ store release.Store
+ claim func(context.Context, string) (hostclaim.Observed, error)
+ box func(context.Context) (string, error)
+ sys unitSystem
+ optDir string
+ openFile func(string) (*os.File, error)
+ unitDirs []string
+ healthy func(string, string, string, string) *release.HealthyBuild
}
func proofRouteReady(rt registry.Route, timeout time.Duration) func() error {
@@ -79,11 +83,11 @@ func proofRouteReady(rt registry.Route, timeout time.Duration) func() error {
}
func productionProofBindingSource(store release.Store, sys unitSystem, optDir string) *proofBindingSource {
- source := &proofBindingSource{store: store, sys: sys, optDir: optDir, openFile: rootstate.OpenTrustedFile,
+ source := &proofBindingSource{namedPath: rootNamedUnits, attempts: func() (rootstate.Store, error) { return rootstate.Open(rootRestartState, false, false) }, store: store, sys: sys, optDir: optDir, openFile: rootstate.OpenTrustedFile,
unitDirs: []string{"/etc/systemd/system", "/run/systemd/system", "/usr/lib/systemd/system"},
healthy: func(acct, app, version, digest string) *release.HealthyBuild {
for _, b := range release.ReadHealthy(release.RootHealthyDir, acct, app) {
- if b.Version == version && b.SHA256 == digest {
+ if b.SHA256 == digest {
return &b
}
}
@@ -109,7 +113,7 @@ func (s *proofBindingSource) resolve(ctx context.Context, candidate registry.Rou
if err != nil {
return proofBinding{}, err
}
- if !sameProofCandidate(candidate, b.Route, b.CandidateUnit) {
+ if !b.Local && !sameProofCandidate(candidate, b.Route, b.CandidateUnit) {
return proofBinding{}, os.ErrPermission
}
return b, nil
@@ -119,10 +123,11 @@ func (s *proofBindingSource) binding(ctx context.Context, host string, rollback
if s.store == nil || s.sys == nil || s.openFile == nil {
return proofBinding{}, os.ErrPermission
}
- rec, etag, err := provision.FindRecordByHost(ctx, s.store, host)
+ evidence, err := s.record(ctx, host)
if err != nil {
return proofBinding{}, err
}
+ rec, etag := evidence.record, evidence.revision
rt, err := rootRecordRoute(rec)
if err != nil {
return proofBinding{}, err
@@ -134,11 +139,32 @@ func (s *proofBindingSource) binding(ctx context.Context, host string, rollback
if err != nil {
return proofBinding{}, err
}
- if p.Name != rt.Unit || p.ExecPath != release.LiveLink(s.optDir, host) {
+ execPath := evidence.execPath
+ if execPath == "" {
+ execPath = release.LiveLink(s.optDir, host)
+ }
+ if p.Name != rt.Unit || p.ExecPath != execPath {
return proofBinding{}, os.ErrPermission
}
+ if evidence.local && execPath != release.LiveLink(s.optDir, host) {
+ expected := filepath.Join(s.unitDirs[0], "console.service.d", "90-host-floor.conf")
+ found := false
+ for _, path := range p.DropInPaths {
+ if path == expected {
+ found = true
+ }
+ }
+ if !found {
+ return proofBinding{}, os.ErrPermission
+ }
+ f, err := s.openFile(execPath)
+ if err != nil {
+ return proofBinding{}, err
+ }
+ f.Close()
+ }
definition := sha256.New()
- var files []proofUnitFile
+ files := append([]proofUnitFile(nil), evidence.files...)
for _, path := range append([]string{p.FragmentPath}, p.DropInPaths...) {
allowed := false
for _, dir := range s.unitDirs {
@@ -171,11 +197,14 @@ func (s *proofBindingSource) binding(ctx context.Context, host string, rollback
return proofBinding{}, os.ErrPermission
}
}
- claimID, err := s.claimIdentity(ctx, rec)
+ claimID := ""
+ if !evidence.local {
+ claimID, err = s.claimIdentity(ctx, rec)
+ }
if err != nil {
return proofBinding{}, err
}
- source := claimID + provision.RecordKey(rec.Account, rec.App, host) + "@" + etag + "@" + hex.EncodeToString(definition.Sum(nil))
+ source := claimID + evidence.key + "@" + etag + "@" + hex.EncodeToString(definition.Sum(nil))
var exe string
if rollback != nil {
if rollback.Source != source {
@@ -220,7 +249,11 @@ func (s *proofBindingSource) binding(ctx context.Context, host string, rollback
if rollback != nil && (!historical || !rollback.Historical || rollback.Version != version || rollback.Digest != digest) {
return proofBinding{}, os.ErrPermission
}
- if rec.Pin != version && !historical {
+ installed := evidence.local && rt.Unit == "console.service" && execPath == "/opt/carlos/system/guard/carlos" && s.installedConsoleVersion(version, digest)
+ if evidence.local && !historical && !installed && !s.capturedVersion(host, source, exe, digest) {
+ return proofBinding{}, os.ErrPermission
+ }
+ if !evidence.local && rec.Pin != version && !historical {
if rec.Pin != "" {
return proofBinding{}, os.ErrPermission
}
@@ -251,7 +284,7 @@ func (s *proofBindingSource) binding(ctx context.Context, host string, rollback
return proofBinding{}, os.ErrPermission
}
}
- return proofBinding{CandidateUnit: rec.Unit, History: history, Invocation: p.InvocationID, PID: p.MainPID, Start: start, Route: rt, Source: source, Network: true, Version: version, Digest: digest, Historical: historical, RecordKey: provision.RecordKey(rec.Account, rec.App, host), RecordETag: etag, Files: files}, nil
+ return proofBinding{ExecPath: execPath, Local: evidence.local, CandidateUnit: rec.Unit, History: history, Invocation: p.InvocationID, PID: p.MainPID, Start: start, Route: rt, Source: source, Network: true, Version: version, Digest: digest, Historical: historical, RecordKey: evidence.key, RecordETag: etag, Files: files}, nil
}
func (s *proofBindingSource) forHost(ctx context.Context, host string) (proofBinding, error) {
diff --git a/internal/host/proofbinding_provenance_linux_test.go b/internal/host/proofbinding_provenance_linux_test.go
new file mode 100644
index 000000000..a40393f79
--- /dev/null
+++ b/internal/host/proofbinding_provenance_linux_test.go
@@ -0,0 +1,77 @@
+package host
+
+import (
+ "golang.org/x/sys/unix"
+ "os"
+ "path/filepath"
+ "testing"
+
+ "github.com/carlosframework/platform/internal/rootstate"
+)
+
+func TestPlan14ProofBindingProvenance(t *testing.T) {
+ if !plan14RootFixture(t) {
+ return
+ }
+ for _, attack := range []string{"nonroot owner", "writable parent", "writable file", "symlink", "rename"} {
+ t.Run(attack, func(t *testing.T) {
+ e, rt, _, source := plan14ProofFixture(t)
+ path := source.sys.(*fakeUnits).shows[0].FragmentPath
+ makeProofAncestorsPublic(t, path)
+ makeProofAncestorsPublic(t, source.sys.(*fakeUnits).exe[7])
+ source.openFile = rootstate.OpenTrustedFile
+ baseline, err := source.resolve(t.Context(), rt)
+ if err != nil {
+ t.Fatalf("trusted baseline: %v", err)
+ }
+ switch attack {
+ case "nonroot owner":
+ if err := unix.Mount("/foreign", path, "", unix.MS_BIND, ""); err != nil {
+ t.Fatal(err)
+ }
+ t.Cleanup(func() { _ = unix.Unmount(path, 0) })
+ case "writable parent":
+ if err := os.Chmod(filepath.Dir(path), 0777); err != nil {
+ t.Fatal(err)
+ }
+ case "writable file":
+ if err := os.Chmod(path, 0666); err != nil {
+ t.Fatal(err)
+ }
+ case "symlink":
+ if err := os.Rename(path, path+".real"); err != nil {
+ t.Fatal(err)
+ }
+ if err := os.Symlink(path+".real", path); err != nil {
+ t.Fatal(err)
+ }
+ case "rename":
+ raw, err := os.ReadFile(path)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if err := os.Rename(path, path+".old"); err != nil {
+ t.Fatal(err)
+ }
+ if err := os.WriteFile(path, raw, 0644); err != nil {
+ t.Fatal(err)
+ }
+ }
+ if attack == "rename" {
+ current, err := source.resolve(t.Context(), rt)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if current.Source == baseline.Source {
+ t.Fatal("replacement retained identity")
+ }
+ if _, err := source.prepareRollback(t.Context(), baseline); err == nil {
+ t.Fatal("replacement accepted captured identity")
+ }
+ } else if _, err := source.resolve(t.Context(), rt); err == nil {
+ t.Fatal("mutation accepted")
+ }
+ _ = e
+ })
+ }
+}
diff --git a/internal/host/proofbinding_test.go b/internal/host/proofbinding_test.go
index 4c0feeeb0..332f72620 100644
--- a/internal/host/proofbinding_test.go
+++ b/internal/host/proofbinding_test.go
@@ -14,7 +14,6 @@ import (
"github.com/carlosframework/platform/internal/provision"
"github.com/carlosframework/platform/internal/registry"
"github.com/carlosframework/platform/internal/release"
- "github.com/carlosframework/platform/internal/rootstate"
)
func plan14ProofFixture(t *testing.T) (*proofRootEnv, registry.Route, provision.Record, *proofBindingSource) {
@@ -169,51 +168,6 @@ func TestPlan14ProofBindingChangesAfterObservation(t *testing.T) {
})
}
-func TestPlan14ProofBindingProvenance(t *testing.T) {
- for _, attack := range []string{"nonroot owner", "writable parent", "writable file", "symlink", "rename"} {
- t.Run(attack, func(t *testing.T) {
- e, rt, _, source := plan14ProofFixture(t)
- path := source.sys.(*fakeUnits).shows[0].FragmentPath
- switch attack {
- case "writable parent":
- if err := os.Chmod(filepath.Dir(path), 0777); err != nil {
- t.Fatal(err)
- }
- case "writable file":
- if err := os.Chmod(path, 0666); err != nil {
- t.Fatal(err)
- }
- case "symlink":
- if err := os.Rename(path, path+".real"); err != nil {
- t.Fatal(err)
- }
- if err := os.Symlink(path+".real", path); err != nil {
- t.Fatal(err)
- }
- case "rename":
- parent := filepath.Dir(path)
- if err := os.Rename(parent, parent+".old"); err != nil {
- t.Fatal(err)
- }
- t.Cleanup(func() { os.Remove(path); os.Remove(parent); os.Rename(parent+".old", parent) })
- if err := os.Mkdir(parent, 0755); err != nil {
- t.Fatal(err)
- }
- if err := os.WriteFile(path, []byte("forged"), 0644); err != nil {
- t.Fatal(err)
- }
- }
- source.openFile = rootstate.OpenTrustedFile
- if e.root.observeAndRecord(rt, 0).err == nil {
- t.Fatal("untrusted unit metadata accepted")
- }
- if got := release.ReadHealthy(e.bake, "bab", "console"); len(got) != 0 {
- t.Fatalf("untrusted metadata wrote health: %+v", got)
- }
- })
- }
-}
-
func TestPlan14OrdinaryInstanceBinding(t *testing.T) {
e, rt, rec, source := plan14ProofFixture(t)
rec.Addr, rec.Unit = "", ""
diff --git a/internal/host/proofduplicate_linux_test.go b/internal/host/proofduplicate_linux_test.go
new file mode 100644
index 000000000..0fb0cf64a
--- /dev/null
+++ b/internal/host/proofduplicate_linux_test.go
@@ -0,0 +1,96 @@
+package host
+
+import (
+ "os"
+ "path/filepath"
+ "testing"
+
+ "github.com/carlosframework/platform/internal/release"
+ "github.com/carlosframework/platform/internal/rootstate"
+)
+
+func TestPlan14IdenticalVersionKeepsRollbackEvidence(t *testing.T) {
+ if !plan14RootFixture(t) {
+ return
+ }
+ e, rt, u, c, _ := plan14AdoptionFixture(t)
+ if err := os.MkdirAll("/var/lib", 0755); err != nil {
+ t.Fatal(err)
+ }
+ if err := rootstate.EnsurePublicDir(release.RootHealthyDir); err != nil {
+ t.Fatal(err)
+ }
+ evidence := release.ReadHealthy(e.bake, rt.Account, rt.App)[0]
+ if err := release.RecordHealthy(release.RootHealthyDir, rt.Account, rt.App, evidence); err != nil {
+ t.Fatal(err)
+ }
+ original, err := os.ReadFile(filepath.Join(release.RootHealthyDir, "healthy", rt.Account, rt.App+".json"))
+ if err != nil {
+ t.Fatal(err)
+ }
+ raw, err := os.ReadFile(u.exe)
+ if err != nil {
+ t.Fatal(err)
+ }
+ v2 := release.VersionPath(u.opt, rt.Account, "v2", rt.App)
+ if err := os.MkdirAll(filepath.Dir(v2), 0755); err != nil {
+ t.Fatal(err)
+ }
+ if err := os.WriteFile(v2, raw, 0755); err != nil {
+ t.Fatal(err)
+ }
+ if err := release.PointLive(u.opt, rt.Host, rt.Account, "v2", rt.App); err != nil {
+ t.Fatal(err)
+ }
+ u.exe = v2
+ makeProofAncestorsPublic(t, u.exe)
+ makeProofAncestorsPublic(t, u.props.FragmentPath)
+ s := productionProofBindingSource(e.store, u, u.opt)
+ s.unitDirs = []string{filepath.Dir(u.props.FragmentPath)}
+ c.resolve, c.host, c.rollback, c.prepareRollback, c.targetFile = s.resolve, s.forHost, s.rollback, s.prepareRollback, rootstate.OpenTrustedFile
+ c.attempts = productionRootRestartChecks(u, u.opt).attempts
+ e.root.obs.resolve = s.resolve
+ e.bake = release.RootHealthyDir
+ if err := e.root.obs.recordSettled(e.bake)(rt); err != nil {
+ t.Fatal(err)
+ }
+ b, err := s.resolve(t.Context(), rt)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if b.Version != "v2" || !b.Historical || b.History == nil || *b.History != evidence {
+ t.Fatalf("binding: %+v", b)
+ }
+ captured := false
+ u.afterRestart = func() {
+ state, err := c.attempts()
+ if err != nil {
+ t.Fatal(err)
+ }
+ defer state.Close()
+ _, b, err := loadRollback(state, rt.Host, c.now())
+ if err != nil {
+ t.Fatal(err)
+ }
+ if b.Version != "v2" || b.History.Version != "v1" {
+ t.Fatal("evidence rewritten", b)
+ }
+ if _, err := s.prepareRollback(t.Context(), b); err != nil {
+ t.Fatal("v2 rollback not authorized", err)
+ }
+ captured = true
+ }
+ if err := checkedUnitRestart(u, u.opt, func(string) string { return "5s" }, e.root.obs.recordSettled(e.bake), c)(rt); err != nil {
+ t.Fatal(err)
+ }
+ if !captured || len(u.effects) != 1 {
+ t.Fatal("restart not captured", u.effects)
+ }
+ after, err := os.ReadFile(filepath.Join(release.RootHealthyDir, "healthy", rt.Account, rt.App+".json"))
+ if err != nil {
+ t.Fatal(err)
+ }
+ if string(after) != string(original) {
+ t.Fatal("B4 evidence changed")
+ }
+}
diff --git a/internal/host/proofnamed.go b/internal/host/proofnamed.go
new file mode 100644
index 000000000..448458a88
--- /dev/null
+++ b/internal/host/proofnamed.go
@@ -0,0 +1,201 @@
+package host
+
+import (
+ "bytes"
+ "context"
+ "crypto/sha256"
+ "encoding/hex"
+ "encoding/json"
+ "errors"
+ "io"
+ "os"
+ "path/filepath"
+ "strings"
+ "time"
+
+ "github.com/carlosframework/platform/internal/controlname"
+ "github.com/carlosframework/platform/internal/hostfloor"
+ "github.com/carlosframework/platform/internal/provision"
+ "github.com/carlosframework/platform/internal/release"
+ "github.com/carlosframework/platform/internal/rootstate"
+)
+
+const rootNamedUnits = "/etc/carlos/named-units.json"
+
+type namedUnit struct {
+ Host string `json:"host"`
+ Account string `json:"account,omitempty"`
+ App string `json:"app"`
+ Unit string `json:"unit"`
+ Addr string `json:"addr"`
+ Health *provision.Health `json:"health"`
+}
+
+type proofRecord struct {
+ record *provision.Record
+ key, revision, execPath string
+ local bool
+ files []proofUnitFile
+}
+
+func (s *proofBindingSource) trustedBytes(path string) ([]byte, proofUnitFile, error) {
+ f, err := s.openFile(path)
+ if err != nil {
+ return nil, proofUnitFile{}, err
+ }
+ defer f.Close()
+ if path == s.namedPath {
+ if err := rootstate.CheckPublicConfig(f); err != nil {
+ return nil, proofUnitFile{}, err
+ }
+ }
+ identity, err := rootstate.Identity(f)
+ if err != nil {
+ return nil, proofUnitFile{}, err
+ }
+ raw, err := io.ReadAll(io.LimitReader(f, rootstate.MaxRecord+1))
+ if err != nil {
+ return nil, proofUnitFile{}, err
+ }
+ if len(raw) > rootstate.MaxRecord {
+ return nil, proofUnitFile{}, os.ErrPermission
+ }
+ return raw, proofUnitFile{Path: path, Identity: identity}, nil
+}
+
+func (s *proofBindingSource) record(ctx context.Context, host string) (proofRecord, error) {
+ rec, etag, err := provision.FindRecordByHost(ctx, s.store, host)
+ if err == nil {
+ return proofRecord{record: rec, key: provision.RecordKey(rec.Account, rec.App, host), revision: etag}, nil
+ }
+ if !errors.Is(err, os.ErrNotExist) || s.namedPath == "" {
+ return proofRecord{}, err
+ }
+ var selected *namedUnit
+ var evidence []proofUnitFile
+ hash := sha256.New()
+ add := func(path string) ([]byte, error) {
+ raw, file, err := s.trustedBytes(path)
+ if err != nil {
+ return nil, err
+ }
+ evidence = append(evidence, file)
+ identity, _ := json.Marshal(file)
+ hash.Write(identity)
+ hash.Write(raw)
+ return raw, nil
+ }
+ raw, err := add(s.namedPath)
+ if err == nil {
+ var list struct {
+ Schema int `json:"schema"`
+ Units []namedUnit `json:"units"`
+ }
+ dec := json.NewDecoder(bytes.NewReader(raw))
+ dec.DisallowUnknownFields()
+ if dec.Decode(&list) != nil || dec.Decode(new(any)) != io.EOF || list.Schema != 1 {
+ return proofRecord{}, os.ErrPermission
+ }
+ for _, u := range list.Units {
+ if !controlname.ValidHostShape(u.Host) || !release.ValidApp(u.App) || (u.Account != "" && !release.ValidAccount(u.Account)) {
+ return proofRecord{}, os.ErrPermission
+ }
+ if u.Host == host {
+ if selected != nil {
+ return proofRecord{}, os.ErrPermission
+ }
+ copy := u
+ selected = &copy
+ }
+ }
+ } else if !errors.Is(err, os.ErrNotExist) {
+ return proofRecord{}, err
+ }
+ marker := filepath.Join(s.optDir, "system", "guard", "console-ready.json")
+ console, consoleErr := add(marker)
+ if consoleErr != nil && !errors.Is(consoleErr, os.ErrNotExist) {
+ return proofRecord{}, consoleErr
+ }
+ guarded := consoleErr == nil && string(console) == release.LiveLink(s.optDir, host)
+ execPath := release.LiveLink(s.optDir, host)
+ if guarded {
+ dropin := filepath.Join(s.unitDirs[0], "console.service.d", "90-host-floor.conf")
+ raw, err := add(dropin)
+ if err != nil || string(raw) != hostfloor.ConsoleGuardDropIn(string(console)) {
+ return proofRecord{}, os.ErrPermission
+ }
+ if selected == nil {
+ selected = &namedUnit{Host: host, App: "console", Unit: "console.service", Addr: "127.0.0.1:8090", Health: &provision.Health{Path: "/healthz"}}
+ }
+ if selected.Unit != "console.service" || selected.App != "console" || selected.Account != "" {
+ return proofRecord{}, os.ErrPermission
+ }
+ execPath = "/opt/carlos/system/guard/carlos"
+ }
+ if selected == nil {
+ return proofRecord{}, os.ErrNotExist
+ }
+ if selected.Health == nil || selected.Health.Path == "" || selected.Addr == "" || strings.HasPrefix(selected.Unit, "carlos-app@") {
+ return proofRecord{}, os.ErrPermission
+ }
+ rec = &provision.Record{Schema: 1, Host: host, Account: selected.Account, App: selected.App, Unit: selected.Unit, Kind: "instance", Addr: selected.Addr, Health: selected.Health}
+ return proofRecord{record: rec, key: s.namedPath, revision: hex.EncodeToString(hash.Sum(nil)), execPath: execPath, local: true, files: evidence}, nil
+}
+
+func (s *proofBindingSource) capturedVersion(host, source, exe, digest string) bool {
+ if s.attempts == nil {
+ return false
+ }
+ store, err := s.attempts()
+ if err != nil {
+ return false
+ }
+ defer store.Close()
+ now := time.Now()
+ if s.now != nil {
+ now = s.now()
+ }
+ attempt, binding, err := loadRollback(store, host, now)
+ return err == nil && binding.Source == source && attempt.Target == exe && attempt.TargetDigest == digest && !attempt.Failed && !attempt.Recovering
+}
+
+func proofExecPath(b proofBinding, opt string) string {
+ if b.ExecPath != "" {
+ return b.ExecPath
+ }
+ return release.LiveLink(opt, b.Route.Host)
+}
+
+func (s *proofBindingSource) installedConsoleVersion(version, digest string) bool {
+ pub, err := release.ParsePublicKey(os.Getenv("CARLOS_RELEASE_PUBKEY"), "CARLOS_RELEASE_PUBKEY")
+ if err != nil {
+ return false
+ }
+ dir, err := rootstate.Open(filepath.Join(s.optDir, "system", "guard", "identities"), false, true)
+ if err != nil {
+ return false
+ }
+ defer dir.Close()
+ names, err := dir.Names()
+ if err != nil {
+ return false
+ }
+ for _, name := range names {
+ if !strings.HasSuffix(name, ".json") {
+ continue
+ }
+ raw, err := dir.Read(name)
+ if err != nil {
+ return false
+ }
+ p, err := release.VerifySystemIdentity(pub, raw)
+ if err != nil {
+ return false
+ }
+ artifact, ok := p.Current.ConsoleArtifacts[release.AdoptPlatform()]
+ if ok && p.Current.Version == version && artifact.SHA256 == digest && name == p.Current.ReleaseTag+".json" {
+ return true
+ }
+ }
+ return false
+}
diff --git a/internal/host/proofnamed_linux_test.go b/internal/host/proofnamed_linux_test.go
new file mode 100644
index 000000000..7b3bd033f
--- /dev/null
+++ b/internal/host/proofnamed_linux_test.go
@@ -0,0 +1,209 @@
+package host
+
+import (
+ "crypto/ed25519"
+ "encoding/base64"
+ "encoding/json"
+ "os"
+ "path/filepath"
+ "strings"
+ "testing"
+
+ "github.com/carlosframework/platform/internal/hostfloor"
+ "github.com/carlosframework/platform/internal/provision"
+ "github.com/carlosframework/platform/internal/registry"
+ "github.com/carlosframework/platform/internal/release"
+ "github.com/carlosframework/platform/internal/rootstate"
+)
+
+func TestPlan14NamedUnitsWithoutDeploymentRecord(t *testing.T) {
+ if !plan14RootFixture(t) {
+ return
+ }
+ for _, scenario := range []string{"console bootstrap", "console bootstrap invalid capture", "console update", "console crash", "operator update", "forged unit", "changed list", "untrusted list", "missing dropin", "captured target changed"} {
+ t.Run(scenario, func(t *testing.T) {
+ e, rt, u, c, pub := plan14AdoptionFixture(t)
+ if err := e.store.Delete(t.Context(), provision.RecordKey(rt.Account, rt.App, rt.Host)); err != nil {
+ t.Fatal(err)
+ }
+ rt.Account = ""
+ rt.Addr = "127.0.0.1:8090"
+ rt.Health = `{"path":"/healthz","timeout":"2s","interval":"30s","grace":"10s","failures":3}`
+ if err := e.root.reg.Upsert(rt); err != nil {
+ t.Fatal(err)
+ }
+ if err := os.MkdirAll("/var/lib", 0755); err != nil {
+ t.Fatal(err)
+ }
+ if err := rootstate.EnsurePublicDir(release.RootHealthyDir); err != nil {
+ t.Fatal(err)
+ }
+ oldHealth := release.ReadHealthy(e.bake, "bab", "console")
+ for _, b := range oldHealth {
+ if strings.HasPrefix(scenario, "console bootstrap") {
+ continue
+ }
+ if err := release.RecordHealthy(release.RootHealthyDir, "", "console", b); err != nil {
+ t.Fatal(err)
+ }
+ }
+ t.Cleanup(func() {
+ if err := os.RemoveAll(release.RootHealthyDir); err != nil {
+ t.Error(err)
+ }
+ })
+ e.bake = release.RootHealthyDir
+ s := productionProofBindingSource(e.store, u, u.opt)
+ s.namedPath = filepath.Join(t.TempDir(), "named-units.json")
+ s.unitDirs = []string{filepath.Dir(u.props.FragmentPath)}
+ s.now = c.now
+ c.attempts = productionRootRestartChecks(u, u.opt).attempts
+ c.resolve, c.host, c.rollback, c.prepareRollback, c.dispatch, c.targetFile = s.resolve, s.forHost, s.rollback, s.prepareRollback, s.needsRestart, rootstate.OpenTrustedFile
+ e.root.obs.resolve = s.resolve
+ put := func(path string, body []byte) {
+ t.Helper()
+ if err := os.MkdirAll(filepath.Dir(path), 0755); err != nil {
+ t.Fatal(err)
+ }
+ if err := os.WriteFile(path, body, 0644); err != nil {
+ t.Fatal(err)
+ }
+ makeProofAncestorsPublic(t, path)
+ }
+ if scenario == "operator update" || scenario == "changed list" || scenario == "untrusted list" {
+ u.props.Name = "operator.service"
+ rt.Unit = u.props.Name
+ raw, err := json.Marshal(struct {
+ Schema int `json:"schema"`
+ Units []namedUnit `json:"units"`
+ }{1, []namedUnit{{Host: rt.Host, App: rt.App, Unit: rt.Unit, Addr: rt.Addr, Health: &provision.Health{Path: "/healthz"}}}})
+ if err != nil {
+ t.Fatal(err)
+ }
+ put(s.namedPath, raw)
+ } else if scenario != "forged unit" {
+ marker := filepath.Join(u.opt, "system", "guard", "console-ready.json")
+ put(marker, []byte(release.LiveLink(u.opt, rt.Host)))
+ dropin := filepath.Join(s.unitDirs[0], "console.service.d", "90-host-floor.conf")
+ put(dropin, []byte(hostfloor.ConsoleGuardDropIn(release.LiveLink(u.opt, rt.Host))))
+ u.props.DropInPaths = []string{dropin}
+ u.props.ExecPath = "/opt/carlos/system/guard/carlos"
+ put(u.props.ExecPath, []byte("root guard"))
+ }
+ if strings.HasPrefix(scenario, "console bootstrap") {
+ public, key, err := ed25519.GenerateKey(nil)
+ if err != nil {
+ t.Fatal(err)
+ }
+ t.Setenv("CARLOS_RELEASE_PUBKEY", base64.StdEncoding.EncodeToString(public))
+ rel := release.SystemRelease{Version: "v1", ReleaseTag: "v1.0.0", MovesProtocol: 1, Artifacts: map[string]release.SystemArtifact{release.AdoptPlatform(): {Key: release.SystemArtifactKey("v1", release.AdoptPlatform()), SHA256: strings.Repeat("a", 64)}}, ConsoleArtifacts: map[string]release.SystemArtifact{release.AdoptPlatform(): {Key: "bootstrap/console/v1/carlos-" + release.AdoptPlatform(), SHA256: oldHealth[0].SHA256}}}
+ if _, err := release.PromoteSystem(t.Context(), e.store, release.RootSigner(key), "router", "canary", rel, release.SystemPromoteOptions{}); err != nil {
+ t.Fatal(err)
+ }
+ wire, _, err := e.store.Get(t.Context(), release.SystemPointerKey("router", "canary"))
+ if err != nil {
+ t.Fatal(err)
+ }
+ put(filepath.Join(u.opt, "system", "guard", "identities", "v1.0.0.json"), wire)
+ }
+ makeProofAncestorsPublic(t, u.props.FragmentPath)
+ makeProofAncestorsPublic(t, u.exe)
+ makeProofAncestorsPublic(t, s.namedPath)
+ if scenario != "forged unit" {
+ if _, err := s.resolve(t.Context(), rt); err != nil {
+ t.Fatalf("baseline: %v", err)
+ }
+ }
+ if scenario == "console bootstrap invalid capture" {
+ put(filepath.Join(u.opt, "system", "guard", "identities", "v1.0.0.json"), []byte(`{"signature":"forged"}`))
+ if _, err := s.resolve(t.Context(), rt); err == nil {
+ t.Fatal("invalid root installation capture authorized bootstrap")
+ }
+ if len(u.effects) != 0 {
+ t.Fatal("invalid capture restarted console")
+ }
+ return
+ }
+ if strings.HasPrefix(scenario, "console bootstrap") {
+ if err := e.root.obs.recordSettled(e.bake)(rt); err != nil {
+ t.Fatal("initial health", err)
+ }
+ }
+ switch scenario {
+ case "console crash":
+ u.crashNew = true
+ case "untrusted list":
+ if err := os.Chmod(s.namedPath, 0666); err != nil {
+ t.Fatal(err)
+ }
+ case "missing dropin":
+ u.props.DropInPaths = nil
+ case "changed list":
+ u.crashNew = true
+ u.afterEffect = func() {
+ raw, err := os.ReadFile(s.namedPath)
+ if err != nil {
+ t.Fatal(err)
+ }
+ put(s.namedPath, append(raw, ' '))
+ }
+ case "captured target changed":
+ u.afterRestart = func() { put(release.VersionPath(u.opt, "", "v2", "console"), []byte("changed after capture")) }
+ }
+ // Registry metadata cannot select a unit or the readiness inputs.
+ rt.Unit = "forged.service"
+ rt.Addr = "127.0.0.1:1"
+ rt.Health = ""
+ if err := e.root.reg.Upsert(rt); err != nil {
+ t.Fatal(err)
+ }
+ c.ready = func(got registry.Route) func() error {
+ if got.Unit == rt.Unit || got.Addr != "127.0.0.1:8090" || got.Health == "" {
+ return func() error { return os.ErrPermission }
+ }
+ return func() error { return nil }
+ }
+ e.root.obs.ready = c.ready
+ forward := rootRestartRouteWith(e.root.reg, u, u.opt, func(string) string { return "5s" }, e.root.obs.recordSettled(e.bake), c)
+ rollback := rollbackUnitRestart(e.root.reg, u, u.opt, func(string) string { return "5s" }, c)
+ var rollbackErr error
+ err := release.Pass(t.Context(), e.root.reg, e.store, pub, u.opt, forward, release.BakeDir(e.bake), release.WithRestartFailurePropagation(), release.WithRollbackRestart(func(host string) error { rollbackErr = rollback(host); return rollbackErr }))
+ switch scenario {
+ case "console bootstrap", "console update", "operator update":
+ if err != nil {
+ t.Fatal(err)
+ }
+ if len(u.effects) != 1 || u.exe != release.VersionPath(u.opt, "", "v2", "console") {
+ t.Fatal(u.effects, u.exe)
+ }
+ if got := release.ReadHealthy(e.bake, "", "console"); len(got) != 2 {
+ t.Fatal("missing health", got)
+ }
+ if err := forward(rt.Host); err != nil {
+ t.Fatal("explicit named-unit restart", err)
+ }
+ if len(u.effects) != 2 {
+ t.Fatal("missing explicit restart", u.effects)
+ }
+ if got := release.ReadHealthy(e.bake, "", "console"); len(got) != 2 {
+ t.Fatal("explicit restart changed digest history", got)
+ }
+ case "console crash":
+ if err == nil || rollbackErr != nil || len(u.effects) != 3 || u.exe != release.VersionPath(u.opt, "", "v1", "console") {
+ t.Fatal(err, rollbackErr, u.effects, u.exe)
+ }
+ if got := release.ReadHealthy(e.bake, "", "console"); len(got) != 1 {
+ t.Fatal("crash recorded healthy", got)
+ }
+ case "forged unit", "untrusted list", "missing dropin":
+ if err == nil || len(u.effects) != 0 {
+ t.Fatal("forged authority restarted", err, u.effects)
+ }
+ default:
+ if err == nil {
+ t.Fatal("mutation succeeded")
+ }
+ }
+ })
+ }
+}
diff --git a/internal/host/proofobserve.go b/internal/host/proofobserve.go
index 054f6b2d3..cd125491b 100644
--- a/internal/host/proofobserve.go
+++ b/internal/host/proofobserve.go
@@ -75,7 +75,7 @@ func (o proofObserver) observe(rt registry.Route, after time.Duration) (liveBuil
if err != nil {
return liveBuild{}, fmt.Errorf("cannot read %s: %v", rt.Unit, err)
}
- if before.ExecPath != link {
+ if before.ExecPath != proofExecPath(binding, o.optDir) {
return liveBuild{}, fmt.Errorf("binding: %s runs %s, not %s", rt.Unit, before.ExecPath, link)
}
if before.ActiveState != "active" || before.MainPID <= 0 {
diff --git a/internal/host/releaseinit_linux_test.go b/internal/host/releaseinit_linux_test.go
new file mode 100644
index 000000000..f9c94da44
--- /dev/null
+++ b/internal/host/releaseinit_linux_test.go
@@ -0,0 +1,90 @@
+package host
+
+import (
+ "golang.org/x/sys/unix"
+ "os"
+ "path/filepath"
+ "testing"
+ "time"
+
+ "github.com/carlosframework/platform/internal/hostwrite"
+ "github.com/carlosframework/platform/internal/release"
+ "github.com/carlosframework/platform/internal/rootstate"
+)
+
+func TestPlan14ProductionReleaseInitialization(t *testing.T) {
+ if !plan14RootFixture(t) {
+ return
+ }
+ for _, mode := range []string{"fresh", "old-private", "symlink", "writable", "foreign"} {
+ t.Run(mode, func(t *testing.T) {
+ if err := os.MkdirAll("/var/lib", 0755); err != nil {
+ t.Fatal(err)
+ }
+ t.Cleanup(func() {
+ if err := os.RemoveAll(release.RootHealthyDir); err != nil {
+ t.Error(err)
+ }
+ })
+ switch mode {
+ case "old-private":
+ if err := os.Mkdir(release.RootHealthyDir, 0700); err != nil {
+ t.Fatal(err)
+ }
+ case "symlink":
+ if err := os.Symlink(t.TempDir(), release.RootHealthyDir); err != nil {
+ t.Fatal(err)
+ }
+ case "writable":
+ if err := os.Mkdir(release.RootHealthyDir, 0777); err != nil {
+ t.Fatal(err)
+ }
+ if err := os.Chmod(release.RootHealthyDir, 0777); err != nil {
+ t.Fatal(err)
+ }
+ case "foreign":
+ if err := os.Mkdir(release.RootHealthyDir, 0755); err != nil {
+ t.Fatal(err)
+ }
+ if err := unix.Mount("/foreign-dir", release.RootHealthyDir, "", unix.MS_BIND, ""); err != nil {
+ t.Fatal(err)
+ }
+ t.Cleanup(func() {
+ if err := unix.Unmount(release.RootHealthyDir, 0); err != nil {
+ t.Error(err)
+ }
+ })
+ }
+ c := productionRootRestartChecks(&fakeUnits{}, "/opt/carlos")
+ err := recoverRootRestarts(t.Context(), &fakeUnits{}, "/opt/carlos", func(string) string { return "" }, c, hostwrite.Config{})
+ good := mode == "fresh" || mode == "old-private"
+ if !good {
+ if err == nil {
+ t.Fatal("unsafe parent repaired")
+ }
+ return
+ }
+ if err != nil {
+ t.Fatal(err)
+ }
+ b := release.HealthyBuild{SHA256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", Version: "v1", How: "live", At: time.Now()}
+ if err := release.RecordHealthy(release.RootHealthyDir, "", "console", b); err != nil {
+ t.Fatal(err)
+ }
+ if got := release.ReadHealthy(release.RootHealthyDir, "", "console"); len(got) != 1 || got[0].SHA256 != b.SHA256 {
+ t.Fatal(got)
+ }
+ for path, mode := range map[string]os.FileMode{release.RootHealthyDir: 0755, filepath.Join(release.RootHealthyDir, "healthy"): 0755, filepath.Join(release.RootHealthyDir, "private"): 0700, rootRestartState: 0700} {
+ info, err := os.Stat(path)
+ if err != nil || info.Mode().Perm() != mode {
+ t.Fatalf("%s mode: %v %v", path, info, err)
+ }
+ }
+ f, err := rootstate.OpenTrustedFile(filepath.Join(release.RootHealthyDir, "healthy", release.OpsAccount, "console.json"))
+ if err != nil {
+ t.Fatal(err)
+ }
+ f.Close()
+ })
+ }
+}
diff --git a/internal/host/rootexecution_launch_linux_test.go b/internal/host/rootexecution_launch_linux_test.go
index 98ff5227f..73af722a8 100644
--- a/internal/host/rootexecution_launch_linux_test.go
+++ b/internal/host/rootexecution_launch_linux_test.go
@@ -148,7 +148,7 @@ func configureLaunchParticipation(t *testing.T, f *launchFixture) {
return
}
writeRev2Local(t, f, "active", 1000)
- unlock, err := disk.Lock(t.Context(), f.target.Host+".live")
+ unlock, err := disk.HoldLive(f.target.Host + ".live")
if err != nil {
t.Fatal(err)
}
@@ -251,3 +251,26 @@ func TestPlan14ExecutionServingRequiresRootSettlement(t *testing.T) {
}
}
}
+
+func (d *rollbackDisk) HoldLive(name string) (func(), error) {
+ f, err := os.OpenFile(filepath.Join(d.dir, name), os.O_CREATE|os.O_RDWR, 0600)
+ if err != nil {
+ return nil, err
+ }
+ lock := unix.Flock_t{Type: unix.F_WRLCK}
+ if err := unix.FcntlFlock(f.Fd(), unix.F_OFD_SETLK, &lock); err != nil {
+ f.Close()
+ return nil, err
+ }
+ return func() { f.Close() }, nil
+}
+func (d *rollbackDisk) LiveHeld(name string) (bool, error) {
+ f, err := os.OpenFile(filepath.Join(d.dir, name), os.O_RDWR, 0)
+ if err != nil {
+ return false, err
+ }
+ defer f.Close()
+ lock := unix.Flock_t{Type: unix.F_RDLCK}
+ err = unix.FcntlFlock(f.Fd(), unix.F_OFD_GETLK, &lock)
+ return lock.Type == unix.F_WRLCK && lock.Pid == -1, err
+}
diff --git a/internal/host/rootrestart.go b/internal/host/rootrestart.go
index f74ff68bd..a51f57722 100644
--- a/internal/host/rootrestart.go
+++ b/internal/host/rootrestart.go
@@ -2,9 +2,13 @@ package host
import (
"context"
+ "crypto/sha256"
+ "encoding/hex"
"errors"
+ "io"
"os"
"path/filepath"
+ "strings"
"sync"
"time"
@@ -15,6 +19,7 @@ import (
)
type rootRestartChecks struct {
+ targetFile func(string) (*os.File, error)
dispatch func(context.Context, registry.Route) (bool, error)
resolve proofBindingResolver
started *sync.Map
@@ -35,7 +40,7 @@ func productionRootRestartChecks(sys unitSystem, optDir string) rootRestartCheck
s, err := openDeployStore(ctx)
return productionProofBindingSource(s, sys, optDir), err
}
- return rootRestartChecks{started: &sync.Map{},
+ return rootRestartChecks{targetFile: rootstate.OpenTrustedFile, started: &sync.Map{},
dispatch: func(ctx context.Context, rt registry.Route) (bool, error) {
s, err := source(ctx)
if err != nil {
@@ -43,7 +48,12 @@ func productionRootRestartChecks(sys unitSystem, optDir string) rootRestartCheck
}
return s.needsRestart(ctx, rt)
},
- attempts: func() (rootstate.Store, error) { return rootstate.Open(rootRestartState, true, false) },
+ attempts: func() (rootstate.Store, error) {
+ if err := rootstate.EnsurePublicDir(release.RootHealthyDir); err != nil {
+ return nil, err
+ }
+ return rootstate.Open(rootRestartState, true, false)
+ },
prepareRollback: func(ctx context.Context, b proofBinding) (proofBinding, error) {
s, err := source(ctx)
if err != nil {
@@ -114,7 +124,26 @@ func checkedUnitRestart(sys unitSystem, optDir string, getenv func(string) strin
if err != nil {
return err
}
- attempt, err := captureRollback(s, binding, c.now(), unitSettleTimeout(getenv), target, c.identity)
+ rel, err := filepath.Rel(filepath.Join(optDir, "versions"), target)
+ if err != nil {
+ return err
+ }
+ version := strings.Split(rel, string(filepath.Separator))[0]
+ if !release.ValidVersion(version) || target != release.VersionPath(optDir, binding.Route.Account, version, binding.Route.App) || c.targetFile == nil {
+ return os.ErrPermission
+ }
+ f, err := c.targetFile(target)
+ if err != nil {
+ return err
+ }
+ hash := sha256.New()
+ _, err = io.Copy(hash, f)
+ f.Close()
+ if err != nil {
+ return err
+ }
+ targetDigest := hex.EncodeToString(hash.Sum(nil))
+ attempt, err := captureRollback(s, binding, c.now(), unitSettleTimeout(getenv), target, c.identity, targetDigest)
if err != nil {
return err
}
@@ -150,7 +179,7 @@ func restartBoundUnit(sys unitSystem, optDir string, getenv func(string) string,
if err != nil {
return err
}
- if before.ExecPath != release.LiveLink(optDir, rt.Host) {
+ if before.ExecPath != proofExecPath(binding, optDir) {
return os.ErrPermission
}
if before.ActiveState == "inactive" && before.SubState == "dead" {
diff --git a/internal/host/rootrollback.go b/internal/host/rootrollback.go
index 091bf2c2a..cf4e7c71e 100644
--- a/internal/host/rootrollback.go
+++ b/internal/host/rootrollback.go
@@ -19,15 +19,16 @@ const rollbackMargin = 30 * time.Second
const rootRestartState = "/var/lib/carlos-release/private/restarts"
type rollbackAttempt struct {
- ID string
- Host string
- Created time.Time
- Deadline time.Time
- Failed bool
- Recovering bool
- Settled bool
- Target string
- Identity hostwrite.Identity
+ ID string
+ Host string
+ Created time.Time
+ Deadline time.Time
+ Failed bool
+ Recovering bool
+ Settled bool
+ TargetDigest string
+ Target string
+ Identity hostwrite.Identity
}
type rollbackCapability struct {
@@ -73,8 +74,8 @@ func settleRollbackAttempt(s rootstate.Store, a rollbackAttempt) error {
return removeRollbackCapabilities(s, a.Host)
}
-func captureRollback(s rootstate.Store, b proofBinding, now time.Time, timeout time.Duration, target string, identity hostwrite.Identity) (rollbackAttempt, error) {
- if b.Source == "" || !b.Historical || b.Version == "" || b.Digest == "" || b.History == nil || b.History.Version != b.Version || b.History.SHA256 != b.Digest {
+func captureRollback(s rootstate.Store, b proofBinding, now time.Time, timeout time.Duration, target string, identity hostwrite.Identity, targetDigest ...string) (rollbackAttempt, error) {
+ if b.Source == "" || !b.Historical || b.Version == "" || b.Digest == "" || b.History == nil || b.History.SHA256 != b.Digest {
return rollbackAttempt{}, os.ErrPermission
}
if prior, err := readRollbackAttempt(s, b.Route.Host); err == nil {
@@ -92,6 +93,9 @@ func captureRollback(s rootstate.Store, b proofBinding, now time.Time, timeout t
return rollbackAttempt{}, err
}
a := rollbackAttempt{ID: hex.EncodeToString(id), Host: b.Route.Host, Created: now, Deadline: now.Add(2 * timeout), Target: target, Identity: identity}
+ if len(targetDigest) == 1 {
+ a.TargetDigest = targetDigest[0]
+ }
if err := writeRollbackState(s, rollbackCapabilityKey(a.Host, a.ID), rollbackCapability{Attempt: a, Binding: b}); err != nil {
return rollbackAttempt{}, err
}
@@ -114,7 +118,7 @@ func loadRollback(s rootstate.Store, host string, now time.Time) (rollbackAttemp
return a, proofBinding{}, err
}
var cap rollbackCapability
- if json.Unmarshal(b, &cap) != nil || cap.Attempt.ID != a.ID || cap.Attempt.Host != host || cap.Attempt.Target != a.Target || cap.Attempt.Identity != a.Identity || !cap.Attempt.Deadline.Equal(a.Deadline) || !cap.Attempt.Created.Equal(a.Created) || cap.Binding.Route.Host != host {
+ if json.Unmarshal(b, &cap) != nil || cap.Attempt.ID != a.ID || cap.Attempt.Host != host || cap.Attempt.Target != a.Target || cap.Attempt.TargetDigest != a.TargetDigest || cap.Attempt.Identity != a.Identity || !cap.Attempt.Deadline.Equal(a.Deadline) || !cap.Attempt.Created.Equal(a.Created) || cap.Binding.Route.Host != host {
return a, proofBinding{}, os.ErrPermission
}
return a, cap.Binding, nil
diff --git a/internal/host/rootrollback_process_test.go b/internal/host/rootrollback_process_test.go
index 3663986ec..8a026c9ee 100644
--- a/internal/host/rootrollback_process_test.go
+++ b/internal/host/rootrollback_process_test.go
@@ -179,7 +179,7 @@ func TestPlan14RollbackProcessCrash(t *testing.T) {
t.Fatal(err)
}
now := a.Created.Add(time.Second)
- c := rootRestartChecks{started: &sync.Map{}, attempts: func() (rootstate.Store, error) { return disk, nil }, prepareRollback: source.prepareRollback, rollback: source.rollback, host: source.forHost, ready: func(registry.Route) func() error { return func() error { return nil } }, now: func() time.Time { return now }, sleep: func(d time.Duration) { now = now.Add(d) }}
+ c := rootRestartChecks{targetFile: os.Open, started: &sync.Map{}, attempts: func() (rootstate.Store, error) { return disk, nil }, prepareRollback: source.prepareRollback, rollback: source.rollback, host: source.forHost, ready: func(registry.Route) func() error { return func() error { return nil } }, now: func() time.Time { return now }, sleep: func(d time.Duration) { now = now.Add(d) }}
before := len(u.effects)
err = recoverRootRestarts(t.Context(), u, u.opt, func(string) string { return "5s" }, c, hostwrite.Config{})
if boundary == "captured" {
diff --git a/internal/host/rootroute.go b/internal/host/rootroute.go
index c1a908d1b..85964855d 100644
--- a/internal/host/rootroute.go
+++ b/internal/host/rootroute.go
@@ -46,10 +46,15 @@ func sameProofCandidate(candidate, r registry.Route, declaredUnit string) bool {
return candidate.Account == r.Account && candidate.App == r.App && candidate.Host == r.Host && (candidate.Unit == declaredUnit || candidate.Unit == r.Unit) && candidate.Socket == r.Socket && candidate.Addr == r.Addr && candidate.Addrs == r.Addrs && candidate.Health == r.Health && candidate.Kind == r.Kind && candidate.Backing == r.Backing
}
func (s *proofBindingSource) needsRestart(ctx context.Context, candidate registry.Route) (bool, error) {
- rec, _, err := provision.FindRecordByHost(ctx, s.store, candidate.Host)
+ evidence, err := s.record(ctx, candidate.Host)
if err != nil {
return false, err
}
+ rec := evidence.record
+ if evidence.local {
+ _, err := s.forHost(ctx, candidate.Host)
+ return err == nil, err
+ }
if rec.Unit == "" {
return false, nil
}
diff --git a/internal/hostexec/live_test.go b/internal/hostexec/live_test.go
new file mode 100644
index 000000000..741a284f5
--- /dev/null
+++ b/internal/hostexec/live_test.go
@@ -0,0 +1,134 @@
+//go:build linux
+
+package hostexec
+
+import (
+ "context"
+ "encoding/json"
+ "fmt"
+ "os"
+ "path/filepath"
+ "testing"
+
+ "golang.org/x/sys/unix"
+)
+
+func (d *brokerDisk) HoldLive(name string) (func(), error) {
+ f, err := os.OpenFile(filepath.Join(d.dir, name), os.O_CREATE|os.O_RDWR, 0600)
+ if err != nil {
+ return nil, err
+ }
+ lock := unix.Flock_t{Type: unix.F_WRLCK}
+ if err := unix.FcntlFlock(f.Fd(), unix.F_OFD_SETLK, &lock); err != nil {
+ f.Close()
+ return nil, err
+ }
+ return func() { f.Close() }, nil
+}
+func (d *brokerDisk) LiveHeld(name string) (bool, error) {
+ f, err := os.OpenFile(filepath.Join(d.dir, name), os.O_RDWR, 0)
+ if err != nil {
+ return false, err
+ }
+ defer f.Close()
+ lock := unix.Flock_t{Type: unix.F_RDLCK}
+ err = unix.FcntlFlock(f.Fd(), unix.F_OFD_GETLK, &lock)
+ return lock.Type == unix.F_WRLCK && lock.Pid == -1, err
+}
+
+type pausedProbe struct {
+ *brokerDisk
+ entered, resume chan struct{}
+ mutate bool
+}
+
+func (d *pausedProbe) LiveHeld(name string) (bool, error) {
+ if d.mutate {
+ unlock, err := d.Lock(context.Background(), name)
+ if err != nil {
+ return false, err
+ }
+ close(d.entered)
+ <-d.resume
+ unlock()
+ return false, nil
+ }
+ held, err := d.brokerDisk.LiveHeld(name)
+ close(d.entered)
+ <-d.resume
+ return held, err
+}
+
+type falseBrokerProbe struct{ *brokerDisk }
+
+func (d falseBrokerProbe) LiveHeld(name string) (bool, error) {
+ f, err := os.OpenFile(filepath.Join(d.dir, name), os.O_RDWR, 0)
+ if err != nil {
+ return false, err
+ }
+ defer f.Close()
+ err = unix.Flock(int(f.Fd()), unix.LOCK_EX|unix.LOCK_NB)
+ if err == unix.EWOULDBLOCK {
+ return true, nil
+ }
+ return false, err
+}
+
+func TestPlan14ConcurrentReadersNeverGrantLiveness(t *testing.T) {
+ for _, mutate := range []bool{false, true} {
+ t.Run(fmt.Sprint(mutate), func(t *testing.T) {
+ b, d, _, clock, q, oldPeer := brokerFixture(t)
+ peer, err := currentControllerProcess()
+ if err != nil {
+ t.Fatal(err)
+ }
+ b.cfg.BootID = peer.KernelBootID
+ original := b.cfg.Authority
+ b.cfg.Authority = func(ctx context.Context, q ExecutionRequest, _ ControllerProcess) (ExecutionAuthority, error) {
+ return original(ctx, q, oldPeer)
+ }
+ if _, err = b.Execute(t.Context(), peer, q); err != nil {
+ t.Fatal(err)
+ }
+ census, _ := json.Marshal(map[string]any{"Schema": 1, "Box": "box", "Enrollment": "en", "Migration": 1, "Revision": 1, "LaunchRevision": 1, "Complete": true})
+ if err = d.Write("census.json", census); err != nil {
+ t.Fatal(err)
+ }
+ if _, err = ReadRoot(t.Context(), d, clock, q, false); err != nil {
+ t.Fatal(err)
+ }
+ raw, err := d.Read(q.Host + ".json")
+ if err != nil {
+ t.Fatal(err)
+ }
+ r, err := b.read(q.Host)
+ if err != nil {
+ t.Fatal(err)
+ }
+ d.failAt = d.writes + 1
+ if err = b.deny(t.Context(), r, ErrLost); err == nil {
+ t.Fatal("denial succeeded")
+ }
+ if err = os.WriteFile(filepath.Join(d.dir, q.Host+".json"), raw, 0600); err != nil {
+ t.Fatal(err)
+ }
+ a := &pausedProbe{brokerDisk: d, entered: make(chan struct{}), resume: make(chan struct{}), mutate: mutate}
+ done := make(chan error, 1)
+ go func() { _, err := ReadRoot(t.Context(), a, clock, q, false); done <- err }()
+ <-a.entered
+ var readErr error
+ if mutate {
+ _, readErr = ReadRoot(t.Context(), falseBrokerProbe{d}, clock, q, false)
+ } else {
+ _, readErr = ReadRoot(t.Context(), d, clock, q, false)
+ }
+ close(a.resume)
+ if err := <-done; err == nil {
+ t.Fatal("reader A admitted")
+ }
+ if (readErr == nil) != mutate {
+ t.Fatalf("mutation=%v B error=%v", mutate, readErr)
+ }
+ })
+ }
+}
diff --git a/internal/hostexec/plan14_root_participation_test.go b/internal/hostexec/plan14_root_participation_test.go
index 1cc280f7f..d2ec0b6a4 100644
--- a/internal/hostexec/plan14_root_participation_test.go
+++ b/internal/hostexec/plan14_root_participation_test.go
@@ -509,13 +509,11 @@ func TestPlan14ExecutionLossPersistenceRevokesAllLiveLocks(t *testing.T) {
if err := b.deny(t.Context(), r, ErrLost); err == nil {
t.Fatal("loss persistence failure accepted")
}
- ctx, cancel := context.WithTimeout(t.Context(), 100*time.Millisecond)
- defer cancel()
- unlock, err := d.Lock(ctx, other.Host+".live")
- if err != nil {
- t.Fatal("independent reader can still observe another live permit", err)
+ held, err := d.LiveHeld(other.Host + ".live")
+ if err != nil || held {
+ t.Fatal("independent reader still sees live permit", held, err)
}
- unlock()
+
}
func TestPlan14ExecutionVisibleRenameCannotGrantBeforeSync(t *testing.T) {
diff --git a/internal/hostexec/replay_window_test.go b/internal/hostexec/replay_window_test.go
new file mode 100644
index 000000000..e3661bb5e
--- /dev/null
+++ b/internal/hostexec/replay_window_test.go
@@ -0,0 +1,110 @@
+//go:build linux
+
+package hostexec
+
+import (
+ "context"
+ "fmt"
+ "testing"
+
+ "github.com/carlosframework/platform/internal/rootstate"
+)
+
+func TestPlan14ExecutionReplayWindowLongSequence(t *testing.T) {
+ for _, manyOps := range []bool{false, true} {
+ t.Run(fmt.Sprint(manyOps), func(t *testing.T) {
+ b, d, remote, _, base, peer := brokerFixture(t)
+ original := b.cfg.Authority
+ current := base
+ b.cfg.Authority = func(ctx context.Context, q ExecutionRequest, p ControllerProcess) (ExecutionAuthority, error) {
+ if !sameExecution(q, ExecutionRecord{Request: current}) {
+ return ExecutionAuthority{}, ErrLost
+ }
+ q.Op = base.Op
+ return original(ctx, q, p)
+ }
+ var stale ExecutionRequest
+ var staleSettle ExecutionRequest
+ begin := func(q ExecutionRequest) ExecutionResponse {
+ t.Helper()
+ r, err := b.Execute(t.Context(), peer, q)
+ if err != nil {
+ t.Fatal(err)
+ }
+ return r
+ }
+ permit := begin(current)
+ for i := 0; i < 4200; i++ {
+ q := current
+ q.Operation = "executionRenew"
+ q.ID = fmt.Sprintf("renew-%d", i)
+ q.Token = permit.Token
+ permit = begin(q)
+ if i == 0 {
+ stale = q
+ }
+ again := begin(q)
+ if again != permit {
+ t.Fatal("latest request replay changed")
+ }
+ if manyOps {
+ settle := current
+ settle.Operation = "executionSettle"
+ settle.ID = fmt.Sprintf("settle-%d", i)
+ settle.Token = permit.Token
+ begin(settle)
+ if i == 0 {
+ staleSettle = settle
+ }
+ // A different ID cannot reopen a just-settled operation.
+ repeat := current
+ repeat.ID = "reopen"
+ if _, err := b.Execute(t.Context(), peer, repeat); err == nil {
+ t.Fatal("settled operation reopened")
+ }
+ current.Op = fmt.Sprintf("operation-%d", i)
+ current.ID = fmt.Sprintf("begin-%d", i)
+ permit = begin(current)
+ if _, err := b.Execute(t.Context(), peer, settle); err != nil {
+ t.Fatal("previous settlement lost", err)
+ }
+ }
+ raw, err := d.Read(current.Host + ".json")
+ if err != nil {
+ t.Fatal(err)
+ }
+ if len(raw) >= rootstate.MaxRecord/16 {
+ t.Fatal("unbounded execution record", len(raw))
+ }
+ r, err := b.read(current.Host)
+ if err != nil || len(r.Replay) > 2 {
+ t.Fatal("unbounded replay", len(r.Replay), err)
+ }
+ }
+ calls := remote.calls
+ for _, q := range []ExecutionRequest{stale, base, staleSettle} {
+ if q.ID == "" {
+ continue
+ }
+ if _, err := b.Execute(t.Context(), peer, q); err == nil {
+ t.Fatal("stale request accepted", q.Operation)
+ }
+ }
+ if remote.calls != calls {
+ t.Fatal("stale request made remote write")
+ }
+ // Persisted bounds survive reconstruction of the broker.
+ if err := b.Close(t.Context()); err != nil {
+ t.Fatal(err)
+ }
+ fresh, err := NewRootBroker(b.cfg)
+ if err != nil {
+ t.Fatal(err)
+ }
+ defer fresh.Close(t.Context())
+ if r, err := fresh.read(current.Host); err != nil || len(r.Replay) > 2 {
+ t.Fatal("reload lost bounds", err)
+ }
+ })
+ }
+}
diff --git a/internal/hostexec/rootbroker.go b/internal/hostexec/rootbroker.go
index 7aaca4668..2af2f7a54 100644
--- a/internal/hostexec/rootbroker.go
+++ b/internal/hostexec/rootbroker.go
@@ -122,9 +122,7 @@ func (b *RootBroker) write(r ExecutionRecord) error {
return err
}
if r.Status == "active" {
- ctx, cancel := context.WithTimeout(context.Background(), time.Second)
- defer cancel()
- release, err := b.cfg.State.Lock(ctx, r.Request.Host+".live")
+ release, err := rootstate.HoldLive(b.cfg.State, r.Request.Host+".live")
if err != nil {
return err
}
@@ -292,16 +290,18 @@ func (b *RootBroker) Execute(ctx context.Context, peer ControllerProcess, q Exec
b.mu.Lock()
closed := b.closed
b.mu.Unlock()
- if closed || (!missing && r.Status != "settled") {
+ if closed || (!missing && (r.Status != "settled" || sameExecution(q, r))) {
return ExecutionResponse{}, ErrLost
}
var token [32]byte
if _, err = rand.Read(token[:]); err != nil {
return ExecutionResponse{}, err
}
- history := r.Replay
- if history == nil {
- history = make(map[string]ExecutionReplay)
+ history := make(map[string]ExecutionReplay)
+ for id, replay := range r.Replay {
+ if replay.Response.Status == "settled" && replay.Response.Token == r.Token {
+ history[id] = replay
+ }
}
b.mu.Lock()
delete(b.denied, q.Host)
@@ -372,9 +372,6 @@ func (b *RootBroker) Execute(ctx context.Context, peer ControllerProcess, q Exec
if q.Operation == "executionView" {
return executionResponse(r), nil
}
- if len(r.Replay) >= 4096 {
- return ExecutionResponse{}, b.deny(ctx, r, ErrState)
- }
return b.acquire(ctx, peer, q, r, digest, false)
}
@@ -397,6 +394,24 @@ func (b *RootBroker) acquire(ctx context.Context, peer ControllerProcess, q Exec
return ExecutionResponse{}, b.deny(ctx, r, e)
}
} else {
+ if r.Token == q.Token {
+ var token [32]byte
+ if _, err := rand.Read(token[:]); err != nil {
+ return ExecutionResponse{}, err
+ }
+ r.TransitionFrom, r.Token = r.Token, hex.EncodeToString(token[:])
+ }
+ priorID := ""
+ var prior ExecutionReplay
+ for id, replay := range r.Replay {
+ if replay.Response.Status == "settled" && (priorID == "" || replay.Response.Expires.After(prior.Response.Expires) || replay.Response.Expires.Equal(prior.Response.Expires) && id > priorID) {
+ priorID, prior = id, replay
+ }
+ }
+ r.Replay = make(map[string]ExecutionReplay)
+ if priorID != "" {
+ r.Replay[priorID] = prior
+ }
wall, start, e := b.cfg.Clock.Now()
if e != nil {
return ExecutionResponse{}, b.deny(ctx, r, e)
@@ -480,6 +495,7 @@ func (b *RootBroker) settle(ctx context.Context, q ExecutionRequest, r Execution
}
r.Status = "settled"
out := executionResponse(r)
+ r.Replay = make(map[string]ExecutionReplay)
r.Replay[q.ID] = ExecutionReplay{Digest: digest, Response: out}
if err = b.write(r); err != nil {
return ExecutionResponse{}, err
diff --git a/internal/hostexec/rootbroker_lifetime_test.go b/internal/hostexec/rootbroker_lifetime_test.go
index a58a0c333..3835a42e4 100644
--- a/internal/hostexec/rootbroker_lifetime_test.go
+++ b/internal/hostexec/rootbroker_lifetime_test.go
@@ -65,17 +65,12 @@ func TestPlan14ExecutionShutdownRevokesBeforeCleanup(t *testing.T) {
closing := make(chan error, 1)
go func() { closing <- b.Close(t.Context()) }()
<-entered
- probe, cancel := context.WithTimeout(t.Context(), time.Second)
- unlock, err := disk.Lock(probe, q.Host+".live")
- cancel()
- if err == nil {
- unlock()
- }
+ held, err := disk.LiveHeld(q.Host + ".live")
close(resume)
if closeErr := <-closing; closeErr != nil {
t.Fatal(closeErr)
}
- if err != nil {
+ if err != nil || held {
t.Fatalf("cleanup began before live permission was withdrawn: %v", err)
}
q.ID = "after-shutdown"
diff --git a/internal/hostexec/rootread.go b/internal/hostexec/rootread.go
index 7b1b5b292..9c8ed3be3 100644
--- a/internal/hostexec/rootread.go
+++ b/internal/hostexec/rootread.go
@@ -5,7 +5,6 @@ import (
"context"
"errors"
"os"
- "time"
"github.com/carlosframework/platform/internal/rootparticipation"
"github.com/carlosframework/platform/internal/rootstate"
@@ -54,20 +53,13 @@ func ReadRoot(ctx context.Context, store rootstate.Store, clock Clock, q Executi
if err = ControllerAlive(ctx, r.Peer); err != nil {
return r, err
}
- // The stable root-owned live lock also carries an in-memory revocation.
- probe, cancel := context.WithTimeout(ctx, 10*time.Millisecond)
- unlock, err := store.Lock(probe, q.Host+".live")
- cancel()
- if err == nil {
- unlock()
- return r, ErrLost
- }
- if ctx.Err() != nil {
- return r, ctx.Err()
- }
- if !errors.Is(err, context.DeadlineExceeded) {
+ if err := ctx.Err(); err != nil {
return r, err
}
+ alive, err := rootstate.LiveHeld(store, q.Host+".live")
+ if err != nil || !alive {
+ return r, errors.Join(ErrLost, err)
+ }
again, err := store.Read(q.Host + ".json")
if err != nil || !bytes.Equal(raw, again) {
return r, ErrLost
diff --git a/internal/provision/plan14_root_reads_test.go b/internal/provision/plan14_root_reads_test.go
index f1ce0af63..474b0221f 100644
--- a/internal/provision/plan14_root_reads_test.go
+++ b/internal/provision/plan14_root_reads_test.go
@@ -608,6 +608,13 @@ func TestPlan14RootReadCensus(t *testing.T) {
t.Fatal(err)
}
seal = "c88a37629c95dd397beeb95f5ef101438fa884ac04dc4435aa55387b897d393c"
+ if errs := checkRootReadLegacy(inv, seal); len(errs) != 0 {
+ t.Fatal(errs)
+ }
+ if err = loadRootReadInventory(filepath.Join(root, "internal/provision/testdata/plan14-root-reads-fix1.tsv"), &inv, true); err != nil {
+ t.Fatal(err)
+ }
+ seal = "c3351f27f6467fc33b319b36a7e64b75b2d992232f956d9c6243cc49e0c05396"
errs := append(compareRootReads(got, inv), checkRootReadLegacy(inv, seal)...)
errs = append(errs, checkRootReadDeclarations(got, inv)...)
if len(errs) > 0 {
diff --git a/internal/provision/plan9_b8_census_test.go b/internal/provision/plan9_b8_census_test.go
index 3e9199f3b..350c4c5f4 100644
--- a/internal/provision/plan9_b8_census_test.go
+++ b/internal/provision/plan9_b8_census_test.go
@@ -472,6 +472,7 @@ func Reviewed(ctx context.Context, s Store, k string) error {
// BEGIN REVIEWED INVENTORY
var plan9B8CensusInventory = []censusEntry{
+ {"internal/host/proofnamed.go", "proofBindingSource.record", "key-site", "key:RecordKey", "2f0e14e715df41e50c7a95714028a57a6a256c4dbd3a4fbeeff32f9e0d263d72"},
{"internal/host/rootrecovery_rebind.go", "type recoveryRebindRequest", "key-site", "key:RecordKey", "b5db3e4dcd4807edea1d053eb1787fbf222be97d3f892e2ab66771457a51dc3d"},
{"internal/host/rootrecovery_rebind.go", "ClaimRootHTTP.rebindRecoveryInventory", "key-site", "key:RecordKey", "70f47ac54692802662b353edb4d89cdb2617fc154dde6f2b698e488b8356baf1"},
{"internal/host/claimrecovery_remote.go", "claimCrossBoxHandover.installRecoveryRemote", "key-site", "key:RecordKey", "d60c3ab46f7b909fa22c648e883e402345d2652a3c54640c3981b13c5c36e168"},
@@ -485,8 +486,8 @@ var plan9B8CensusInventory = []censusEntry{
{"internal/hostbox/journalservice.go", "journalRequestHash", "key-site", "key:RecordKey", "8c07978658bb060c28ad88477dcbb10d8591ef194cac283cb54eb6a4e833ac76"},
{"internal/hostbox/journalservice.go", "type JournalRequest", "key-site", "key:RecordKey", "14baf4c57a342a8b2dadaa95c965de4650ee352183de3a8c56768f47642ff5ab"},
{"internal/hostbox/journalservice.go", "validateJournalRequest", "key-site", "key:RecordKey", "724be9634772f00bf0d9da2c39c8049763c9aad6f3075c10f31c97ab69c15103"},
- {"internal/host/proofbinding.go", "proofBindingSource.binding", "key-site", "key:RecordKey", "4896c3a5c903e6a99386aaf089e36a0dc9616aaa9f98c9e5720c5fd7467141bc"},
- {"internal/host/proofbinding.go", "type proofBinding", "key-site", "key:RecordKey", "b5455029fb4bb12ca54c0c1f2594fb1633a7717e7796a8ba5ec37794954f8e26"},
+ {"internal/host/proofbinding.go", "proofBindingSource.binding", "key-site", "key:RecordKey", "f2563f773a9684e3329752babba671f41a7fcd1c1f81d2ce02b5865aa35dafb4"},
+ {"internal/host/proofbinding.go", "type proofBinding", "key-site", "key:RecordKey", "418f61bc5a4192d99821b315baeb1a5b4619593303f8a02e9b13ef824003a613"},
{"internal/host/rootroute.go", "proofBindingSource.claimIdentity", "key-site", "key:RecordKey", "ad6e0fc3f2cd360473a5d0a2267d2dc7944b45d80947613f791db8d573f8fee6"},
{"internal/provision/rootrecord.go", "FindRecordByHost", "key-site", "key:ParseRecordKey,lit:instances", "10c8254cf896be034334d634151d169760a909ac1ba4c1fc334785e86e4b84d4"},
// Read-only discovery of signed loss records; no record write or lifecycle authority.
@@ -796,7 +797,7 @@ var plan9B8CensusInventory = []censusEntry{
{"internal/hostevidence/signature.go", "immutable", "nonrecord", "sel:Put", "54fb2bdc230c2cb4193f3b808004b63bcfd092266846fc0c03e61617c3ad0ab5"},
{"internal/hostexec/controller.go", "Controller.run", "nonrecord", "sel:Put", "03df11b375761730700ce30c0db05c57f0828629eda0a5de126ea1a2f2f7501c"},
// D1: conditional execution lease write under control/hosts/<host>/exec/<box>.json; no deployment record key.
- {"internal/hostexec/rootbroker.go", "RootBroker.acquire", "nonrecord", "sel:Put", "663f0d0ee6f49ebb2da2daef891f58c4645175702f4517494f50fe6ecc1f9db6"},
+ {"internal/hostexec/rootbroker.go", "RootBroker.acquire", "nonrecord", "sel:Put", "2fdbeb00cd5e68d0a93c56229a90c1e334bffc9273c466c8cca83f2de4b2691e"},
{"internal/hostfence/termination.go", "TerminationWorker.persist", "nonrecord", "sel:Put", "47758114adcc3c493a9d1ead0fa7087ad0d1e49595c891bab4dfb51c9058a8a1"},
{"internal/hostfiles/contract.go", "CopyManifest", "nonrecord", "sel:Put", "9754b113ca2cad5e267402a44ac25de778e332d0c87027767f9a7daa4937d9fd"},
{"internal/hostfiles/publisher.go", "Publisher.put", "nonrecord", "sel:Put", "4bf1d0c4ab995f4e5afa8d7675cbd00446da006a82a659764f8013c011f9efaa"},
diff --git a/internal/provision/testdata/plan14-root-reads-fix1.tsv b/internal/provision/testdata/plan14-root-reads-fix1.tsv
new file mode 100644
index 000000000..2a68ca483
--- /dev/null
+++ b/internal/provision/testdata/plan14-root-reads-fix1.tsv
@@ -0,0 +1,134 @@
+# Fix1 requirement 7: individually reviewed merge sites and fix1 authority changes; earlier freezes remain intact.
+@legacy 6a8e6cb5a3039d651b40bca44c609522ac0641a0de4ffddb43f26aee8d2fc68c internal/activator/activator.go Service.WakeWorker legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Shares the pending wake completion; agent scheduling remains legacy. registry:Host@1163,registry:Host@1573,registry:Host@755,registry:Host@785,whole:Route@1146 f2b4264c60829851de2e5b59dbc7da790f59d256ae50b1f465a92f344e9381d0
+internal/activator/activator.go Service.WakeWorker legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Shares the pending wake completion; agent scheduling remains legacy. registry:Host@1163,registry:Host@1573,registry:Host@755,registry:Host@785,whole:Route@1146 f2b4264c60829851de2e5b59dbc7da790f59d256ae50b1f465a92f344e9381d0
+@legacy 8248741ccabdeb67ee2591d233b6f45a49ace3d1d4ccd692f0271e894d3c51c3 internal/activator/activator.go Service.begin legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Waits for the pending wake instead of issuing another; agent scheduling remains legacy. registry:Host@1119,registry:Host@1198,registry:Host@248,registry:Host@327,whole:Route@1128,whole:Route@1135 3955a32110d69d8672b70a762651bf476da0305f4ef6b916def05966b162d259
+internal/activator/activator.go Service.begin legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Waits for the pending wake instead of issuing another; agent scheduling remains legacy. registry:Host@1119,registry:Host@1198,registry:Host@248,registry:Host@327,whole:Route@1128,whole:Route@1135 3955a32110d69d8672b70a762651bf476da0305f4ef6b916def05966b162d259
+@legacy 486058b7281feceaec4a34c293d20b0107050f5d8fd674de3ca9869349c7b48d internal/activator/activator.go Service.doWake legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Discharges seed cleanup before restore and retains the lease when emptiness is unproven; agent lifecycle remains legacy. registry:DBPath@1032,registry:DBPath@1048,registry:DBPath@1175,registry:DBPath@1186,registry:DBPath@20068,registry:Host@1014,registry:Host@1166,registry:Host@1277,registry:Host@174,registry:Host@2137,registry:Host@3858,registry:Host@861,registry:Host@936,registry:Replication@20103,registry:Seed@11134,registry:Socket@1061,registry:Socket@1077,registry:Socket@1200,registry:Socket@1211,whole:Route@10036,whole:Route@11235,whole:Route@11306,whole:Route@1231,whole:Route@1237,whole:Route@1303,whole:Route@1311,whole:Route@13696,whole:Route@15557,whole:Route@159,whole:Route@16203,whole:Route@17510,whole:Route@17664,whole:Route@18020,whole:Route@18114,whole:Route@18514,whole:Route@19516,whole:Route@19664,whole:Route@20177,whole:Route@2027,whole:Route@21075,whole:Route@21170,whole:Route@3481,whole:Route@3740,whole:Route@3810,whole:Route@3816,whole:Route@3885,whole:Route@3893,whole:Route@4681,whole:Route@5680,whole:Route@6719,whole:Route@7600,whole:Route@9188,whole:Route@9383,whole:Route@959 fc7cd77fe8cbb3fe0473ee42156b87c614005dab4726f9aa924a7f4335589721
+internal/activator/activator.go Service.doWake legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Discharges seed cleanup before restore and retains the lease when emptiness is unproven; agent lifecycle remains legacy. registry:DBPath@1032,registry:DBPath@1048,registry:DBPath@1175,registry:DBPath@1186,registry:DBPath@20068,registry:Host@1014,registry:Host@1166,registry:Host@1277,registry:Host@174,registry:Host@2137,registry:Host@3858,registry:Host@861,registry:Host@936,registry:Replication@20103,registry:Seed@11134,registry:Socket@1061,registry:Socket@1077,registry:Socket@1200,registry:Socket@1211,whole:Route@10036,whole:Route@11235,whole:Route@11306,whole:Route@1231,whole:Route@1237,whole:Route@1303,whole:Route@1311,whole:Route@13696,whole:Route@15557,whole:Route@159,whole:Route@16203,whole:Route@17510,whole:Route@17664,whole:Route@18020,whole:Route@18114,whole:Route@18514,whole:Route@19516,whole:Route@19664,whole:Route@20177,whole:Route@2027,whole:Route@21075,whole:Route@21170,whole:Route@3481,whole:Route@3740,whole:Route@3810,whole:Route@3816,whole:Route@3885,whole:Route@3893,whole:Route@4681,whole:Route@5680,whole:Route@6719,whole:Route@7600,whole:Route@9188,whole:Route@9383,whole:Route@959 fc7cd77fe8cbb3fe0473ee42156b87c614005dab4726f9aa924a7f4335589721
+@legacy a6ad686aaf076f8f9be82c046c65727d6f07e8e066c1fae7d015586d85d82523 internal/activator/activator.go Service.sidecarOwnBuild legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Selects the sidecar's own admitted fallback build; agent selection is not root executable authority. registry:Host@1056,registry:Host@496,registry:Host@842,whole:Route@307,whole:Route@665 b69af7fc58c5f30691ecfbfea7e89c21f9a35525e9b421f2cc36fa4edbb19ec7
+internal/activator/activator.go Service.sidecarOwnBuild legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Selects the sidecar's own admitted fallback build; agent selection is not root executable authority. registry:Host@1056,registry:Host@496,registry:Host@842,whole:Route@307,whole:Route@665 b69af7fc58c5f30691ecfbfea7e89c21f9a35525e9b421f2cc36fa4edbb19ec7
+@legacy 8f680fc9a9ff509503fba4925db3144ba5345eec443e9cabe93f8e12443ba191 internal/activator/activator.go Service.startSidecar legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Uses the sidecar's own fallback after a flag decline; agent lifecycle remains legacy. registry:Host@1802,registry:Host@254,whole:Route@1287,whole:Route@1350,whole:Route@1749,whole:Route@1940,whole:Route@459,whole:Route@522,whole:Route@581,whole:Route@623,whole:Route@753 3ed350b4eac78f53d3eca39fe6418c72a3a9f7d6a29c7d932c9b420c30c8941a
+internal/activator/activator.go Service.startSidecar legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Uses the sidecar's own fallback after a flag decline; agent lifecycle remains legacy. registry:Host@1802,registry:Host@254,whole:Route@1287,whole:Route@1350,whole:Route@1749,whole:Route@1940,whole:Route@459,whole:Route@522,whole:Route@581,whole:Route@623,whole:Route@753 3ed350b4eac78f53d3eca39fe6418c72a3a9f7d6a29c7d932c9b420c30c8941a
+@legacy 9b330f2a0928ed2b16404c336bce1e372dfc67a4edfea74f2ae1bacd2ef168fb internal/activator/activator.go Service.stop legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Joins sidecar cleanup and proves host empty before releasing its lease; agent lifecycle remains legacy. whole:Route@491,whole:Route@6016,whole:Route@6066,whole:Route@6129 41b7ff098271a8c1b0ee6f82520d7db895b79cd0d4af86bc71479df70a722025
+internal/activator/activator.go Service.stop legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Joins sidecar cleanup and proves host empty before releasing its lease; agent lifecycle remains legacy. whole:Route@491,whole:Route@6016,whole:Route@6066,whole:Route@6129 41b7ff098271a8c1b0ee6f82520d7db895b79cd0d4af86bc71479df70a722025
+@legacy 6f4c4f1714c84b4bdeeba3709c89576cb8b0aa3ded6ac038d80fbbeb97a4bcef internal/activator/activator.go Service.sweepOnce legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Checks completed parking and retains failed sidecar cleanup; agent lifecycle remains legacy. registry:Hibernate@11832,registry:Hibernate@20990,registry:Hibernate@4795,registry:Hibernate@6453,registry:Hibernate@8833,registry:Host@21059,registry:Host@21117,registry:Host@21510,registry:Host@22241,registry:Host@22323,registry:Host@23388,registry:Host@23567,registry:Host@23616,registry:NextDue@22196,registry:Status@21006,whole:Route@11834,whole:Route@13754,whole:Route@15464,whole:Route@15654,whole:Route@15947,whole:Route@16119,whole:Route@16266,whole:Route@20477,whole:Route@21910,whole:Route@22250,whole:Route@22257,whole:Route@23203,whole:Route@23600,whole:Route@4797,whole:Route@6455,whole:Route@8835 4d422b923c537680a1780c9cc6b6b3eba7de1b620519ce9f5d4fc60b84e0b623
+internal/activator/activator.go Service.sweepOnce legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Checks completed parking and retains failed sidecar cleanup; agent lifecycle remains legacy. registry:Hibernate@11832,registry:Hibernate@20990,registry:Hibernate@4795,registry:Hibernate@6453,registry:Hibernate@8833,registry:Host@21059,registry:Host@21117,registry:Host@21510,registry:Host@22241,registry:Host@22323,registry:Host@23388,registry:Host@23567,registry:Host@23616,registry:NextDue@22196,registry:Status@21006,whole:Route@11834,whole:Route@13754,whole:Route@15464,whole:Route@15654,whole:Route@15947,whole:Route@16119,whole:Route@16266,whole:Route@20477,whole:Route@21910,whole:Route@22250,whole:Route@22257,whole:Route@23203,whole:Route@23600,whole:Route@4797,whole:Route@6455,whole:Route@8835 4d422b923c537680a1780c9cc6b6b3eba7de1b620519ce9f5d4fc60b84e0b623
+@legacy 4f8aa2ba5e351ff671d63428fc74f433b1b91158b83963b191185e64b18ab2ff internal/activator/activator.go Service.wake legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Adds completion synchronization and launch-layout handling; agent wake path remains legacy. registry:Socket@6616,registry:Socket@6777,whole:Route@1900,whole:Route@1957,whole:Route@5153,whole:Route@6569,whole:Route@6618,whole:Route@6779,whole:Route@8030,whole:Route@8051 4ef50e888909a34a30326256565121acda6e7d21cf9504ca32fe9678a0db2047
+internal/activator/activator.go Service.wake legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Adds completion synchronization and launch-layout handling; agent wake path remains legacy. registry:Socket@6616,registry:Socket@6777,whole:Route@1900,whole:Route@1957,whole:Route@5153,whole:Route@6569,whole:Route@6618,whole:Route@6779,whole:Route@8030,whole:Route@8051 4ef50e888909a34a30326256565121acda6e7d21cf9504ca32fe9678a0db2047
+@legacy 0494b6c31d5547e5312e60dac28bac95df9a81352a32dd82b26d1fa93dedce37 internal/activator/backend_exec.go ExecBackend.BuildIdentity legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Reports the selected app build to agent coordination; root independently resolves and checks launch authority. file:Lstat@518,registry:App@240,registry:App@256,registry:App@273,registry:App@305,registry:App@316,registry:App@415,registry:App@498,registry:Host@217,registry:Host@406,registry:Host@616,registry:Host@757,registry:Host@903,whole:Route@486 5d41fca919ab378e2d3bad1611cab5f5f476aa1471b3a0868c05f22801a1c07f
+internal/activator/backend_exec.go ExecBackend.BuildIdentity legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Reports the selected app build to agent coordination; root independently resolves and checks launch authority. file:Lstat@518,registry:App@240,registry:App@256,registry:App@273,registry:App@305,registry:App@316,registry:App@415,registry:App@498,registry:Host@217,registry:Host@406,registry:Host@616,registry:Host@757,registry:Host@903,whole:Route@486 5d41fca919ab378e2d3bad1611cab5f5f476aa1471b3a0868c05f22801a1c07f
+@legacy 055e1b0c5586fafbb8650adc9f63f034c915c36e9148b47aa30ddb35712170e5 internal/activator/backend_exec.go ExecBackend.Restore legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Reads a seed-cleanup obligation before restoring warm state; agent recovery remains legacy. file:Stat@407,registry:Host@103,whole:Route@123,whole:Route@344 03a8882816e6ac1948828ea9d250e02d912e3192b6b254710609fd3f9344b12e
+internal/activator/backend_exec.go ExecBackend.Restore legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Reads a seed-cleanup obligation before restoring warm state; agent recovery remains legacy. file:Stat@407,registry:Host@103,whole:Route@123,whole:Route@344 03a8882816e6ac1948828ea9d250e02d912e3192b6b254710609fd3f9344b12e
+@legacy 513970dbc7d14a217e28a674ab11d804be295b3e94da91eba7ccfd9ff8a1ba8f internal/activator/backend_exec.go ExecBackend.declinedLivePin legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Selects an admitted fallback link after a flag decline; root independently validates executable authority. registry:Host@430,registry:Host@555,whole:Route@144,whole:Route@617 7b16d1916266f99b0e1c5c4d2c51f3f9d0c513eabea1c876d683f7a808621dd3
+internal/activator/backend_exec.go ExecBackend.declinedLivePin legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Selects an admitted fallback link after a flag decline; root independently validates executable authority. registry:Host@430,registry:Host@555,whole:Route@144,whole:Route@617 7b16d1916266f99b0e1c5c4d2c51f3f9d0c513eabea1c876d683f7a808621dd3
+@legacy cb620f2facb84219f9d46a1061f438f092c5d23295643726bddfa6842501247d internal/activator/backend_exec.go ExecBackend.nestedSeedGone legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Requests nested cleanup through the root control door; root independently authorizes that request. registry:Host@175,registry:Host@313,registry:Host@408,whole:Route@570 c19514333877df0682e8408ca2c188adc9184b307478f2b660d0c06a4006fd4d
+internal/activator/backend_exec.go ExecBackend.nestedSeedGone legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Requests nested cleanup through the root control door; root independently authorizes that request. registry:Host@175,registry:Host@313,registry:Host@408,whole:Route@570 c19514333877df0682e8408ca2c188adc9184b307478f2b660d0c06a4006fd4d
+@legacy 780744da79acb29e585ad8be907ce3f40626c09e5e1cf4fa4ee32e553bce3f54 internal/activator/backend_exec.go ExecBackend.seedChild legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Persists cleanup obligation before seeding and proves descendants gone before deletion; agent recovery remains legacy. file:CommandContext@3135,file:Stat@2036,registry:App@4384,registry:Host@120,whole:Route@1409,whole:Route@149,whole:Route@1541,whole:Route@1745,whole:Route@176,whole:Route@3083,whole:Route@4379,whole:Route@672,whole:Route@7076,whole:Route@755,whole:Route@9882 69a22aee730d36401dce43a33bfdbb0c24dba544bdff30b6674f962819dd551d
+internal/activator/backend_exec.go ExecBackend.seedChild legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Persists cleanup obligation before seeding and proves descendants gone before deletion; agent recovery remains legacy. file:CommandContext@3135,file:Stat@2036,registry:App@4384,registry:Host@120,whole:Route@1409,whole:Route@149,whole:Route@1541,whole:Route@1745,whole:Route@176,whole:Route@3083,whole:Route@4379,whole:Route@672,whole:Route@7076,whole:Route@755,whole:Route@9882 69a22aee730d36401dce43a33bfdbb0c24dba544bdff30b6674f962819dd551d
+@legacy 2f0bf6be7e746863ece5861b0723ada6b13fdfe4124d1c73649271c1f909076b internal/activator/backend_exec.go ExecBackend.seedDescendantsGone legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Uses delegated cgroup cleanup, with the existing undelegated/no-kill fallback; agent cleanup remains legacy. registry:Host@275,registry:Host@454,registry:Host@828,whole:Route@182,whole:Route@236 856b73ac27f77532281f670d974c1a0e305ab5c55cb5d3f4b52481322a1fc43e
+internal/activator/backend_exec.go ExecBackend.seedDescendantsGone legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Uses delegated cgroup cleanup, with the existing undelegated/no-kill fallback; agent cleanup remains legacy. registry:Host@275,registry:Host@454,registry:Host@828,whole:Route@182,whole:Route@236 856b73ac27f77532281f670d974c1a0e305ab5c55cb5d3f4b52481322a1fc43e
+@legacy 2e0b99c44df2f786015dbe0aa47c18e1954e8493b69638afbc00e3c71523e238 internal/activator/backend_exec.go ExecBackend.seedObligationProof legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Chooses delegated or nested cleanup proof for an agent seed obligation; root checks nested requests independently. whole:Route@169,whole:Route@243,whole:Route@360 df28dc62181712c840a161ebe2294d46b5788e05ac322d1cdc30c91c07efd0d1
+internal/activator/backend_exec.go ExecBackend.seedObligationProof legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Chooses delegated or nested cleanup proof for an agent seed obligation; root checks nested requests independently. whole:Route@169,whole:Route@243,whole:Route@360 df28dc62181712c840a161ebe2294d46b5788e05ac322d1cdc30c91c07efd0d1
+@legacy 5c517883b60693399116850b047d162d1e72cc8605558ab146ce41bd55635020 internal/activator/backend_exec.go ExecBackend.seedUnit legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Persists nested seed cleanup and uses declined-build pinning; agent lifecycle remains legacy. file:Stat@1644,registry:Host@135,whole:Route@1123,whole:Route@167,whole:Route@3202,whole:Route@3332,whole:Route@3867,whole:Route@532,whole:Route@613,whole:Route@679,whole:Route@997 7081e0360208c3e5d114b40ffd71a42380663d22589006411ea386132fae0e4b
+internal/activator/backend_exec.go ExecBackend.seedUnit legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Persists nested seed cleanup and uses declined-build pinning; agent lifecycle remains legacy. file:Stat@1644,registry:Host@135,whole:Route@1123,whole:Route@167,whole:Route@3202,whole:Route@3332,whole:Route@3867,whole:Route@532,whole:Route@613,whole:Route@679,whole:Route@997 7081e0360208c3e5d114b40ffd71a42380663d22589006411ea386132fae0e4b
+@legacy fbfcc24ac0c2460215c22c7e24d44ba5ca0b02c6257ca27633281b2890c5f318 internal/activator/backend_exec.go ExecBackend.seedUnitFailed legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Requires nested seed cleanup proof before discharging the obligation; agent lifecycle remains legacy. whole:Route@168 1fc6aea611d503eeb3eff318b435125df30ebe4a2c3c35e9e41554e4c5b1b98d
+internal/activator/backend_exec.go ExecBackend.seedUnitFailed legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Requires nested seed cleanup proof before discharging the obligation; agent lifecycle remains legacy. whole:Route@168 1fc6aea611d503eeb3eff318b435125df30ebe4a2c3c35e9e41554e4c5b1b98d
+@legacy 0d076aa11d49c9e186f3de18ca19920d705dcd4a0be0eb8702fe319bc67cc816 internal/activator/backend_exec.go ExecBackend.settleSeedObligation legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Reads and discharges an agent-owned cleanup obligation only after cleanup proof; no new root authority. registry:Host@115,whole:Route@635 9c40f2c8ecc306c3e8b1d1aee19bcbe033a8f4fb90ef1df75c9fa9ee60896f29
+internal/activator/backend_exec.go ExecBackend.settleSeedObligation legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Reads and discharges an agent-owned cleanup obligation only after cleanup proof; no new root authority. registry:Host@115,whole:Route@635 9c40f2c8ecc306c3e8b1d1aee19bcbe033a8f4fb90ef1df75c9fa9ee60896f29
+@legacy 5fea2dfe648453dc92c35012c4e533d3797535f5966a5cb75fafe3a224b8d263 internal/activator/backend_exec.go ExecBackend.spawnUnitFrom legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Pins the admitted fallback and staged launch input; root independently resolves and verifies launch authority. registry:Host@1071,registry:Host@1473,registry:Host@1576,registry:Host@1994,registry:Host@2474,registry:Host@3400,registry:Host@3986,registry:Host@4256,registry:Host@4476,registry:Host@4661,registry:Host@4763,registry:Host@5043,registry:Host@5105,registry:Host@5258,registry:Host@5297,registry:Host@5576,registry:Host@5670,whole:Route@1167,whole:Route@1402,whole:Route@194,whole:Route@2678,whole:Route@4309,whole:Route@5196,whole:Route@5355,whole:Route@758,whole:Route@856 d7586a67e4d59b1ae0536d038dc5572923402100f0ca2b2cd8a426f944272a3b
+internal/activator/backend_exec.go ExecBackend.spawnUnitFrom legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Pins the admitted fallback and staged launch input; root independently resolves and verifies launch authority. registry:Host@1071,registry:Host@1473,registry:Host@1576,registry:Host@1994,registry:Host@2474,registry:Host@3400,registry:Host@3986,registry:Host@4256,registry:Host@4476,registry:Host@4661,registry:Host@4763,registry:Host@5043,registry:Host@5105,registry:Host@5258,registry:Host@5297,registry:Host@5576,registry:Host@5670,whole:Route@1167,whole:Route@1402,whole:Route@194,whole:Route@2678,whole:Route@4309,whole:Route@5196,whole:Route@5355,whole:Route@758,whole:Route@856 d7586a67e4d59b1ae0536d038dc5572923402100f0ca2b2cd8a426f944272a3b
+@legacy 09a20c120876db8e298bd5c21471dba4660df662bbfd77401de047b4d70166fb internal/activator/backend_exec.go ExecBackend.startSidecarUnitFrom legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Pins the sidecar fallback before staged launch; root independently verifies launch authority. registry:Host@1463,registry:Host@1538,registry:Host@1684,registry:Host@1797,registry:Host@1852,registry:Host@915,registry:Host@996,whole:Route@1418,whole:Route@1579,whole:Route@170,whole:Route@1887,whole:Route@675,whole:Route@761,whole:Route@819 35ab2d27fe6d6f2c3be68ec9c2396a9d07978c8655fbb10fda932807cba75a90
+internal/activator/backend_exec.go ExecBackend.startSidecarUnitFrom legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Pins the sidecar fallback before staged launch; root independently verifies launch authority. registry:Host@1463,registry:Host@1538,registry:Host@1684,registry:Host@1797,registry:Host@1852,registry:Host@915,registry:Host@996,whole:Route@1418,whole:Route@1579,whole:Route@170,whole:Route@1887,whole:Route@675,whole:Route@761,whole:Route@819 35ab2d27fe6d6f2c3be68ec9c2396a9d07978c8655fbb10fda932807cba75a90
+@legacy f5e1a652817f600938ef6845134b5b542d2696e26ffdd051dd49f79f73a8a082 internal/activator/backend_exec.go readSeedObligation legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Bounded read of the agent's seed cleanup marker; not root evidence. file:ReadAll@424 9d1a0e132e14c553281086bf3c21791d9d4f7ef0c683e61c70d5c773c859acd0
+internal/activator/backend_exec.go readSeedObligation legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Bounded read of the agent's seed cleanup marker; not root evidence. file:ReadAll@424 9d1a0e132e14c553281086bf3c21791d9d4f7ef0c683e61c70d5c773c859acd0
+@legacy ab9a728b11d549f477176ac093d8556a0de7aba807efad4912e6411a1e01b990 internal/activator/backend_exec.go recordSeedObligation legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Persists the agent's seed cleanup obligation before seeding; not root evidence. file:Lstat@122 10cf0c461af08ee7ec163c3c17c93b23a7dd62478c24fe9b37558ee19cdd005e
+internal/activator/backend_exec.go recordSeedObligation legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Persists the agent's seed cleanup obligation before seeding; not root evidence. file:Lstat@122 10cf0c461af08ee7ec163c3c17c93b23a7dd62478c24fe9b37558ee19cdd005e
+@legacy 975bf21e487221983321987550b787ec36acc1ae883e0e4bf74164fad03cba15 internal/activator/containment.go ExecBackend.KillGen legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Uses shared child-kill cleanup before removing the generation cgroup; agent containment remains legacy. registry:Host@303,registry:Host@419,registry:Host@559,registry:Host@628,whole:Route@178 119bf1ed10769b40540f80c5be716c96475852f1de10f384da1d9e0c5fd49009
+internal/activator/containment.go ExecBackend.KillGen legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Uses shared child-kill cleanup before removing the generation cgroup; agent containment remains legacy. registry:Host@303,registry:Host@419,registry:Host@559,registry:Host@628,whole:Route@178 119bf1ed10769b40540f80c5be716c96475852f1de10f384da1d9e0c5fd49009
+@legacy 268ccc6b54fa9db483022812cdbed4c54bdb4f10f013833f93c11503dc83a05a internal/activator/genbackend.go ExecBackend.EmptyHost legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Checks agent-owned host cleanup before lease release; no root authority is derived from it. registry:Host@236,registry:Host@486 d3d403e96871c006b7d217d0be4bc4a704721df8e4039f61957acadd6a7f1047
+internal/activator/genbackend.go ExecBackend.EmptyHost legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Checks agent-owned host cleanup before lease release; no root authority is derived from it. registry:Host@236,registry:Host@486 d3d403e96871c006b7d217d0be4bc4a704721df8e4039f61957acadd6a7f1047
+@legacy 67971329de3b82ad3c1def15f18d653095391a60f0ee3d56c53ba0a3a55433d7 internal/activator/genbackend.go SplitBackend.EmptyHost legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Dispatches to the agent backend's emptiness check; no root authority is derived from it. file:Exec@190,file:Exec@263,registry:Backing@85,whole:Route@243,whole:Route@314 cc740daf5bee33235f539b49f4f572b068d71928a43a07bc5242fe64c771621a
+internal/activator/genbackend.go SplitBackend.EmptyHost legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Dispatches to the agent backend's emptiness check; no root authority is derived from it. file:Exec@190,file:Exec@263,registry:Backing@85,whole:Route@243,whole:Route@314 cc740daf5bee33235f539b49f4f572b068d71928a43a07bc5242fe64c771621a
+@legacy 04fa48efa31b90b7d4d27164bb8e16d9ad1269b3624cb923231390779032dd40 internal/activator/identity.go SplitBackend.BuildIdentity legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Dispatches the agent's selected build identity; root launch authority remains independently checked. file:Exec@217,registry:Backing@108,registry:Host@349,whole:Route@386 51e0ad8ea2844f763465f7189c985b712fe01f130437c6f40887661adf6050f2
+internal/activator/identity.go SplitBackend.BuildIdentity legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Dispatches the agent's selected build identity; root launch authority remains independently checked. file:Exec@217,registry:Backing@108,registry:Host@349,whole:Route@386 51e0ad8ea2844f763465f7189c985b712fe01f130437c6f40887661adf6050f2
+@legacy 016469544dcf04def4ee5935a6b37c855f170f7285d2e7d91171a8b77f639e83 internal/activator/opset.go Service.stopHostProven legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Keeps host lease ownership until agent stop and emptiness checks complete; agent lifecycle remains legacy. registry:Host@816,registry:Host@917,whole:Route@225,whole:Route@449,whole:Route@528,whole:Route@91 5888fdcdc672593dfabbf3089bda8c62b261199e5e3a2b511560a836d4cdcf9f
+internal/activator/opset.go Service.stopHostProven legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Keeps host lease ownership until agent stop and emptiness checks complete; agent lifecycle remains legacy. registry:Host@816,registry:Host@917,whole:Route@225,whole:Route@449,whole:Route@528,whole:Route@91 5888fdcdc672593dfabbf3089bda8c62b261199e5e3a2b511560a836d4cdcf9f
+@legacy c6237e9c3a8017c0a4f79b4fdff6e55d194dda45d8570c62d4a4c9ef9d02893f internal/activator/opset.go Service.wakeHostProven legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Dispatches agent wake with completion proof; agent lifecycle remains legacy. registry:Backing@140,whole:Route@275,whole:Route@464 94c38ab286ebb381e1029b9d2d44a8c4a2ec2f0824c84529d6ebd01d09253b06
+internal/activator/opset.go Service.wakeHostProven legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Dispatches agent wake with completion proof; agent lifecycle remains legacy. registry:Backing@140,whole:Route@275,whole:Route@464 94c38ab286ebb381e1029b9d2d44a8c4a2ec2f0824c84529d6ebd01d09253b06
+@legacy 244e151a8b809801795cccd53b7cd2eb024183b7073fafac1464e521d88d433d internal/activator/workerswap.go Service.ReplaceWorker legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Counts only a cleanly parked incarnation as a completed replacement; agent worker lifecycle remains legacy. whole:Route@2082 8dd7319d604d694c46023cc36c70a17d37cd7f3f3666693e06847f8ae0237644
+internal/activator/workerswap.go Service.ReplaceWorker legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Counts only a cleanly parked incarnation as a completed replacement; agent worker lifecycle remains legacy. whole:Route@2082 8dd7319d604d694c46023cc36c70a17d37cd7f3f3666693e06847f8ae0237644
+@legacy 1d56337714538e14fdde6884de2cc182f2b12d773634e69ea8191cea1356d086 internal/cgroup/cgroup.go Manager.startIn legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Requires generation limits and clone3 placement before execution; existing agent delegated-cgroup management remains legacy. file:Open@1723 b3ddb60dacb432c8cb5b1d612ee822628466b560d4738f6a059b36ef6e0389af
+internal/cgroup/cgroup.go Manager.startIn legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Requires generation limits and clone3 placement before execution; existing agent delegated-cgroup management remains legacy. file:Open@1723 b3ddb60dacb432c8cb5b1d612ee822628466b560d4738f6a059b36ef6e0389af
+@legacy 8c967a581429a938dc6d3aae2006bcdf68409bccf09de3a420f5af298e1624a7 internal/cgroup/cgroup_linux.go placementLive legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Reads cgroup.events and tests opening cgroup.procs to classify placement failure; existing agent cgroup setup remains legacy. file:OpenFile@143,file:ReadFile@53 3eb4bff2349a77a2df31ad6a5697785987713ea57f4e72bcce5572a3c51e6d37
+internal/cgroup/cgroup_linux.go placementLive legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Reads cgroup.events and tests opening cgroup.procs to classify placement failure; existing agent cgroup setup remains legacy. file:OpenFile@143,file:ReadFile@53 3eb4bff2349a77a2df31ad6a5697785987713ea57f4e72bcce5572a3c51e6d37
+@legacy ddc5364c30bfcb1280118e518e6010c598bd243e4c26e2c2eb48cc27ee9d7546 internal/cgroup/cleanup_linux.go Manager.openCleanupAt legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Distinguishes missing cgroup.kill on an existing cgroup from a vanished cgroup; delegated cleanup remains legacy. file:OpenFile@302 744592df568dcb31b49c7fbb98fae467a1f6d1a723866b6c6b045ecdfe4608f8
+internal/cgroup/cleanup_linux.go Manager.openCleanupAt legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Distinguishes missing cgroup.kill on an existing cgroup from a vanished cgroup; delegated cleanup remains legacy. file:OpenFile@302 744592df568dcb31b49c7fbb98fae467a1f6d1a723866b6c6b045ecdfe4608f8
+@legacy 4d68da0c917f446c9e3edb9dd61c4b858b611abfea0e60f1788c9797dcae5074 internal/cgroup/gen.go delegatesMemory legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Reads subtree_control to refuse a generation without delegated memory; existing agent resource management remains legacy. file:ReadFile@52 eedc3240831c2404279b7cc54647a247347f532abd7c05c43f87cbaa69186aac
+internal/cgroup/gen.go delegatesMemory legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Reads subtree_control to refuse a generation without delegated memory; existing agent resource management remains legacy. file:ReadFile@52 eedc3240831c2404279b7cc54647a247347f532abd7c05c43f87cbaa69186aac
+@legacy 026e41f74cfa976ec08cb7721ec41419e6cc131d321a817e254158a6683c23e7 internal/cgroup/gen.go enableChildren legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Routes the controller write through a kernel-error test seam; controller discovery and delegated setup remain legacy. file:ReadFile@54 4e47034591ca3e1c158f92d9b738c62ba9a18abe82ae5f4782c59c38ac4c93b3
+internal/cgroup/gen.go enableChildren legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Routes the controller write through a kernel-error test seam; controller discovery and delegated setup remain legacy. file:ReadFile@54 4e47034591ca3e1c158f92d9b738c62ba9a18abe82ae5f4782c59c38ac4c93b3
+@legacy 8f4e9341a61f2510e54b8d2d41215e2b6294729cc8b9f74942336b7239d9c8e0 internal/console/templates/app_instance.html external legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Displays Retry only when the reported protocol, book and saved epoch permit it; browser display remains legacy. file:external@0 670d3e28e0a72eebcadf131d9e82bc1eabb53dd5193dd5b5cd14d56c14a4084c
+internal/console/templates/app_instance.html external legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Displays Retry only when the reported protocol, book and saved epoch permit it; browser display remains legacy. file:external@0 670d3e28e0a72eebcadf131d9e82bc1eabb53dd5193dd5b5cd14d56c14a4084c
+internal/host/agent.go fastConvergeLoop authority B3 fix1-merge-review;basis=Comment-only addition naming the host-retry log; existing B3 restart wiring is unchanged. whole:Route@8442,whole:Route@9005 e17fce6d022c48f24176144d213f063ad57fdd3e00a3ea75c96e2d86eaae4ca7
+internal/host/proofbinding.go productionProofBindingSource authority B3,J1 fix1;basis=Binds deployment or root-managed named-unit evidence, trusted unit identity and digest history; registry names are hints only. file:Open@217,file:Read@796 4856068bf684eb808b608760b68e2c3526b9990e7fb0d853c5196232eaf77339
+internal/host/proofbinding.go proofBindingSource.binding authority B3,J1 fix1;basis=Binds deployment or root-managed named-unit evidence, trusted unit identity and digest history; registry names are hints only. file:EvalSymlinks@2524,registry:Unit@3822,registry:Unit@461,registry:Unit@4775,registry:Unit@544,registry:Unit@717,whole:Route@5255,whole:Route@5262 f2563f773a9684e3329752babba671f41a7fcd1c1f81d2ce02b5865aa35dafb4
+internal/host/proofbinding.go proofBindingSource.resolve authority B3,J1 fix1;basis=Binds deployment or root-managed named-unit evidence, trusted unit identity and digest history; registry names are hints only. registry:Host@134,whole:Route@235,whole:Route@248 1463a0ca29f4f52678f90d5b115d0b3cac66ada406487a491faa0185e7e25bdb
+internal/host/proofnamed.go proofBindingSource.capturedVersion authority B3,J1 fix1;basis=Authorizes recordless units only from descriptor-checked root configuration, installed console guard evidence, root history or the matching root update capture. 6c8b703edc6a75ab57208afb1368ac3914fb09b7c86a0824f3e868c9a1fdd22b
+internal/host/proofnamed.go proofBindingSource.installedConsoleVersion authority B3,J1 fix1;basis=Authorizes recordless units only from descriptor-checked root configuration, installed console guard evidence, root history or the matching root update capture. file:Open@229,file:Read@532 1c9fbf0cbb127c8c7f80e0144627f0cfa0358fd5713d6c92339e84561480adcd
+internal/host/proofnamed.go proofBindingSource.record authority B3,J1 fix1;basis=Authorizes recordless units only from descriptor-checked root configuration, installed console guard evidence, root history or the matching root update capture. 2f0e14e715df41e50c7a95714028a57a6a256c4dbd3a4fbeeff32f9e0d263d72
+internal/host/proofnamed.go proofBindingSource.trustedBytes authority B3,J1 fix1;basis=Authorizes recordless units only from descriptor-checked root configuration, installed console guard evidence, root history or the matching root update capture. file:ReadAll@422 e86300d6a9c92fc0b720966b9ca8141678d254b60d95b4802d5a6cb2f07c88cc
+internal/host/proofnamed.go proofExecPath authority B3,J1 fix1;basis=Authorizes recordless units only from descriptor-checked root configuration, installed console guard evidence, root history or the matching root update capture. registry:Host@132,whole:Route@134 81d91324ee91fbc6e992e5e91376ccaf53c167972435ac70adf95576067a25ad
+internal/host/proofobserve.go proofObserver.observe authority B3,J1,J4 fix1;basis=Observes only the canonically bound unit, executable and readiness, including the installed console guard wrapper. registry:Host@2696,registry:Host@381,registry:Unit@1193,registry:Unit@1979,registry:Unit@2184,registry:Unit@417,registry:Unit@498,registry:Unit@637,registry:Unit@777,registry:Unit@923,whole:Route@1778,whole:Route@206,whole:Route@2245,whole:Route@326,whole:Route@339 b568040bf461e094c77f60f7f6e5d984efabda555cf23234952cd3eaf9c79bdd
+internal/host/restart.go restartRequestLeg authority E1,E3,J1,J4 fix1-merge-review;basis=Reads the new host-retry log while preserving root-signed grant verification and ordinary restart gates. whole:Route@1314,whole:Route@1349,whole:Route@2102,whole:Route@2151,whole:Route@2233,whole:Route@2271,whole:Route@236,whole:Route@3065,whole:Route@557,whole:Route@773 ce2e328da82f9d9c621c9793b7d1ff10505e7d3bf9e36853e472726ea528127a
+internal/host/restart.go restartSeed authority E1,E3,J1,J4 fix1-merge-review;basis=Baselines both request logs without applying historical ordinary restarts; signed retry grants remain independently verified. whole:Route@1054,whole:Route@1316,whole:Route@312,whole:Route@650,whole:Route@760 c3f191a5194d65bb6ab42bbfd58ac3719718f93a2420c5780541f55f127e8ff1
+internal/host/restartscope.go applyRetries authority E1,E3,J1,J4 fix1-merge-review;basis=Verifies the deployment-root signature and account/app/host/book/epoch before lifting a restriction. whole:Route@121 3536a1ab20907e7373c99d6c9da9c5d78f70188b4bab0622a9cd72c22af592d6
+internal/host/restartscope.go hostRetryPass hint E1,E3,J1,J4 fix1-merge-review;basis=Reads retry candidates from the separate log; applyRetries independently verifies the signed authority. whole:Route@217 9419b9a4d26d5512e831ed0bb244e8cc58d09ccada3ab9d230191828cd377487
+internal/host/restartscope.go restartScopePass authority E1,E3,J1,J4 fix1-merge-review;basis=Hands historical signed retry entries to the common verifier; unknown selectors do not widen scope. whole:Route@180 91938177a921116614c1e5637f99f6c01287969ee7f58afd798334ca553fd3a5
+@legacy db0e425e075cf48b582029e08c8c650c200e21be3c82529c462673576e325089 internal/host/rollout.go armRollout legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Comment-only clarification of failure-book saves; existing agent rollout setup remains legacy. whole:Route@3286,whole:Route@3370 59058382fb04eecac95d59a4f688c95a80dc4bd98134d3de36f19ea27f9a8736
+internal/host/rollout.go armRollout legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Comment-only clarification of failure-book saves; existing agent rollout setup remains legacy. whole:Route@3286,whole:Route@3370 59058382fb04eecac95d59a4f688c95a80dc4bd98134d3de36f19ea27f9a8736
+internal/host/rolloutdeclined.go failureHolds.pass authority E1,E3,J1,J4 fix1-merge-review;basis=Saves the failure book before processing pointer retries; preserves signed retry and restriction checks. whole:Route@401 274f4b11131dd5e016f19368e71f2ec6dc9f23fbd69259dd3f91f3ee71af292f
+internal/host/rolloutdeclined.go failureHolds.pointerLoop authority E1,E3,J1,J4 fix1-merge-review;basis=Delegates each iteration to pass; retains ownership of the retry/restriction authority path despite no direct read. 22fbbf84a4491af1a8adb670f2d7f1641c1c89244ad133165ef5d7cbbe3c0ea7
+internal/host/rolloutdeclined.go failureHolds.report authority E1,E3,J1,J4 fix1-merge-review;basis=Reports only durable published restriction epochs and the supported retry protocol; reports do not grant authority. registry:App@495,registry:App@644,registry:GoodVersion@532,registry:Host@445,registry:Host@659,registry:Version@514,whole:Route@181,whole:Route@217,whole:Route@287 a6a8d03c0ef34ffda34f1426806c08006a89e15a903fd6a28940ff5752b49d96
+internal/host/rolloutdeclined.go failureHolds.retryHost authority E1,E3,J1,J4 fix1-merge-review;basis=Refuses retry while a failure-book save is owed; verifies the signed current book/epoch grant before clearing. registry:App@466,whole:Route@307,whole:Route@343,whole:Route@413 f913d81234c99a80f94e9d1e540df1583d04fbc587e102c1c9e19396414d9484
+internal/host/rootrestart.go checkedUnitRestart authority B3,J1 fix1;basis=Creates the public shared parent before private state; captures a trusted app-tree target digest and restarts only the root-bound unit. file:EvalSymlinks@1023,registry:Account@1369,registry:App@1401,registry:Host@1070,registry:Host@1891,registry:Host@2427,registry:Host@510,registry:Unit@2309,registry:Unit@711,whole:Route@1377,whole:Route@1409,whole:Route@2317,whole:Route@638,whole:Route@719 c9a5ae78bbfed1462e9738e49d1c735c3cd23529c0abcca8859abf7a5364c364
+internal/host/rootrestart.go productionRootRestartChecks authority B3,J1 fix1;basis=Creates the public shared parent before private state; captures a trusted app-tree target digest and restarts only the root-bound unit. file:Open@675,whole:Route@1309,whole:Route@1576,whole:Route@508 43cc67a67c32ae1a750d1526a197c7a474ce43f388c3f9debc42cbb33f854b9e
+internal/host/rootrestart.go restartBoundUnit authority B3,J1 fix1;basis=Creates the public shared parent before private state; captures a trusted app-tree target digest and restarts only the root-bound unit. file:EvalSymlinks@629,registry:Account@2111,registry:Account@3258,registry:App@2147,registry:App@3298,registry:Host@1542,registry:Host@2013,registry:Host@2412,registry:Host@3029,registry:Host@676,registry:Unit@1097,registry:Unit@1165,registry:Unit@1815,registry:Unit@2715,registry:Unit@3592,registry:Unit@393,whole:Route@198,whole:Route@2117,whole:Route@2153,whole:Route@316,whole:Route@3266,whole:Route@3306,whole:Route@3516 d50c3fdc308809dec717ba73a0dbdd97ea83614a4b4dfc27fc953328396faf47
+internal/host/rootrollback.go captureRollback authority B3,J1 fix1;basis=Binds capability and journal to the captured target digest; deduplicated history may retain an earlier version of identical bytes. file:Read@768,registry:Host@405,registry:Host@887,whole:Route@407,whole:Route@889 0da68ee5b66166e366dcb9206a17424cee62ebc363e4d731764c16e90bf8b285
+internal/host/rootrollback.go loadRollback authority B3,J1 fix1;basis=Binds capability and journal to the captured target digest; deduplicated history may retain an earlier version of identical bytes. file:Read@451,registry:Host@867,whole:Route@879 d5736d132e25f3b4414d8de28664d25db73bace16d3e258e02cad5643d567175
+internal/host/rootroute.go proofBindingSource.needsRestart authority B3,J1 fix1;basis=Resolves named-unit restart eligibility through authoritative records or root-owned named-unit evidence. registry:Host@137,registry:Host@265,registry:Unit@598,whole:Route@527,whole:Route@538 67f476ee23206f1e2d013cad2745069a9a9a655589201d23efcb89c7bad9fd94
+internal/hostexec/rootbroker.go RootBroker.Execute authority D fix1;basis=Bounds replay to the latest acquisition and preceding settlement, rotates renewal tokens, and holds broker-only OFD liveness. file:Read@3256,file:Read@4777 d0da02cf78fbcc06f48faaa4a55c378c9000a7137acace9bae2e884a895c957e
+internal/hostexec/rootbroker.go RootBroker.acquire authority D fix1;basis=Bounds replay to the latest acquisition and preceding settlement, rotates renewal tokens, and holds broker-only OFD liveness. file:Read@808 2fdbeb00cd5e68d0a93c56229a90c1e334bffc9273c466c8cca83f2de4b2691e
+internal/hostexec/rootbroker.go RootBroker.settle authority D fix1;basis=Bounds replay to the latest acquisition and preceding settlement, rotates renewal tokens, and holds broker-only OFD liveness. 0a7b8821bc09b63353b9f8c90bfefbc289e9aa4ddd61c427bd31e87c9e1f4bb3
+internal/hostexec/rootbroker.go RootBroker.write authority D fix1;basis=Bounds replay to the latest acquisition and preceding settlement, rotates renewal tokens, and holds broker-only OFD liveness. 86356029e4ab0b3ffc3c83931d096818a7c466bdc86249fd58c829da4d5d5a35
+internal/hostexec/rootread.go ReadRoot authority D fix1;basis=Queries broker OFD lock ownership without acquiring a lock; rechecks unchanged durable evidence and monotonic expiry. file:Read@1828,file:Read@228,file:Read@490 1420a50e539ce3ca5e6007599c38442b3e05f255d78099d7071981fcea606221
+internal/release/healthy_root.go rootHealthyStore authority B,B4 fix1;basis=Normalizes the no-account operator app to the existing ops namespace before opening the root-owned public history. file:Open@206 3d9721283c9253c354da2564b9309d25923432579ef2fe5796fdee1632df1ba7
+internal/rollout/failures.go FailureBook.markLocked authority E1,E3,J1,J4 fix1-merge-review;basis=Advances durable app restriction generations so old grants cannot clear new failures. file:Exec@114,file:Exec@130,file:Exec@142 7a6664f0ad8d23a5e8ede6663c86d3bcc2a7259b1a45de3f0567589d09bc3034
+internal/rollout/failures.go FailureBook.recordLocked authority E1,E3,J1,J4 fix1-merge-review;basis=Marks restriction state dirty and advances its generation before publication. file:Exec@274 7dd1ea8dd234b253cf935c2c6d2f636a60f0cef683abd01897a7a86a7c1fdb2b
+internal/rollout/failures.go OpenFailureBook authority E1,E3,J1,J4 fix1-merge-review;basis=Loads schema-three durable generations and refuses unsafe identity recovery on entropy failure. file:ReadFile@136 93be6cb3c1c431adf99d58a7a4a4ea07acca177b890a2087e53b517030880e55
+internal/rollout/failures.go newBookID authority E1,E3,J1,J4 fix1-merge-review;basis=Uses the named entropy source and propagates failure; retains authority classification despite no scanner-recognized direct read. f35a2d3f4b81c176959762f8357f6a5d6f90c3dbcece0c7aa4dbd54f1938e15e
+internal/rollout/failures.go var randRead authority E1,E3,J1,J4 fix1-merge-review;basis=Names the cryptographic entropy source for failure-book identity; remains retry replay authority. file:Read@15 3ead349b96ef3777407d22dd8f8f635b7ad59bae36fb9ddd194fc14ae66adbfe
+@legacy 8bb9d26c45e4150844c9362354171a94bc8d1049e2f55e3277fa7759d4e1a0dd internal/rollout/manager.go Manager.prune legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Splits failure-book pruning from durable saves; agent rollout bookkeeping remains legacy. whole:Route@74 bb030e5a426ccb2b813d3d33841e15f80054a1ebcf5fbd361b64364940970e38
+internal/rollout/manager.go Manager.prune legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Splits failure-book pruning from durable saves; agent rollout bookkeeping remains legacy. whole:Route@74 bb030e5a426ccb2b813d3d33841e15f80054a1ebcf5fbd361b64364940970e38
+@legacy 72002b1a23066af72757c1230e14977d436c1a316b3584c49df6c70ac1473617 internal/rollout/manager.go Manager.pruneBook legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Extracts existing route-based failure-book pruning; agent rollout bookkeeping remains legacy. registry:App@237,registry:Version@169,registry:Version@245,whole:Route@155,whole:Route@232,whole:Route@69 292b6a19689d846329f67a0d0eb407bbe2492c28c3d448de14d52103aa42e6f7
+internal/rollout/manager.go Manager.pruneBook legacy accepted-legacy accepted-legacy;rev3=fix1-merge-review;basis=Extracts existing route-based failure-book pruning; agent rollout bookkeeping remains legacy. registry:App@237,registry:Version@169,registry:Version@245,whole:Route@155,whole:Route@232,whole:Route@69 292b6a19689d846329f67a0d0eb407bbe2492c28c3d448de14d52103aa42e6f7
+internal/rootstate/file_linux.go CheckPublicConfig authority A,B3 fix1;basis=Checks root:root ownership, exact 0644 mode and single-link regular-file identity on the already opened operator configuration descriptor. file:Fstat@74 508a1efb015e6c9bd8c984db5a88465558311a4994fedf38e5d9f8cb8c45f4e5
+internal/rootstate/file_other.go CheckPublicConfig authority A,B3 fix1;basis=Non-Linux descriptor checks fail closed. 8115cc4a3589c8e5e07af37ed2e99201f9df80fb108710f53c5f9a8d7b11f0c3
+internal/rootstate/live.go HoldLive authority A,D fix1;basis=Requires the store to implement broker-only liveness holding and a non-acquiring query; unsupported stores fail closed. 6cb58bb8004403c504e03c5288fe20ca018ad573cbf17d391842e244f760a2d4
+internal/rootstate/live.go LiveHeld authority A,D fix1;basis=Requires the store to implement broker-only liveness holding and a non-acquiring query; unsupported stores fail closed. 717c3ce4b4b45a57aa0c4e28bdb6510a6ae863d51aaf5297ad66f5ba21a7611d
+internal/rootstate/live_linux.go directory.HoldLive authority A,D fix1;basis=Retains a trusted private-file descriptor under an OFD write lock; readers query conflicting OFD ownership without locking. 0c70b0bfc74cd41e8ff0d742c93bdb27db3c754f282f47a4782f8263813e2a9a
+internal/rootstate/live_linux.go directory.LiveHeld authority A,D fix1;basis=Retains a trusted private-file descriptor under an OFD write lock; readers query conflicting OFD ownership without locking. 1229e6d0ef1d3c76667737ddca1eaecad755a37f8ff0f844b0cc769030c933bf
+internal/rootstate/live_linux.go directory.liveFile authority A,D fix1;basis=Retains a trusted private-file descriptor under an OFD write lock; readers query conflicting OFD ownership without locking. 065efe7fe83f73f5461fc41499be66248a90b6365c346d0d20a572d7272e3386
+internal/rootstate/shared_linux.go EnsurePublicDir authority A,B4 fix1;basis=Creates or descriptor-repairs only a root:root 0700/0755 shared directory, without following symlinks or admitting writable/foreign parents. file:Open@168 33a5051e669e0743cd3cae9a68315eb3d6ad1adfd0ac3b717f797403807c8ee0
+internal/rootstate/shared_linux.go ensurePublicChild authority A,B4 fix1;basis=Creates or descriptor-repairs only a root:root 0700/0755 shared directory, without following symlinks or admitting writable/foreign parents. file:Fstat@537,file:Openat@276 e92a16eb3294b23cd04720a82f9172157f05c0fa8fa871b4f455f12e770897eb
+internal/rootstate/state_other.go EnsurePublicDir authority A,B4 fix1;basis=Non-Linux shared-directory setup fails closed. 33eca74a74fb088db1909a89b0d47f70de566f00d1d5c95db8bac18a55cdbbc4
+@coverage internal/activator 80338afa9997834730f7596e37350a6af0b4aa85b60feda7abadb813237efaed
+@coverage internal/cgroup f1438a80e5be81520b3fbd49d8bb77db6b98e1ba623baf45465474e2983921f8
+@coverage internal/changelog 4e9364be65443c3b19c52744840272f70e47d55641c81b401c580271e5ac667b
+@coverage internal/console e35f96ce63792d535ab9c40ee3be00920610b07a9f5bb0d4f0273fd2e1bb1929
+@coverage internal/console/templates 6dd8d605d86863d93f46b5d49e659662ef10ac48fd3c7a29158b24669c1b5b69
+@coverage internal/host 39019ea0dff7034b97428196d14c5b5df6ee03b5c32eb1b625043bbde02399a6
+@coverage internal/hostexec 01d34e6a19b7890e22e103e5a43d3a4a0c61cdd567df64524ed18c923b657ea6
+@coverage internal/release 18330387f992062509b7c18828ff3c7bad9b9c4f0367fe6283a21368174f5ca0
+@coverage internal/rollout 05c233894de9f510dd105bc27d80c84282f32a72f03254bfb79301613bab755b
+@coverage internal/rootstate 6debb09aa131a00e1ad1a9f2b8a8554a6ef8d70afcf047a0499c490152afda7c
+@coverage internal/status aa228a402f1e27cd788c86e73d69328b9926990bb754a79aac0563d45159acd3
diff --git a/internal/release/healthy_root.go b/internal/release/healthy_root.go
index bb77bd3cf..823621371 100644
--- a/internal/release/healthy_root.go
+++ b/internal/release/healthy_root.go
@@ -18,6 +18,9 @@ import (
const RootHealthyDir = "/var/lib/carlos-release"
func rootHealthyStore(acct, app string, create bool) (rootstate.Store, error) {
+ if acct == "" {
+ acct = OpsAccount
+ }
if !ValidAccount(acct) || !ValidApp(app) {
return nil, os.ErrPermission
}
diff --git a/internal/rootstate/file_linux.go b/internal/rootstate/file_linux.go
index a7ed304d2..2c5790086 100644
--- a/internal/rootstate/file_linux.go
+++ b/internal/rootstate/file_linux.go
@@ -36,3 +36,14 @@ func Identity(f *os.File) (FileIdentity, error) {
}
return FileIdentity{Device: uint64(st.Dev), Inode: st.Ino}, nil
}
+
+func CheckPublicConfig(f *os.File) error {
+ var st unix.Stat_t
+ if err := unix.Fstat(int(f.Fd()), &st); err != nil {
+ return err
+ }
+ if st.Uid != 0 || st.Gid != 0 || st.Mode&07777 != 0644 || st.Mode&unix.S_IFMT != unix.S_IFREG || st.Nlink != 1 {
+ return os.ErrPermission
+ }
+ return nil
+}
diff --git a/internal/rootstate/file_other.go b/internal/rootstate/file_other.go
index b36153918..abc11ebca 100644
--- a/internal/rootstate/file_other.go
+++ b/internal/rootstate/file_other.go
@@ -7,3 +7,5 @@ import "os"
func OpenTrustedFile(string) (*os.File, error) { return nil, os.ErrPermission }
func Identity(*os.File) (FileIdentity, error) { return FileIdentity{}, os.ErrPermission }
+
+func CheckPublicConfig(*os.File) error { return os.ErrPermission }
diff --git a/internal/rootstate/live.go b/internal/rootstate/live.go
new file mode 100644
index 000000000..69cf9f6d1
--- /dev/null
+++ b/internal/rootstate/live.go
@@ -0,0 +1,22 @@
+package rootstate
+
+import "os"
+
+type liveStore interface {
+ HoldLive(string) (func(), error)
+ LiveHeld(string) (bool, error)
+}
+
+func HoldLive(s Store, name string) (func(), error) {
+ if s, ok := s.(liveStore); ok {
+ return s.HoldLive(name)
+ }
+ return nil, os.ErrPermission
+}
+
+func LiveHeld(s Store, name string) (bool, error) {
+ if s, ok := s.(liveStore); ok {
+ return s.LiveHeld(name)
+ }
+ return false, os.ErrPermission
+}
diff --git a/internal/rootstate/live_linux.go b/internal/rootstate/live_linux.go
new file mode 100644
index 000000000..ac606ae4c
--- /dev/null
+++ b/internal/rootstate/live_linux.go
@@ -0,0 +1,56 @@
+package rootstate
+
+import (
+ "os"
+
+ "github.com/carlosframework/platform/internal/safefile"
+ "golang.org/x/sys/unix"
+)
+
+func (d *directory) liveFile(name string, create bool) (*os.File, error) {
+ if !component(name) || uint32(os.Geteuid()) != d.owner {
+ return nil, os.ErrPermission
+ }
+ if err := d.check(); err != nil {
+ return nil, err
+ }
+ flags := os.O_RDWR
+ if create {
+ flags |= os.O_CREATE
+ }
+ f, err := safefile.OpenFileAt(int(d.file.Fd()), name, flags, 0600)
+ if err != nil {
+ return nil, err
+ }
+ if err := trusted(int(f.Fd()), d.owner, unix.S_IFREG); err != nil {
+ f.Close()
+ return nil, err
+ }
+ return f, nil
+}
+
+func (d *directory) HoldLive(name string) (func(), error) {
+ f, err := d.liveFile(name, true)
+ if err != nil {
+ return nil, err
+ }
+ lock := unix.Flock_t{Type: unix.F_WRLCK, Whence: 0}
+ if err := unix.FcntlFlock(f.Fd(), unix.F_OFD_SETLK, &lock); err != nil {
+ f.Close()
+ return nil, err
+ }
+ return func() { _ = f.Close() }, nil
+}
+
+func (d *directory) LiveHeld(name string) (bool, error) {
+ f, err := d.liveFile(name, false)
+ if err != nil {
+ return false, err
+ }
+ defer f.Close()
+ lock := unix.Flock_t{Type: unix.F_RDLCK, Whence: 0}
+ if err := unix.FcntlFlock(f.Fd(), unix.F_OFD_GETLK, &lock); err != nil {
+ return false, err
+ }
+ return lock.Type == unix.F_WRLCK && lock.Pid == -1, nil
+}
diff --git a/internal/rootstate/live_linux_test.go b/internal/rootstate/live_linux_test.go
new file mode 100644
index 000000000..73b2dd0f0
--- /dev/null
+++ b/internal/rootstate/live_linux_test.go
@@ -0,0 +1,22 @@
+package rootstate
+
+import "testing"
+
+func TestPlan14LiveQueryNeverTakesLock(t *testing.T) {
+ _, s := fixture(t)
+ release, err := HoldLive(s, "host.live")
+ if err != nil {
+ t.Fatal(err)
+ }
+ for range 2 {
+ if held, err := LiveHeld(s, "host.live"); err != nil || !held {
+ t.Fatal(held, err)
+ }
+ }
+ release()
+ for range 2 {
+ if held, err := LiveHeld(s, "host.live"); err != nil || held {
+ t.Fatal(held, err)
+ }
+ }
+}
diff --git a/internal/rootstate/shared_linux.go b/internal/rootstate/shared_linux.go
new file mode 100644
index 000000000..489b7e447
--- /dev/null
+++ b/internal/rootstate/shared_linux.go
@@ -0,0 +1,54 @@
+package rootstate
+
+import (
+ "os"
+ "path/filepath"
+
+ "golang.org/x/sys/unix"
+)
+
+func EnsurePublicDir(path string) error {
+ if !filepath.IsAbs(path) || filepath.Clean(path) != path || os.Geteuid() != 0 {
+ return os.ErrPermission
+ }
+ parent, err := Open(filepath.Dir(path), true, true)
+ if err != nil {
+ return err
+ }
+ defer parent.Close()
+ return ensurePublicChild(parent.(*directory), filepath.Base(path))
+}
+
+func ensurePublicChild(parent *directory, name string) error {
+ if !component(name) || parent.check() != nil {
+ return os.ErrPermission
+ }
+ fd := int(parent.file.Fd())
+ if err := unix.Mkdirat(fd, name, 0755); err != nil && err != unix.EEXIST {
+ return err
+ }
+ child, err := unix.Openat(fd, name, unix.O_RDONLY|unix.O_DIRECTORY|unix.O_NOFOLLOW|unix.O_CLOEXEC, 0)
+ if err != nil {
+ return err
+ }
+ defer unix.Close(child)
+ if err := trusted(child, parent.owner, unix.S_IFDIR); err != nil {
+ return err
+ }
+ var st unix.Stat_t
+ if err := unix.Fstat(child, &st); err != nil {
+ return err
+ }
+ if st.Gid != 0 || st.Mode&07777 != 0700 && st.Mode&07777 != 0755 {
+ return os.ErrPermission
+ }
+ if st.Mode&07777 == 0700 {
+ if err := unix.Fchmod(child, 0755); err != nil {
+ return err
+ }
+ }
+ if err := unix.Fsync(child); err != nil {
+ return err
+ }
+ return unix.Fsync(fd)
+}
diff --git a/internal/rootstate/state_other.go b/internal/rootstate/state_other.go
index 2e96740b2..9162e039c 100644
--- a/internal/rootstate/state_other.go
+++ b/internal/rootstate/state_other.go
@@ -5,3 +5,5 @@ package rootstate
import "os"
func Open(string, bool, bool) (Store, error) { return nil, os.ErrPermission }
+
+func EnsurePublicDir(string) error { return os.ErrPermission }