carlos / platform Public

provision: rate-limit tests use neutral names and cover the field-removed clear (#358)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 24be8da463a8c1ab694e886486a691690b99178c parent 1649004
2 files changed, +61 −27
  • internal/provision/ratelimit_record_test.go +3 −3
  • internal/provision/reconcile_ratelimit_test.go +58 −24

CI failed — run details

CI log
=== gate ===
.amadan/test-gate.sh
=== launchctx (0 s)
ok  	amadan.net/carlos/platform.git/launchctx	0.013s
?   	amadan.net/carlos/platform.git/launchctx/controlname	[no test files]
?   	amadan.net/carlos/platform.git/launchctx/wireid	[no test files]
=== vet (17 s)
=== gofmt (0 s)
gofmt -l .: clean
=== rest (175 s)
?   	github.com/carlosframework/platform/cmd/changelog	[no test files]
ok  	github.com/carlosframework/platform/cmd/console	3.618s
ok  	github.com/carlosframework/platform/cmd/moveprobe	11.864s
ok  	github.com/carlosframework/platform/cmd/zddprobe	0.720s
ok  	github.com/carlosframework/platform/internal/activator	58.721s
ok  	github.com/carlosframework/platform/internal/agentsock	0.026s
ok  	github.com/carlosframework/platform/internal/alerting	0.008s
ok  	github.com/carlosframework/platform/internal/analytics	0.088s
ok  	github.com/carlosframework/platform/internal/appconfig	2.909s
ok  	github.com/carlosframework/platform/internal/apperr	0.145s
ok  	github.com/carlosframework/platform/internal/applog	0.264s
ok  	github.com/carlosframework/platform/internal/awsinv	0.010s
ok  	github.com/carlosframework/platform/internal/boxchoice	0.011s
ok  	github.com/carlosframework/platform/internal/boxid	1.043s
?   	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.017s
ok  	github.com/carlosframework/platform/internal/caps	0.015s
ok  	github.com/carlosframework/platform/internal/certwarm	0.004s
ok  	github.com/carlosframework/platform/internal/cgroup	0.833s
ok  	github.com/carlosframework/platform/internal/changelog	0.539s
ok  	github.com/carlosframework/platform/internal/claimactivation	1.362s
ok  	github.com/carlosframework/platform/internal/clamd	0.062s
?   	github.com/carlosframework/platform/internal/cliflag	[no test files]
?   	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	7.856s
ok  	github.com/carlosframework/platform/internal/dbdoor/dbdoortest	0.026s
ok  	github.com/carlosframework/platform/internal/dbquery	0.008s
ok  	github.com/carlosframework/platform/internal/dbreads	2.108s
?   	github.com/carlosframework/platform/internal/dbreads/dbreadstest	[no test files]
ok  	github.com/carlosframework/platform/internal/dbverify	0.009s
ok  	github.com/carlosframework/platform/internal/dnsrec	0.009s
ok  	github.com/carlosframework/platform/internal/docsite	0.007s
ok  	github.com/carlosframework/platform/internal/domains	3.037s
ok  	github.com/carlosframework/platform/internal/doorkey	0.010s
ok  	github.com/carlosframework/platform/internal/economics	0.008s
ok  	github.com/carlosframework/platform/internal/edge	46.041s
?   	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.138s
ok  	github.com/carlosframework/platform/internal/gate	1.658s
ok  	github.com/carlosframework/platform/internal/genselect	0.017s
ok  	github.com/carlosframework/platform/internal/geo	0.018s
ok  	github.com/carlosframework/platform/internal/geoip	0.030s
ok  	github.com/carlosframework/platform/internal/historyreadback	0.158s
ok  	github.com/carlosframework/platform/internal/host	145.628s
ok  	github.com/carlosframework/platform/internal/hostactors	5.740s
ok  	github.com/carlosframework/platform/internal/hostactors/awsmembership	0.009s
ok  	github.com/carlosframework/platform/internal/hostbox	3.105s
ok  	github.com/carlosframework/platform/internal/hostclaim	0.794s
ok  	github.com/carlosframework/platform/internal/hostenv	0.010s
ok  	github.com/carlosframework/platform/internal/hostevidence	0.009s
ok  	github.com/carlosframework/platform/internal/hostexec	5.346s
ok  	github.com/carlosframework/platform/internal/hostfence	0.075s
ok  	github.com/carlosframework/platform/internal/hostfiles	10.314s
ok  	github.com/carlosframework/platform/internal/hostfloor	0.032s
ok  	github.com/carlosframework/platform/internal/hostguard	1.081s
ok  	github.com/carlosframework/platform/internal/hostops	2.113s
?   	github.com/carlosframework/platform/internal/hostops/fencerelease	[no test files]
ok  	github.com/carlosframework/platform/internal/hostops/internal/fencerelease	0.009s
ok  	github.com/carlosframework/platform/internal/hostquarantine	0.010s
ok  	github.com/carlosframework/platform/internal/hostrelocate	0.649s
ok  	github.com/carlosframework/platform/internal/hostresolve	0.201s
ok  	github.com/carlosframework/platform/internal/hostwrite	0.009s
ok  	github.com/carlosframework/platform/internal/infraview	0.013s
ok  	github.com/carlosframework/platform/internal/instancectl	5.257s
ok  	github.com/carlosframework/platform/internal/instanceexec	2.809s
ok  	github.com/carlosframework/platform/internal/instancefs	0.009s
ok  	github.com/carlosframework/platform/internal/instancekey	0.011s
ok  	github.com/carlosframework/platform/internal/instanceupdates	0.023s
ok  	github.com/carlosframework/platform/internal/layout	1.810s
ok  	github.com/carlosframework/platform/internal/lbhealth	0.010s
ok  	github.com/carlosframework/platform/internal/lease	10.202s
ok  	github.com/carlosframework/platform/internal/lease/leasetest	0.762s
ok  	github.com/carlosframework/platform/internal/ledger	0.024s
ok  	github.com/carlosframework/platform/internal/mail	0.242s
ok  	github.com/carlosframework/platform/internal/maintenance	0.088s
ok  	github.com/carlosframework/platform/internal/maintenanceexec	5.590s
ok  	github.com/carlosframework/platform/internal/maintenanceguard	0.149s
ok  	github.com/carlosframework/platform/internal/metrics	0.005s
ok  	github.com/carlosframework/platform/internal/moves	22.713s
ok  	github.com/carlosframework/platform/internal/moves/archive	1.041s
ok  	github.com/carlosframework/platform/internal/objstore	0.311s
ok  	github.com/carlosframework/platform/internal/ops	0.221s
ok  	github.com/carlosframework/platform/internal/park	0.293s
ok  	github.com/carlosframework/platform/internal/plans	0.008s
ok  	github.com/carlosframework/platform/internal/privatefile	0.007s
2026/10/24 20:56:38 provision: listing apps/bab/blog/instances/: list refused — its records are unseen this pass
2026/10/24 20:56:38 provision: listing apps/bab/: listdirs refused — its records are unseen this pass
2026/10/24 20:56:38 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/24 20:56:39 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/24 20:56:39 provision: skipping record apps/bac/tito/instances/one.example.com.json: unreadable: read refused
2026/10/24 20:56:39 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/24 20:56:39 provision: an app's records could not be listed: they are skipped
2026/10/24 20:56:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 20:56:39 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/24 20:56:39 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/24 20:56:39 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/24 20:56:39 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/24 20:56:39 provision: claim install acme.go.tito.io: provision: claim admission unavailable
2026/10/24 20:56:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/24 20:56:39 provision: claim install bot.eleven.bac.sidecar.internal: provision: claim admission unavailable
2026/10/24 20:56:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 20:56:39 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/24 20:56:39 provision: refusing to mint route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/24 20:56:39 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: no sealed config
2026/10/24 20:56:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/24 20:56:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 20:56:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 20:56:39 provision: refusing to mint route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/24 20:56:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/24 20:56:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 20:56:39 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 20:56:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/24 20:56:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/24 20:56:39 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/24 20:56:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 20:56:39 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/24 20:56:39 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 20:56:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 20:56:39 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/24 20:56:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 20:56:39 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:39 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:39 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 20:56:39 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:39 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:39 provision: minted instance route rj.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route rg.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route rh.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route ri.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route rk.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route rl.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route rf.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:39 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/24 20:56:39 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/24 20:56:39 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route x.appi.example (app "appi" acct "bac")
2026/10/24 20:56:40 provision: minted instance route x.appj.example (app "appj" acct "bac")
2026/10/24 20:56:40 provision: minted instance route x.appb.example (app "appb" acct "bac")
2026/10/24 20:56:40 provision: minted instance route x.appc.example (app "appc" acct "bac")
2026/10/24 20:56:40 provision: minted instance route x.appd.example (app "appd" acct "bac")
2026/10/24 20:56:40 provision: minted instance route x.appf.example (app "appf" acct "bac")
2026/10/24 20:56:40 provision: minted instance route x.apph.example (app "apph" acct "bac")
2026/10/24 20:56:40 provision: minted instance route x.appa.example (app "appa" acct "bac")
2026/10/24 20:56:40 provision: minted instance route x.appe.example (app "appe" acct "bac")
2026/10/24 20:56:40 provision: minted instance route x.appg.example (app "appg" acct "bac")
2026/10/24 20:56:40 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 20:56:40 provision: minted instance route r0049.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0002.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0042.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0055.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0078.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0116.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0126.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0057.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0062.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0081.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0096.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0052.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0023.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0120.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0018.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0050.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0056.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0097.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0109.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0022.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0010.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0082.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0086.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0048.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0061.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0075.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0089.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0090.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0111.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0125.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0058.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0064.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0088.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0005.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0019.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0029.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0032.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0098.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0118.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0013.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0009.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0043.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0124.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0054.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0047.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0099.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0000.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0016.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0060.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0067.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0080.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0115.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0117.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0004.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0027.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0028.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0071.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0012.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0015.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0037.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0101.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0104.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0123.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0034.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0039.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0066.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0073.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0074.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0100.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0119.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0121.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0069.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0084.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0105.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0108.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0036.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0046.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0110.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0113.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0006.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0070.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0128.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0008.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0011.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0030.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0041.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0065.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0072.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0092.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0106.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0051.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0021.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0026.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0033.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0040.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0020.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0063.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0103.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0114.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0001.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0035.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0091.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0102.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0122.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0094.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0095.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0007.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0038.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0053.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0059.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0076.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0079.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0107.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0129.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0083.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0085.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0003.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0014.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0017.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0045.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0093.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0112.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0127.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0024.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0025.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0044.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0068.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0031.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0077.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:40 provision: minted instance route r0087.go.tito.io (app "tito" acct "bac")
--- FAIL: TestPlan9B8RecordWriteCensus (0.71s)
    plan9_b8_census_test.go:372: record-write census rejected 1 site(s); update the explicit inventory only after reviewing the source:
          changed site internal/provision/reconcile.go:Reconcile: source differs from the reviewed digest
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: refusing to mint route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/24 20:56:41 provision: minted instance route shop.example.com (app "shop" acct "bac")
2026/10/24 20:56:41 provision: minted instance route shop.example.com (app "shop" acct "bac")
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted instance route console.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted service route svc.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted instance route whole.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted instance route shared.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: converged acme.go.tito.io channel stable -> edge
2026/10/24 20:56:41 provision: converged acme.go.tito.io channel edge -> canary/rehearsal
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: empty channel
2026/10/24 20:56:41 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: converged acme.go.tito.io environment "" -> "staging"
2026/10/24 20:56:41 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: converged acme.go.tito.io steering "" -> "latency"
2026/10/24 20:56:41 provision: converged acme.go.tito.io steering "latency" -> ""
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: converged acme.go.tito.io hibernate false -> true
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: converged acme.go.tito.io hibernate true -> false (replication "daily" cleared: only a hibernating route's rung is read)
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: converged acme.go.tito.io status-named false -> true
2026/10/24 20:56:41 provision: converged acme.go.tito.io status-named true -> false
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: converged ha.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:7001,127.0.0.1:7002" -> "127.0.0.1:7001,127.0.0.1:7003" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/24 20:56:41 provision: converged ha.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:7001,127.0.0.1:7003" -> "127.0.0.1:7003,127.0.0.1:7001" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/24 20:56:41 provision: converged ha.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:7003,127.0.0.1:7001" -> "127.0.0.1:7003,127.0.0.1:7001" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "{\"path\":\"/healthz\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/24 20:56:41 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: converged whole.go.tito.io upstreams addr "127.0.0.1:9443" -> "", addrs "" -> "127.0.0.1:9443,127.0.0.1:9444" (probe "" -> "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/24 20:56:41 provision: converged whole.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:9443,127.0.0.1:9444" -> "" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "")
2026/10/24 20:56:41 provision: whole.go.tito.io: record describes a different route SHAPE than the row (kind "instance"/"service" unit ""/"" socket "/run/carlos/whole.go.tito.io.sock"/"" db "/data/whole.go.tito.io.db"/"") — not converged in place; `carlos remove whole.go.tito.io` purges this route's capability grants (registry.Delete's contract, not a bug) before the next pass re-mints it, so treat that as a last resort, not a routine fix
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: skipping accounts/bac/account.json: malformed account manifest: invalid character 'o' in literal null (expecting 'u')
2026/10/24 20:56:41 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: manifest bac/tito: read failed: provision: manifest bac/tito: invalid character 'o' in literal null (expecting 'u')
2026/10/24 20:56:41 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: disagrees with its own path (host="wrong-host.go.tito.io" account="bac" app="tito")
2026/10/24 20:56:41 provision: skipping record apps/bac/tito/instances/acme$evil.go.tito.io.json: host "acme$evil.go.tito.io" is not a hostname
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: skipping record apps/bac/tito/instances/acme$evil.go.tito.io.json: host "acme$evil.go.tito.io" is not a hostname
2026/10/24 20:56:41 provision: not removing acme$evil.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 20:56:41 provision: skipping record apps/bac/tito/instances/bad-service.go.tito.io.json: invalid shape: kind service with no addr: the platform only proxies to a service, so the record must name the upstream it proxies to
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: skipping record apps/bac/tito/instances/bad-service.go.tito.io.json: invalid shape: kind service with no addr: the platform only proxies to a service, so the record must name the upstream it proxies to
2026/10/24 20:56:41 provision: not removing bad-service.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 20:56:41 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/24 20:56:41 provision: not removing no-channel.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 20:56:41 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:41 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:41 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 20:56:41 provision: removed retired instance route ghost.go.tito.io (record gone)
2026/10/24 20:56:41 provision: duplicate host dup.go.tito.io: keeping apps/bac/tito/instances/dup.go.tito.io.json, skipping apps/bad/tito/instances/dup.go.tito.io.json
2026/10/24 20:56:42 provision: minted instance route dup.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 20:56:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 20:56:42 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/24 20:56:42 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 20:56:42 provision: removed retired static route site.go.tito.io (app in the trash)
2026/10/24 20:56:42 provision: trash marker for bac/tito unreadable: release: malformed trash marker for bac/tito: invalid character 'n' looking for beginning of object key string — not minting for this app
2026/10/24 20:56:42 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 20:56:42 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/24 20:56:42 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 20:56:42 provision: trash marker for bac/tito unreadable: release: malformed trash marker for bac/tito: invalid character 'n' looking for beginning of object key string — not minting for this app
2026/10/24 20:56:42 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 20:56:42 provision: converged acme.go.tito.io channel stable -> edge
2026/10/24 20:56:42 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 20:56:42 provision: converged acme.go.tito.io channel canary/rehearsal -> edge
2026/10/24 20:56:42 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/24 20:56:42 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 20:56:42 provision: acme.go.tito.io exists but is not the route this record describes (backing "unit" (box-scoped, not expressible in a record)) — leaving it alone
2026/10/24 20:56:42 provision: acme.go.tito.io exists but is not the route this record describes (tunnel "pi-fleet" (box-scoped, not expressible in a record)) — leaving it alone
2026/10/24 20:56:42 provision: acme.go.tito.io exists but is not the route this record describes (caps "port:25" (box-scoped, not expressible in a record)) — leaving it alone
2026/10/24 20:56:42 provision: acme.go.tito.io exists but is not the route this record describes (platform (owned by the domains reconcile pass)) — leaving it alone
2026/10/24 20:56:42 provision: acme.go.tito.io exists but is not the route this record describes (canary (owned by the domains reconcile pass)) — leaving it alone
2026/10/24 20:56:42 provision: acme.go.tito.io exists but is not the route this record describes (db "/data/other.db"/"/data/acme.go.tito.io.db") — leaving it alone
2026/10/24 20:56:42 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 20:56:42 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 20:56:42 provision: dry-run: would converge owned.go.tito.io channel stable -> edge
2026/10/24 20:56:42 provision: dry-run: would converge owned.go.tito.io environment "" -> "staging"
2026/10/24 20:56:42 provision: dry-run: would converge owned.go.tito.io hibernate false -> true
2026/10/24 20:56:42 provision: dry-run: would converge owned.go.tito.io seed
2026/10/24 20:56:42 provision: dry-run: would mint instance route acme.go.tito.io (app "tito" acct "bac" channel "stable")
2026/10/24 20:56:42 provision: dry-run: would adopt existing route adopt.go.tito.io (app "tito" acct "bac") — this record would own its channel and environment
2026/10/24 20:56:42 provision: dry-run: would converge adopt.go.tito.io channel stable -> edge
2026/10/24 20:56:42 provision: dry-run: would converge adopt.go.tito.io environment "" -> "staging"
2026/10/24 20:56:42 provision: dry-run: would remove retired instance route gone.go.tito.io (record gone)
2026/10/24 20:56:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: adopted existing route adopt.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 20:56:42 provision: converged adopt.go.tito.io channel stable -> edge
2026/10/24 20:56:42 provision: converged adopt.go.tito.io environment "" -> "staging"
2026/10/24 20:56:42 provision: converged owned.go.tito.io channel stable -> edge
2026/10/24 20:56:42 provision: converged owned.go.tito.io environment "" -> "staging"
2026/10/24 20:56:42 provision: converged owned.go.tito.io hibernate false -> true
2026/10/24 20:56:42 provision: removed retired instance route gone.go.tito.io (record gone)
2026/10/24 20:56:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: adopted existing route story.carlosframework.com (app "story" acct "bad") — this record now owns its channel and environment
2026/10/24 20:56:42 provision: story.carlosframework.com exists but is not the route this record describes (kind "instance"/"static") — leaving it alone
2026/10/24 20:56:42 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted service route pub.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted service route pubs.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted service route priv.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted instance route unit.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted instance route exec.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted service route loop.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted service route named.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted static route pisite.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: removed retired static route site.go.tito.io (record gone)
2026/10/24 20:56:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: converged acme.go.tito.io replicas "ie,uk" -> "uk"
2026/10/24 20:56:42 provision: converged acme.go.tito.io replicas "uk" -> ""
2026/10/24 20:56:42 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: converged acme-uk.go.tito.io replica mark true -> false
2026/10/24 20:56:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: acme.go.tito.io: row is on the nested layout (db "/data/instances/acme.go.tito.io/acme.go.tito.io.db" socket "/run/carlos/instances/acme.go.tito.io/app.sock"); the record's shared paths are not drift
2026/10/24 20:56:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:42 provision: router.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/24 20:56:42 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/24 20:56:42 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 20:56:42 provision: converged acme.go.tito.io channel stable -> edge
2026/10/24 20:56:42 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/24 20:56:42 provision: not removing acme.go.tito.io (record gone): participant of a running operation
2026/10/24 20:56:42 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 20:56:42 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/24 20:56:42 provision: refusing to mint held route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/24 20:56:42 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/24 20:56:42 provision: acme.go.tito.io: held restoring by rb_other, not by mv_acme; leaving it
2026/10/24 20:56:42 provision: acme.go.tito.io: the row is not this pass's (app "other" acct ""); not holding it for mv_acme
2026/10/24 20:56:42 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 20:56:42 provision: dry-run: would mint instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac" channel "stable")
2026/10/24 20:56:42 provision: acme.go.tito.io: not held landing by mv_acme: the row's hold changed under this pass; the next pass judges it afresh
2026/10/24 20:56:43 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/24 20:56:43 provision: minted instance route acme.example.com (app "shop" acct "bac")
2026/10/24 20:56:43 provision: minted instance route plain.example.com (app "shop" acct "bac")
2026/10/24 20:56:43 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:43 provision: skipping record apps/bac/shop/instances/liar.shop.example.com.json: disagrees with its own path (host="other.shop.example.com" account="bac" app="shop")
2026/10/24 20:56:43 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:43 provision: skipping record apps/bac/shop/instances/liar.shop.example.com.json: disagrees with its own path (host="other.shop.example.com" account="bac" app="shop")
2026/10/24 20:56:43 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:43 provision: skipping record apps/bac/shop/instances/liar.shop.example.com.json: disagrees with its own path (host="other.shop.example.com" account="bac" app="shop")
2026/10/24 20:56:43 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:43 provision: listing apps/bac/shop/instances/: list refused — its records are unseen this pass
2026/10/24 20:56:43 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:43 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 20:56:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:43 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 20:56:43 provision: minted sidecar route bot.shop.bac.sidecar.internal (app "shop" acct "bac" args ["run"])
2026/10/24 20:56:43 provision: removed retired sidecar route bot.shop.bac.sidecar.internal (record gone)
2026/10/24 20:56:43 provision: minted sidecar route bot.shop.bum.sidecar.internal (app "shop" acct "bum" args ["run"])
2026/10/24 20:56:43 provision: minted sidecar route bot.shop.bum.sidecar.internal (app "shop" acct "bum" args ["run"])
2026/10/24 20:56:43 provision: sidecar bot.shop.bum.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 20:56:43 provision: sidecar bot.shop.bum.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 20:56:43 provision: sidecar bot.shop.bum.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 20:56:43 provision: removed retired sidecar route bot.shop.bum.sidecar.internal (record gone)
2026/10/24 20:56:43 provision: sidecar bot.shop.bum.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 20:56:43 provision: removed retired sidecar route bot.shop.bum.sidecar.internal (record gone)
2026/10/24 20:56:44 provision: a.shop.example.com: swapped for import sd_rcrzgfeakzcwtb5viuiowzowaa (the original route is journaled)
2026/10/24 20:56:44 provision: a.shop.example.com: import sd_rcrzgfeakzcwtb5viuiowzowaa committed: its gate is cleared and its journal row dropped
2026/10/24 20:56:44 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 20:56:44 provision: a.shop.example.com: import sd_hg27xdeza5asotmqdodt6rssou rolled back to its original route
2026/10/24 20:56:44 provision: a.shop.example.com: import sd_hg27xdeza5asotmqdodt6rssou: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/24 20:56:44 provision: a.shop.example.com: import sd_hg27xdeza5asotmqdodt6rssou is cleaned up and its journal row retired
2026/10/24 20:56:44 provision: a.shop.example.com: import sd_47yd5nqjgv3ugrxbknmyinsr2e rolled back to its original route
2026/10/24 20:56:44 provision: a.shop.example.com: import sd_47yd5nqjgv3ugrxbknmyinsr2e: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/24 20:56:44 provision: a.shop.example.com: import sd_47yd5nqjgv3ugrxbknmyinsr2e is cleaned up and its journal row retired
2026/10/24 20:56:44 provision: dry-run: would redo a.shop.example.com's swap record CAS for import sd_onfc3m2ml7wcqqovvqnqxfhmhy
2026/10/24 20:56:44 provision: dry-run: would clear a.shop.example.com's import gate
2026/10/24 20:56:44 provision: dry-run: would converge a.shop.example.com seed source
2026/10/24 20:56:44 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 20:56:44 provision: a.shop.example.com: the import's record apps/bac/shop/instances/a.shop.example.com.json is not one this pass can use (connection reset)
2026/10/24 20:56:44 provision: a.shop.example.com: the import's record apps/bac/shop/instances/a.shop.example.com.json is not one this pass can use (provision: invalid maintenance projection or protected fields)
2026/10/24 20:56:44 provision: a.shop.example.com: the import's record apps/bac/shop/instances/a.shop.example.com.json is not one this pass can use (the record under apps/bac/shop/instances/a.shop.example.com.json is apps/bac/shop/instances/b.shop.example.com.json's)
2026/10/24 20:56:44 provision: a.shop.example.com: import sd_35zqznquw7dhxroccfk55j4t5e cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/24 20:56:44 provision: a.shop.example.com: import sd_kxm4uveplr4qzh2marpjqt6jgy cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/24 20:56:44 provision: a.shop.example.com: import sd_in5x6udwg4qseig5pqddx3pgxi is journaled, but this box cannot act on imports; its row is left alone
2026/10/24 20:56:44 provision: a.shop.example.com: import sd_5b6u6lffcdbv5s2kc7ykszpjmy is journaled, but this box cannot act on imports; its row is left alone
2026/10/24 20:56:44 provision: a.shop.example.com: import sd_465qtdrqys5bewcoga5voqqhly is journaled, but this box cannot act on imports; its row is left alone
2026/10/24 20:56:44 provision: the import journal could not be read: registry: import journal a.shop.example.com: original row: unexpected end of JSON input (no import is acted on and no route is removed this pass)
2026/10/24 20:56:44 provision: c.shop.example.com: import sd_i6eak6c5pbwley36dwu3s44joe left alone this pass: the import journal could not be read
2026/10/24 20:56:44 provision: b.shop.example.com: import sd_ahhmwl55dxeosehlk6eop6adxm left alone this pass: the import journal could not be read
2026/10/24 20:56:44 provision: a.shop.example.com: import sd_o5ausfad3rldqfez6bv5t6acxe committed: its gate is cleared and its journal row dropped
2026/10/24 20:56:44 provision: a.shop.example.com: not converging import sd_ohz3c2f3adrd3kk3skb7h5v3yy: it is swapped but not committed, and the row on this box has no import gate
2026/10/24 20:56:44 provision: a.shop.example.com: not converging import sd_2rtw7qaw7o72gvnboqmsxag4ae: it is swapped but not committed, and the row on this box has no import gate
2026/10/24 20:56:44 provision: a.shop.example.com: not converging import sd_yirzqjdowqffya5qbl5yzccmry: it is placed but not committed, and the row on this box has no import gate
2026/10/24 20:56:44 provision: a.shop.example.com: not converging import sd_d346vqehkytqzsxdeqion4cgqu: it is placed but not committed, and the row on this box has no import gate
2026/10/24 20:56:44 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 20:56:44 provision: converge seed source on a.shop.example.com: constraint failed: seed_source is read-only here (1811)
2026/10/24 20:56:44 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_vfoff5p2rdr43qz7lwyfvre564 committed: its gate is cleared and its journal row dropped
2026/10/24 20:56:45 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 20:56:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:45 provision: acme.go.tito.io: row is on the nested layout (db "/data/instances/acme.go.tito.io/acme.go.tito.io.db" socket "/run/carlos/instances/acme.go.tito.io/app.sock"); the record's shared paths are not drift
2026/10/24 20:56:45 provision: acme.go.tito.io: not minting a seeded instance: this box does not mint nested (<nil>)
2026/10/24 20:56:45 provision: acme.go.tito.io: not minting a seeded instance: claim control is on for this box
2026/10/24 20:56:45 provision: acme.go.tito.io: aborted seed sd_llpemvt54x2jpbsavh26ketzt4: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/24 20:56:45 provision: acme.go.tito.io: aborted seed sd_llpemvt54x2jpbsavh26ketzt4 rolled back (no box had swapped it)
2026/10/24 20:56:45 provision: acme.go.tito.io: not minting a seeded instance: its record does not describe a hibernating instance
2026/10/24 20:56:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:45 provision: removed instance route acme.go.tito.io (its seed sd_2rjsk7vrtha37maiixafv7dbt4 was aborted); the next pass rolls it back
2026/10/24 20:56:45 provision: acme.go.tito.io: aborted seed sd_2rjsk7vrtha37maiixafv7dbt4: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/24 20:56:45 provision: acme.go.tito.io: aborted seed sd_2rjsk7vrtha37maiixafv7dbt4 rolled back (no box had swapped it)
2026/10/24 20:56:45 provision: acme.go.tito.io: aborted seed sd_dgtx32ld7htqaom4wdetfkoez4 has a row this pass may not remove; leaving the seed aborted
2026/10/24 20:56:45 provision: acme.go.tito.io: aborted seed sd_ej7g46ehkvz2s67qr2ly6srtke rolled back (no box had swapped it)
2026/10/24 20:56:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:45 provision: removed instance route acme.go.tito.io (its seed sd_y3hykcrwlc3psfeezwmfr2ax24 was aborted); the next pass rolls it back
2026/10/24 20:56:45 provision: acme.go.tito.io: aborted seed sd_y3hykcrwlc3psfeezwmfr2ax24 has no route on this box: its local data is removed
2026/10/24 20:56:45 provision: acme.go.tito.io: aborted seed sd_y3hykcrwlc3psfeezwmfr2ax24 rolled back (no box had swapped it)
2026/10/24 20:56:45 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_pi4g6cnwgze6ueh5wbyk3t5hai (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_pi4g6cnwgze6ueh5wbyk3t5hai rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_pi4g6cnwgze6ueh5wbyk3t5hai is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_55wqkxajhyntzzex32dphts7hq (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_55wqkxajhyntzzex32dphts7hq rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_55wqkxajhyntzzex32dphts7hq is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_mn2ysuwofbx5qchqwogc2csqvm (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_mn2ysuwofbx5qchqwogc2csqvm rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_mn2ysuwofbx5qchqwogc2csqvm: the host's replica is left alone: its record no longer names this seed
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_mn2ysuwofbx5qchqwogc2csqvm is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_haujsnvv7qkvcgeqvie2j4hbcy (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_haujsnvv7qkvcgeqvie2j4hbcy rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_haujsnvv7qkvcgeqvie2j4hbcy rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_haujsnvv7qkvcgeqvie2j4hbcy is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_vra4eocbhzs7kpkckkxktwcziy (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_vra4eocbhzs7kpkckkxktwcziy rollback deferred: the host is not fenced and stopped yet (stop unproven)
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_lte62mjynocq2oxtdbtjncpjbq (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_lte62mjynocq2oxtdbtjncpjbq is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_meqwzr2pb3oq2y3ehqda7qhoye (the original route is journaled)
2026/10/24 20:56:45 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_meqwzr2pb3oq2y3ehqda7qhoye left alone this pass: its record could not be read
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_2elujxobsyfelfsc7wbt7vknwi (the original route is journaled)
2026/10/24 20:56:45 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: read failed: connection reset
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_2elujxobsyfelfsc7wbt7vknwi left alone this pass: its record could not be read
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_njselbmt2qcjtpyt237wnhhr5i (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_njselbmt2qcjtpyt237wnhhr5i: close the import gate: constraint failed: injected (1811)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_njselbmt2qcjtpyt237wnhhr5i rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_njselbmt2qcjtpyt237wnhhr5i is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_23wa3twgxdrsroucbri7rgxqd4 (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_23wa3twgxdrsroucbri7rgxqd4: close the import gate: constraint failed: injected (1811)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_23wa3twgxdrsroucbri7rgxqd4 rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_23wa3twgxdrsroucbri7rgxqd4 is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_64j4msrnhvx3iur4owvxzwlng4 (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_64j4msrnhvx3iur4owvxzwlng4 rollback deferred: the host is not fenced and stopped yet (injected failure at fence)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_64j4msrnhvx3iur4owvxzwlng4 rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_64j4msrnhvx3iur4owvxzwlng4 is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_qx6ybwn5a4bwfmzfte5cdgarwi (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_qx6ybwn5a4bwfmzfte5cdgarwi rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_qx6ybwn5a4bwfmzfte5cdgarwi is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_t2o4fxtcwn4zp2bmg3ju3ap4hy (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_t2o4fxtcwn4zp2bmg3ju3ap4hy: retire its instance key: injected failure at retire-key
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_t2o4fxtcwn4zp2bmg3ju3ap4hy rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_t2o4fxtcwn4zp2bmg3ju3ap4hy is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_nt5hslzksc3qqsxy34azheknoq (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_nt5hslzksc3qqsxy34azheknoq rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_nt5hslzksc3qqsxy34azheknoq is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_kmdx6wtobkn2ucs3adejkj6suy (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_kmdx6wtobkn2ucs3adejkj6suy: remove its local data: injected failure at remove-local
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_kmdx6wtobkn2ucs3adejkj6suy rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_kmdx6wtobkn2ucs3adejkj6suy is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_wycn4acjpnfdt2w23cembgfzie (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_wycn4acjpnfdt2w23cembgfzie rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_wycn4acjpnfdt2w23cembgfzie is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_r5h7v3psfmaxmcvud6ud22lqby (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_r5h7v3psfmaxmcvud6ud22lqby: remove its local data: injected failure at remove-local-done
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_r5h7v3psfmaxmcvud6ud22lqby rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_r5h7v3psfmaxmcvud6ud22lqby is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_2qtgzbqxnks3iqhdr27nmxprxm (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_2qtgzbqxnks3iqhdr27nmxprxm rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_2qtgzbqxnks3iqhdr27nmxprxm is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_dx2kxxpylisgjcmiozwrj6gh4y (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_dx2kxxpylisgjcmiozwrj6gh4y: restore the original route: constraint failed: injected (1811)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_dx2kxxpylisgjcmiozwrj6gh4y rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_dx2kxxpylisgjcmiozwrj6gh4y is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_o2jdqjmk4evdrt76zruhxfr6cm (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_o2jdqjmk4evdrt76zruhxfr6cm: restore the original route: constraint failed: injected (1811)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_o2jdqjmk4evdrt76zruhxfr6cm rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_o2jdqjmk4evdrt76zruhxfr6cm is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_ontq6qyxg2dv4qzxsjag7k34ly (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_ontq6qyxg2dv4qzxsjag7k34ly is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_jaqnuz5wg3h4iteb3dchcg765m (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_jaqnuz5wg3h4iteb3dchcg765m rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_jaqnuz5wg3h4iteb3dchcg765m: delete its snapshot: injected failure at delete-snapshot
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_jaqnuz5wg3h4iteb3dchcg765m is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_7iofvje4jmsuqo7cxtqynggwga (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_7iofvje4jmsuqo7cxtqynggwga rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_7iofvje4jmsuqo7cxtqynggwga is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_cxaaugc4vbmttoaxx2jofq5ere (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_cxaaugc4vbmttoaxx2jofq5ere rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_cxaaugc4vbmttoaxx2jofq5ere: delete the host's replica: injected failure at delete-replica
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_cxaaugc4vbmttoaxx2jofq5ere is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_cfj2gfswxnmvrt3hg4zh4ajh4a (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_cfj2gfswxnmvrt3hg4zh4ajh4a rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_cfj2gfswxnmvrt3hg4zh4ajh4a is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_n7v3utbhvps7aapow63wllikwi (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_n7v3utbhvps7aapow63wllikwi rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_n7v3utbhvps7aapow63wllikwi: retire its journal row: constraint failed: injected (1811)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_n7v3utbhvps7aapow63wllikwi is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_v2hqx3xecgliovzbsbl5nepnw4 (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_v2hqx3xecgliovzbsbl5nepnw4 rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_v2hqx3xecgliovzbsbl5nepnw4: retire its journal row: constraint failed: injected (1811)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_v2hqx3xecgliovzbsbl5nepnw4 is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_g53jtutomxvoa6gc6xmqemtvhu (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_g53jtutomxvoa6gc6xmqemtvhu rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_g53jtutomxvoa6gc6xmqemtvhu is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: mark import sd_g53jtutomxvoa6gc6xmqemtvhu rolled back: injected failure at cas
2026/10/24 20:56:45 provision: a.shop.example.com: aborted seed sd_g53jtutomxvoa6gc6xmqemtvhu rolled back (no box had swapped it)
2026/10/24 20:56:45 provision: a.shop.example.com: swapped for import sd_z4ph6igdwyryagfqgeqifdaljq (the original route is journaled)
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_z4ph6igdwyryagfqgeqifdaljq rolled back to its original route
2026/10/24 20:56:45 provision: a.shop.example.com: import sd_z4ph6igdwyryagfqgeqifdaljq is cleaned up and its journal row retired
2026/10/24 20:56:45 provision: a.shop.example.com: aborted seed sd_z4ph6igdwyryagfqgeqifdaljq rolled back (no box had swapped it)
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_icnrxw4chdjykydwwgcjj7ctua (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_icnrxw4chdjykydwwgcjj7ctua rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_icnrxw4chdjykydwwgcjj7ctua rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_icnrxw4chdjykydwwgcjj7ctua rolled back to its original route
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_icnrxw4chdjykydwwgcjj7ctua is cleaned up and its journal row retired
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_bbpokxuy5x4mevi4cgl6uhsxbm (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_bbpokxuy5x4mevi4cgl6uhsxbm rolled back to its original route
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_bbpokxuy5x4mevi4cgl6uhsxbm is cleaned up and its journal row retired
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_7rrnxuioghzxwrf5ppavklf3tu (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_7rrnxuioghzxwrf5ppavklf3tu rolled back to its original route
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_7rrnxuioghzxwrf5ppavklf3tu is cleaned up and its journal row retired
2026/10/24 20:56:46 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_kwijs4cwcqktvmvgug6klbqrau (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_kwijs4cwcqktvmvgug6klbqrau rolled back to its original route
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_kwijs4cwcqktvmvgug6klbqrau is cleaned up and its journal row retired
2026/10/24 20:56:46 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_5n2r4iyeai44jjmassozbbfyqy (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_5n2r4iyeai44jjmassozbbfyqy rolled back to its original route
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_5n2r4iyeai44jjmassozbbfyqy is cleaned up and its journal row retired
2026/10/24 20:56:46 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_wsjfitcch52mfatm5fwyk5wfpe (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_wsjfitcch52mfatm5fwyk5wfpe rolled back to its original route
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_wsjfitcch52mfatm5fwyk5wfpe is cleaned up and its journal row retired
2026/10/24 20:56:46 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_qwd3753rchi76hywrsvvb6e7ze (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_qwd3753rchi76hywrsvvb6e7ze rolled back to its original route
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_qwd3753rchi76hywrsvvb6e7ze is cleaned up and its journal row retired
2026/10/24 20:56:46 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_dz6atmlwafnza7im2qolc5nt2a (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_dz6atmlwafnza7im2qolc5nt2a rolled back to its original route
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_dz6atmlwafnza7im2qolc5nt2a is cleaned up and its journal row retired
2026/10/24 20:56:46 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_3k6in6kn6ol7yb4oqpsufkr354 (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_3k6in6kn6ol7yb4oqpsufkr354 has no route on this box: its local data is removed and no route is put back
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_3k6in6kn6ol7yb4oqpsufkr354 is cleaned up and its journal row retired
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_ttnqfwxl2y43ktibdtlbdmvl4m (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_yyaryu35qlrqnxsvkbju5svbsi (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_dnlso3pc5b6vqtiygsmv6fjdw4 (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_dnlso3pc5b6vqtiygsmv6fjdw4 cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_nyhl4l2tf6p2xalal53ydylzyu (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_nyhl4l2tf6p2xalal53ydylzyu is not rolled back: the route changed under the fence, so nothing there is touched
2026/10/24 20:56:46 provision: a.shop.example.com: import "../not-a-seed" names no snapshot and no replica; only its journal row is cleaned up
2026/10/24 20:56:46 provision: a.shop.example.com: import ../not-a-seed is cleaned up and its journal row retired
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_tgbi76l2k26ayirsfztpijot6a (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_jcv7ul66yizevf4fkiv4myrybq (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_n53x6qrslvhajxuwyomqymfk4e (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_rmyt5irnszpjxeg6ctnlk7h32y (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_n5qac4quqsqyaonwph6bnwfsk4 (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_n5qac4quqsqyaonwph6bnwfsk4 rollback deferred: the host is not fenced and stopped yet (stop evidence unreadable)
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_bf546uyjx53mrnrispghmk4jmy (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_bf546uyjx53mrnrispghmk4jmy has no route on this box: its local data is removed and no route is put back
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_bf546uyjx53mrnrispghmk4jmy is cleaned up and its journal row retired
2026/10/24 20:56:46 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_nlz5dwuh5wol26l34hpji7tkky (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_nlz5dwuh5wol26l34hpji7tkky: remove its local data: injected failure at remove-local
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_nlz5dwuh5wol26l34hpji7tkky is not rolled back: the route at the host is not the import's, so nothing there is touched
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_toq5xcnpm65jdx7lgb5f7gukta (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_toq5xcnpm65jdx7lgb5f7gukta: a route appeared at the host, so its local database is left and the rollback waits
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_zrud6sx46vzd6ih32krvwgjhea (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_zrud6sx46vzd6ih32krvwgjhea rollback deferred: no fence generation: registry busy
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_itfrvijlfw6n3snq3pau5vkmei (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_itfrvijlfw6n3snq3pau5vkmei rollback deferred: no fence generation: the generation source answered 0
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_2w7ghnygvoaafdwgyoof4jjsfa (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_zy7ay4wlooe7d4py74l2xr3zsi (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_q6hdlatjb3fc4skr6e7z4xu36a (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import deferred: this box cannot read the instance's env file
2026/10/24 20:56:46 provision: a.shop.example.com: import deferred: the instance's env file could not be read: a symlink
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_ykaud3olgeiurs6uyqccxqfv6e (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_ykaud3olgeiurs6uyqccxqfv6e rolled back to its original route
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_ykaud3olgeiurs6uyqccxqfv6e is cleaned up and its journal row retired
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_w2bqse5mq5pkqmt4hjyaenfklu (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_w2bqse5mq5pkqmt4hjyaenfklu rolled back to its original route
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_w2bqse5mq5pkqmt4hjyaenfklu is cleaned up and its journal row retired
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_tlqjaxfvsn6itefg6nru4svp5a (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_tlqjaxfvsn6itefg6nru4svp5a rolled back to its original route
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_tlqjaxfvsn6itefg6nru4svp5a is cleaned up and its journal row retired
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_fkhkxbmsqmrrhsd2363tur7ooq (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_fkhkxbmsqmrrhsd2363tur7ooq: retire its instance key: the env file is a symlink
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_fkhkxbmsqmrrhsd2363tur7ooq rolled back to its original route
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_fkhkxbmsqmrrhsd2363tur7ooq is cleaned up and its journal row retired
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_4arfmwa6msrbcejp5stgfb4mqy (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 20:56:46 provision: a.shop.example.com: swapped for import sd_dnc7q47r66ivvflage2ynh3mda (the original route is journaled)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_qwmtvja7ytgrnj4limqzjrdyxe refused: there is no route at a.shop.example.com to replace
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_h3tgaepqbzqyvln5w3c7o5mnaq refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_j26tqhqbqt53l6qfkbylib3yya refused: the route's address is 127.0.0.1:8401,127.0.0.1:8402, not 127.0.0.1:8401
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_ol5cvenpblmbkjnra3bw2p5p2y refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_7nsdhsynwwcgognegvaj5epeja refused: the route belongs to app other
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_kewz3t4gpa7om2vfcnntpnpxom refused: the route is filed under another account
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_fng5cuwqpzgch7uxzsw7a2ocoi refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_w6kq2rakiyyi3tw6lfgdlu4554 refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_apze53ljneldnpekfacrhrqx74 refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_5xnte6cyadkz4fdmjcmy3eazcq refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_ystgevd7n6m3z6mhn32vm442ea refused: the route is not an address route this import can take over (socket)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_ogd4j3uin7mgkgn3yohlzqpwey refused: the route is not an address route this import can take over (no address)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_zpfrrkpwxspkfcq6guzo3pkyii refused: the route is not an address route this import can take over (provisioned)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_mkl6k5jtw2j67kcqzcdehprnl4 refused: the route is not an address route this import can take over (kind static)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_yisr5inn7gnj2dvzv4kfryhlr4 refused: the route is not an address route this import can take over (backing)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_5dnf5pzabmg4peqsnoyxgijdxe refused: the route is not an address route this import can take over (tunnel)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_vk7rjuhh2eqtaw6gwaxyzkji7u refused: the route is not an address route this import can take over (caps)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_hsnixnwi6mq623r3kyag53plnm refused: the route is not an address route this import can take over (platform)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_pxuanb7k53zacdjas2tqa6ir2e refused: the route is not an address route this import can take over (canary)
2026/10/24 20:56:46 provision: a.shop.example.com: import sd_sl56igvzgsmhzm45psixhwu43a refused: the route is not an address route this import can take over (kind sidecar)
2026/10/24 20:56:47 provision: a.shop.example.com: import sd_ygkjo33ixko3ivpba2gnsuz4bu refused: the route is not an address route this import can take over (region)
2026/10/24 20:56:47 provision: a.shop.example.com: import sd_gaon4zizvwpsm4rb54gyjpkaiu refused: the route is not an address route this import can take over (fleet_box)
2026/10/24 20:56:47 provision: a.shop.example.com: import sd_7ajroy34yjiqgaazrbrfrucygi refused: the route is not an address route this import can take over (hibernate)
2026/10/24 20:56:47 provision: a.shop.example.com: import sd_chipnofj7tkbiffhd3fct7576e refused: the route is not an address route this import can take over (claim_owner)
2026/10/24 20:56:47 provision: a.shop.example.com: import sd_b5ubakufuqspokrqdheqqu7jna refused: this box does not run instances nested
2026/10/24 20:56:47 provision: a.shop.example.com: import sd_xziezdnbxetvvdzxpe3k6zbici refused: this box does not run instances nested
2026/10/24 20:56:47 provision: a.shop.example.com: import sd_jg7zkdc43dqoowtdwcw544lpvq refused: claim control is on for this box
2026/10/24 20:56:47 provision: a.shop.example.com: swapped for import sd_5icsiqb5o7m2e25xc4qfm7phxu (the original route is journaled)
2026/10/24 20:56:47 provision: a.shop.example.com: swapped for import sd_7gwuybsfkgegoc6ctt32fdswpu (the original route is journaled)
2026/10/24 20:56:47 provision: a.shop.example.com: import deferred: this box cannot read the legacy route assignments
2026/10/24 20:56:47 provision: a.shop.example.com: import deferred: the legacy route assignments could not be read: store down
2026/10/24 20:56:47 provision: a.shop.example.com: not swapping for import sd_smlhpyhkwzyn3rzkvmxn3z5fky: its verify hash is not a sha256
2026/10/24 20:56:47 provision: a.shop.example.com: not swapping for import sd_2uhjemqmsri626mxmws44hdkeu: its verify hash is not a sha256
2026/10/24 20:56:47 provision: a.shop.example.com: not swapping for import sd_vlkbfygxej6rgltz2k7cv2wgvq: its verify hash is not a sha256
2026/10/24 20:56:47 provision: a.shop.example.com: not swapping for import sd_../../x: its host or seed id is malformed (seeds: not a seed id)
2026/10/24 20:56:47 provision: A.shop.example.com/..: not swapping for import sd_4qjhlhuve23fkehrdpcagggcve: its host or seed id is malformed (seeds: not a host)
2026/10/24 20:56:47 provision: a.shop.example.com: not swapping for import sd_l3yvadv6hgosfk2xqdqi5qlogq: its record does not describe a nested, hibernating instance
2026/10/24 20:56:47 provision: a.shop.example.com: not swapping for import sd_rkefm6jn2dbogsmh36unhj4fyy: its record does not describe a nested, hibernating instance
2026/10/24 20:56:47 provision: a.shop.example.com: not swapping for import sd_dmu76ouf3unqdliow3cmsumu4i: its record does not describe a nested, hibernating instance
2026/10/24 20:56:47 provision: a.shop.example.com: not swapping for import sd_a3ldaad2cqky3tp5mb5au5goeu: its record does not describe a nested, hibernating instance
2026/10/24 20:56:47 provision: a.shop.example.com: import deferred: the box's layout intent could not be read: store down
2026/10/24 20:56:47 provision: a.shop.example.com: swapped for import sd_zjkxcswtfgvzjzf3equfwzczmu (the original route is journaled)
2026/10/24 20:56:47 provision: a.shop.example.com: import deferred: the box's nested probe did not answer: ready probe timed out
2026/10/24 20:56:47 provision: a.shop.example.com: swapped for import sd_pkpovrlma6p4tw5n43a4cbi53e (the original route is journaled)
2026/10/24 20:56:47 provision: a.shop.example.com: swapped for import sd_icgyn2gooowbhauemroixlz42a (the original route is journaled)
2026/10/24 20:56:47 provision: a.shop.example.com: import deferred: the route is held by operation op_1
2026/10/24 20:56:47 provision: dry-run: would consider swapping a.shop.example.com for import sd_hfxy45aret6wcyhzuxnirqn6he
2026/10/24 20:56:47 provision: a.shop.example.com: import sd_4rbjzxyv546giiwyv2q3bjcru4 rolled back to its original route
2026/10/24 20:56:47 provision: a.shop.example.com: import sd_4rbjzxyv546giiwyv2q3bjcru4: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/24 20:56:47 provision: a.shop.example.com: import sd_4rbjzxyv546giiwyv2q3bjcru4 is cleaned up and its journal row retired
2026/10/24 20:56:47 provision: a.shop.example.com: import sd_yqdpmnavsbzih53lkdhuq4ouua left alone: the import journal holds seed sd_vqfvemya5tyxkip2lh4f24ccnm at swapped
2026/10/24 20:56:47 provision: a.shop.example.com: not minting import sd_carznx3jy6qnivgy7id3qif4uq: it is swapped but not committed, and only its swap makes its row
2026/10/24 20:56:47 provision: a.shop.example.com: not minting import sd_6tklw7qek4zl5ldtq3a2cwley4: it is placed but not committed, and only its swap makes its row
2026/10/24 20:56:47 provision: a.shop.example.com: swapped for import sd_mn4k2u53uf736g2fsvwj3pvgme (the original route is journaled)
2026/10/24 20:56:47 provision: a.shop.example.com: not minting import sd_mn4k2u53uf736g2fsvwj3pvgme: it is swapped but not committed, and only its swap makes its row
2026/10/24 20:56:47 provision: a.shop.example.com: not minting import sd_mn4k2u53uf736g2fsvwj3pvgme: it is placed but not committed, and only its swap makes its row
2026/10/24 20:56:47 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 20:56:47 provision: removed retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/24 20:56:47 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 20:56:47 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 20:56:47 provision: converged sidecar bot.eleven.bac.sidecar.internal args ["sidecar","run"] -> ["worker","run"]
2026/10/24 20:56:47 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 20:56:47 provision: converged sidecar bot.eleven.bac.sidecar.internal ceilings 300/3600 -> 60/120
2026/10/24 20:56:47 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 20:56:47 provision: converged sidecar bot.eleven.bac.sidecar.internal channel stable -> canary/eleven
2026/10/24 20:56:47 provision: converged sidecar bot.eleven.bac.sidecar.internal environment "other" -> "relay"
2026/10/24 20:56:47 provision: converged sidecar bot.eleven.bac.sidecar.internal hibernate true -> false
2026/10/24 20:56:47 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: read failed: failStore: reads disabled under apps/bac/eleven/sidecars/
2026/10/24 20:56:47 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: malformed: invalid character 'n' looking for beginning of object key string
2026/10/24 20:56:47 provision: not removing sidecar bot.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/24 20:56:47 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: empty channel
2026/10/24 20:56:47 provision: skipping sidecar record apps/bac/eleven/sidecars/held.json: empty channel
2026/10/24 20:56:47 provision: not removing sidecar held.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/24 20:56:47 provision: removed retired sidecar route old.eleven.bac.sidecar.internal (record gone)
2026/10/24 20:56:47 provision: bac/eleven has sidecar records but no sidecars manifest — not minting
2026/10/24 20:56:47 provision: bac/eleven is in the trash — not minting sidecar routes for it
2026/10/24 20:56:47 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 20:56:47 provision: sidecar hub.relay.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 20:56:47 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 20:56:47 provision: minted sidecar route hub.relay.bac.sidecar.internal (app "relay" acct "bac" args ["relay"])
2026/10/24 20:56:47 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 20:56:47 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 20:56:47 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 20:56:47 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 20:56:47 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 20:56:47 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 20:56:47 provision: removed retired sidecar route bot.eleven.bac.sidecar.internal (record gone)
2026/10/24 20:56:47 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 20:56:47 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 20:56:47 provision: skipping sidecar record apps/bac/relay/sidecars/hub.json: read failed: failStore: reads disabled under apps/bac/relay/sidecars/
2026/10/24 20:56:47 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/24 20:56:47 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 20:56:47 provision: dry-run: would mint sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" channel "stable" args ["sidecar","run"])
2026/10/24 20:56:47 provision: dry-run: would remove retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/24 20:56:47 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/24 20:56:47 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:47 provision: converged acme.go.tito.io update settings "{\"updates\":\"manual\",\"channel\":\"stable\"}" -> ""
2026/10/24 20:56:47 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:47 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:47 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/24 20:56:47 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/24 20:56:47 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/24 20:56:47 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 20:56:47 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/24 20:56:47 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/24 20:56:47 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/24 20:56:47 provision: record view: change index unusable (release: change index unreadable: store has no conditional read: unsupported operation): the walk records no generations
2026/10/24 20:56:47 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 20:56:47 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 20:56:47 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 20:56:47 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 20:56:47 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: record view: re-reading apps/bqc/shop failed: retrying on the next refresh
2026/10/24 20:56:47 provision: listing apps/bqc/shop/instances/: context canceled — its records are unseen this pass
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: record view: change index unusable (get refused): walking
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: record view: change index unusable (release: change index malformed: invalid character 'n' looking for beginning of object key string): walking
2026/10/24 20:56:47 provision: record view: re-reading apps/bqc/shop failed: retrying on the next refresh
2026/10/24 20:56:47 provision: listing apps/bqc/shop/instances/: list refused — its records are unseen this pass
2026/10/24 20:56:47 provision: listing apps/bqc/shop/instances/: list refused — its records are unseen this pass
2026/10/24 20:56:47 provision: an app's records could not be listed: they are skipped
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping accounts/bqd/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/24 20:56:47 provision: skipping accounts/bqd/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/24 20:56:47 provision: skipping accounts/bqd/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/24 20:56:47 provision: record view: re-reading accounts/bqd failed: retrying on the next refresh
2026/10/24 20:56:47 provision: skipping accounts/bqd/account.json: read failed: list refused
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: minted instance route one.example.com (app "shop" acct "bum")
2026/10/24 20:56:47 provision: minted instance route one.example.com (app "shop" acct "bum")
2026/10/24 20:56:47 provision: minted instance route one.example.com (app "shop" acct "bum")
2026/10/24 20:56:47 provision: removed retired instance route one.example.com (record gone)
2026/10/24 20:56:47 provision: skipping record apps/bum/shop/instances/one.example.com.json: empty channel
2026/10/24 20:56:47 provision: not removing one.example.com: its record exists but could not be read cleanly this pass
2026/10/24 20:56:47 provision: skipping record apps/bum/shop/instances/one.example.com.json: empty channel
2026/10/24 20:56:47 provision: not removing one.example.com: its record exists but could not be read cleanly this pass
2026/10/24 20:56:47 provision: removed retired instance route one.example.com (record gone)
2026/10/24 20:56:47 provision: record view: change index unusable (context deadline exceeded): walking
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 20:56:47 provision: record view: change index unusable (context deadline exceeded): the walk records no generations
2026/10/24 20:56:47 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
--- FAIL: TestPlan14RootReadCensus (15.44s)
    plan14_root_reads_test.go:600: root read census: 19 discrepancies
        changed registry schema
        changed root read internal/provision/reconcile.go:Reconcile; review class, task, sites and digest
        changed root read internal/provision/reconcile.go:RouteFor; review class, task, sites and digest
        changed root read internal/registry/registry.go:Registry.Fingerprint; review class, task, sites and digest
        changed root read internal/registry/registry.go:Registry.Upsert; review class, task, sites and digest
        changed root read internal/registry/registry.go:Registry.migrate; review class, task, sites and digest
        changed root read internal/registry/registry.go:routeArgs; review class, task, sites and digest
        changed root read internal/registry/registry.go:scanRoute; review class, task, sites and digest
        changed root read internal/registry/remote_dispatch.go:Registry.dispatchRemote; review class, task, sites and digest
        changed root source envelope internal/provision
        changed root source envelope internal/ratelimit
        changed root source envelope internal/registry
        unclassified root read internal/registry/registry.go:Registry.SetRateLimit file:Exec@225,registry:remote@68,registry:remote@98,registry:sql@225,whole:remoteClient@100,whole:remoteClient@70
        changed legacy declaration internal/provision/reconcile.go:Reconcile
        changed legacy declaration internal/registry/registry.go:Registry.Fingerprint
        changed legacy declaration internal/registry/registry.go:Registry.migrate
        changed legacy declaration internal/registry/registry.go:scanRoute
        changed reclassified declaration internal/registry/registry.go:Registry.Upsert
        changed reclassified declaration internal/registry/remote_dispatch.go:Registry.dispatchRemote
        
        make census-card shows what changed; make census-propose NAME=<branch> CLAIMS=<file> writes the overlay and its approval card (AGENTS.md, The census)
FAIL
FAIL	github.com/carlosframework/platform/internal/provision	24.398s
ok  	github.com/carlosframework/platform/internal/publicrelease	0.008s
ok  	github.com/carlosframework/platform/internal/ratelimit	0.102s
?   	github.com/carlosframework/platform/internal/regionname	[no test files]
ok  	github.com/carlosframework/platform/internal/registry	5.782s
ok  	github.com/carlosframework/platform/internal/relay	7.244s
ok  	github.com/carlosframework/platform/internal/release	26.338s
ok  	github.com/carlosframework/platform/internal/rollout	3.854s
ok  	github.com/carlosframework/platform/internal/rolloutwords	0.006s
ok  	github.com/carlosframework/platform/internal/rootaws	0.011s
ok  	github.com/carlosframework/platform/internal/rootparticipation	0.073s
ok  	github.com/carlosframework/platform/internal/rootstate	0.026s
ok  	github.com/carlosframework/platform/internal/runs	0.637s
ok  	github.com/carlosframework/platform/internal/s3compat	0.006s
ok  	github.com/carlosframework/platform/internal/safefile	0.004s
ok  	github.com/carlosframework/platform/internal/schedule	2.698s
ok  	github.com/carlosframework/platform/internal/seeds	0.014s
ok  	github.com/carlosframework/platform/internal/sim/engines	2.568s
ok  	github.com/carlosframework/platform/internal/sim/hostlife	10.972s
ok  	github.com/carlosframework/platform/internal/sim/litestreamfacts	3.461s
ok  	github.com/carlosframework/platform/internal/status	0.082s
ok  	github.com/carlosframework/platform/internal/steering	0.006s
ok  	github.com/carlosframework/platform/internal/stopevidence	0.273s
ok  	github.com/carlosframework/platform/internal/svcrole	0.004s
ok  	github.com/carlosframework/platform/internal/telemetry	0.009s
ok  	github.com/carlosframework/platform/internal/termfence	0.006s
ok  	github.com/carlosframework/platform/internal/tunnelclient	0.004s
ok  	github.com/carlosframework/platform/internal/unixdial	0.003s
ok  	github.com/carlosframework/platform/internal/updatewords	0.005s
ok  	github.com/carlosframework/platform/internal/usage	0.010s
ok  	github.com/carlosframework/platform/internal/version	0.004s
ok  	github.com/carlosframework/platform/internal/vet	1.708s
FAIL
=== internal_console@0 (81 s)
ok  	github.com/carlosframework/platform/internal/console	79.324s
=== internal_console@1 (44 s)
ok  	github.com/carlosframework/platform/internal/console	42.386s
=== internal_console@2 (41 s)
ok  	github.com/carlosframework/platform/internal/console	38.870s
=== internal_console@3 (42 s)
ok  	github.com/carlosframework/platform/internal/console	40.078s
=== internal_console@4 (43 s)
ok  	github.com/carlosframework/platform/internal/console	41.093s
=== internal_console@5 (42 s)
ok  	github.com/carlosframework/platform/internal/console	40.315s
=== internal_console@6 (38 s)
ok  	github.com/carlosframework/platform/internal/console	36.111s
=== internal_console@7 (48 s)
ok  	github.com/carlosframework/platform/internal/console	45.874s
=== root@0 (111 s)
ok  	github.com/carlosframework/platform	108.926s
=== root@1 (83 s)
ok  	github.com/carlosframework/platform	81.233s
=== root@2 (93 s)
ok  	github.com/carlosframework/platform	90.885s

FAILED: rest
make: *** [Makefile:19: 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/provision/ratelimit_record_test.go b/internal/provision/ratelimit_record_test.go
index 2f48d92d9..ac6f2e057 100644
--- a/internal/provision/ratelimit_record_test.go
+++ b/internal/provision/ratelimit_record_test.go
@@ -9,8 +9,8 @@ import (
)
func TestValidateShapeRateLimit(t *testing.T) {
- base := Record{Schema: 1, Host: "acme.go.tito.io", Slug: "acme", App: "tito",
- Account: "bab", Channel: "stable"}
+ base := Record{Schema: 1, Host: "shop.example.com", Slug: "shop", App: "shop",
+ Account: "ops", Channel: "stable"}
// A nil pointer, the zero value and a sane value all pass.
for name, rl := range map[string]*ratelimit.Settings{
@@ -52,7 +52,7 @@ func TestValidateShapeRateLimit(t *testing.T) {
// A record written before the field existed has no rate_limit key. It must
// decode to nil, and its column must be the empty string: the defaults.
func TestRecordWithoutRateLimitDecodes(t *testing.T) {
- body := `{"schema":1,"host":"acme.go.tito.io","slug":"acme","app":"tito","account":"bab","channel":"stable"}`
+ body := `{"schema":1,"host":"shop.example.com","slug":"shop","app":"shop","account":"ops","channel":"stable"}`
var rec Record
if err := json.Unmarshal([]byte(body), &rec); err != nil {
t.Fatal(err)
diff --git a/internal/provision/reconcile_ratelimit_test.go b/internal/provision/reconcile_ratelimit_test.go
index 2a03ce6a9..ce5afc85b 100644
--- a/internal/provision/reconcile_ratelimit_test.go
+++ b/internal/provision/reconcile_ratelimit_test.go
@@ -6,25 +6,42 @@ import (
"os"
"strings"
"testing"
+ "time"
"github.com/carlosframework/platform/internal/ratelimit"
+ "github.com/carlosframework/platform/internal/release"
)
+// rateLimitFixture is an account "ops" with a "shop" app on example.com and
+// one record for shop.example.com, ready to Reconcile.
+func rateLimitFixture(t *testing.T) (*release.DirStore, string, Record) {
+ t.Helper()
+ s := dirStore(t)
+ sqid := writeAccountManifest(t, s, acctID, "Ops")
+ if err := PutManifest(ctx, s, sqid, "shop", Manifest{
+ Schema: 1, App: "shop", Domain: "example.com", Pool: "shop", Seed: []string{"seed"},
+ }); err != nil {
+ t.Fatal(err)
+ }
+ rec := Record{Schema: 1, Host: "shop.example.com", Slug: "shop", App: "shop",
+ Account: sqid, Pool: "shop", Region: "ie", Channel: "stable", CreatedAt: time.Now()}
+ return s, sqid, rec
+}
+
// The owned-converge arm moves a row's rate_limit column to the record's
// canonical value in both directions, through the real Reconcile pass, and a
// freshly minted row carries it from RouteFor.
func TestReconcileConvergesRateLimit(t *testing.T) {
- s, sqid := setup(t)
- rec := acmeRecord(sqid)
+ s, sqid, rec := rateLimitFixture(t)
if err := CreateRecord(ctx, s, rec); err != nil {
t.Fatal(err)
}
reg := regWith(t)
- cfg := ReconcileConfig{Region: "ie", Pools: []string{"tito"}, DataDir: "/data"}
+ cfg := ReconcileConfig{Region: "ie", Pools: []string{"shop"}, DataDir: "/data"}
if err := Reconcile(ctx, s, reg, cfg); err != nil {
t.Fatal(err)
}
- before := *mustGet(t, reg, "acme.go.tito.io")
+ before := *mustGet(t, reg, "shop.example.com")
if before.RateLimit != "" {
t.Fatalf("minted RateLimit = %q, want defaults", before.RateLimit)
}
@@ -39,15 +56,15 @@ func TestReconcileConvergesRateLimit(t *testing.T) {
{Prefix: "/a/", Rule: ratelimit.Rule{Rate: 1}},
}}
rec.RateLimit = &set
- putReplace(t, s, RecordKey(sqid, "tito", rec.Host), mustJSON(t, rec))
+ putReplace(t, s, RecordKey(sqid, "shop", rec.Host), mustJSON(t, rec))
if err := Reconcile(ctx, s, reg, cfg); err != nil {
t.Fatal(err)
}
- after := *mustGet(t, reg, "acme.go.tito.io")
+ after := *mustGet(t, reg, "shop.example.com")
if after.RateLimit != set.Canonical() {
t.Errorf("RateLimit = %q, want %q", after.RateLimit, set.Canonical())
}
- if !strings.Contains(logged.String(), "converged acme.go.tito.io rate limit default -> custom") {
+ if !strings.Contains(logged.String(), "converged shop.example.com rate limit default -> custom") {
t.Errorf("no default -> custom line logged; log was:\n%s", logged.String())
}
if strings.Contains(logged.String(), `"rate"`) || strings.Contains(logged.String(), "/a/") {
@@ -67,36 +84,53 @@ func TestReconcileConvergesRateLimit(t *testing.T) {
t.Errorf("an unchanged record converged again:\n%s", logged.String())
}
- // A record with the zero Settings, and one with no key at all, are both
- // the defaults, and clearing reaches the row.
- rec.RateLimit = &ratelimit.Settings{}
- putReplace(t, s, RecordKey(sqid, "tito", rec.Host), mustJSON(t, rec))
- logged.Reset()
- if err := Reconcile(ctx, s, reg, cfg); err != nil {
- t.Fatal(err)
- }
- if got := mustGet(t, reg, "acme.go.tito.io").RateLimit; got != "" {
- t.Errorf("RateLimit = %q, want it cleared", got)
- }
- if !strings.Contains(logged.String(), "converged acme.go.tito.io rate limit custom -> default") {
- t.Errorf("no custom -> default line logged; log was:\n%s", logged.String())
+ // A record with the zero Settings, and one with the field removed, are
+ // both the defaults, and clearing reaches the row either way.
+ for _, step := range []struct {
+ name string
+ set *ratelimit.Settings
+ }{
+ {"zero settings", &ratelimit.Settings{}},
+ {"field removed", nil},
+ } {
+ // Put custom limits back first so each step is a custom -> default move.
+ rec.RateLimit = &set
+ putReplace(t, s, RecordKey(sqid, "shop", rec.Host), mustJSON(t, rec))
+ if err := Reconcile(ctx, s, reg, cfg); err != nil {
+ t.Fatal(err)
+ }
+ if got := mustGet(t, reg, "shop.example.com").RateLimit; got != set.Canonical() {
+ t.Fatalf("%s: setup: RateLimit = %q, want custom", step.name, got)
+ }
+
+ rec.RateLimit = step.set
+ putReplace(t, s, RecordKey(sqid, "shop", rec.Host), mustJSON(t, rec))
+ logged.Reset()
+ if err := Reconcile(ctx, s, reg, cfg); err != nil {
+ t.Fatal(err)
+ }
+ if got := mustGet(t, reg, "shop.example.com").RateLimit; got != "" {
+ t.Errorf("%s: RateLimit = %q, want it cleared", step.name, got)
+ }
+ if !strings.Contains(logged.String(), "converged shop.example.com rate limit custom -> default") {
+ t.Errorf("%s: no custom -> default line logged; log was:\n%s", step.name, logged.String())
+ }
}
}
func TestReconcileMintsRateLimit(t *testing.T) {
- s, sqid := setup(t)
- rec := acmeRecord(sqid)
+ s, _, rec := rateLimitFixture(t)
set := ratelimit.Settings{BusyAt: 20}
rec.RateLimit = &set
if err := CreateRecord(ctx, s, rec); err != nil {
t.Fatal(err)
}
reg := regWith(t)
- cfg := ReconcileConfig{Region: "ie", Pools: []string{"tito"}, DataDir: "/data"}
+ cfg := ReconcileConfig{Region: "ie", Pools: []string{"shop"}, DataDir: "/data"}
if err := Reconcile(ctx, s, reg, cfg); err != nil {
t.Fatal(err)
}
- if got := mustGet(t, reg, "acme.go.tito.io").RateLimit; got != set.Canonical() {
+ if got := mustGet(t, reg, "shop.example.com").RateLimit; got != set.Canonical() {
t.Errorf("minted RateLimit = %q, want %q", got, set.Canonical())
}
}