console: rate-limit counts fail on an unreadable day object, not a short total (#358)
A box's edge day object that does not decode now fails the rate-limit GET through its existing usage 502 instead of being skipped, which answered a smaller total that reads as fewer refusals. A missing day still counts as zero. The counting function's doc states the accepted limit of its account/app filter: AddDeltas relabels a row to its latest owner within an hour, so a host re-owned inside one hour shows the previous owner's two aggregate counts for that hour.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 files changed,
+26
−2
internal/console/apiinstances_ratelimit.go+11 −2internal/console/apiinstances_ratelimit_test.go+15 −0
CI failed — run details
CI log
=== gate ===
.amadan/test-gate.sh
=== launchctx (1 s)
ok amadan.net/carlos/platform.git/launchctx 0.011s
? amadan.net/carlos/platform.git/launchctx/controlname [no test files]
? amadan.net/carlos/platform.git/launchctx/wireid [no test files]
=== vet (13 s)
=== gofmt (0 s)
gofmt -l .: clean
=== rest (166 s)
? github.com/carlosframework/platform/cmd/changelog [no test files]
ok github.com/carlosframework/platform/cmd/console 3.100s
ok github.com/carlosframework/platform/cmd/moveprobe 11.663s
ok github.com/carlosframework/platform/cmd/zddprobe 0.732s
ok github.com/carlosframework/platform/internal/activator 58.210s
ok github.com/carlosframework/platform/internal/agentsock 0.027s
ok github.com/carlosframework/platform/internal/alerting 0.005s
ok github.com/carlosframework/platform/internal/analytics 0.019s
ok github.com/carlosframework/platform/internal/appconfig 2.703s
ok github.com/carlosframework/platform/internal/apperr 0.108s
ok github.com/carlosframework/platform/internal/applog 0.217s
ok github.com/carlosframework/platform/internal/awsinv 0.004s
ok github.com/carlosframework/platform/internal/boxchoice 0.004s
ok github.com/carlosframework/platform/internal/boxid 1.017s
? 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.015s
ok github.com/carlosframework/platform/internal/caps 0.015s
ok github.com/carlosframework/platform/internal/certwarm 0.005s
ok github.com/carlosframework/platform/internal/cgroup 0.717s
ok github.com/carlosframework/platform/internal/changelog 0.375s
ok github.com/carlosframework/platform/internal/claimactivation 0.925s
ok github.com/carlosframework/platform/internal/clamd 0.055s
? 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 8.195s
ok github.com/carlosframework/platform/internal/dbdoor/dbdoortest 0.014s
ok github.com/carlosframework/platform/internal/dbquery 0.006s
ok github.com/carlosframework/platform/internal/dbreads 2.091s
? github.com/carlosframework/platform/internal/dbreads/dbreadstest [no test files]
ok github.com/carlosframework/platform/internal/dbverify 0.007s
ok github.com/carlosframework/platform/internal/dnsrec 0.007s
ok github.com/carlosframework/platform/internal/docsite 0.007s
ok github.com/carlosframework/platform/internal/domains 2.607s
ok github.com/carlosframework/platform/internal/doorkey 0.006s
ok github.com/carlosframework/platform/internal/economics 0.011s
ok github.com/carlosframework/platform/internal/edge 45.904s
? github.com/carlosframework/platform/internal/edgeproof [no test files]
ok github.com/carlosframework/platform/internal/edgesfile 0.010s
ok github.com/carlosframework/platform/internal/fleetapi 0.151s
ok github.com/carlosframework/platform/internal/gate 1.667s
ok github.com/carlosframework/platform/internal/genselect 0.022s
ok github.com/carlosframework/platform/internal/geo 0.019s
ok github.com/carlosframework/platform/internal/geoip 0.039s
ok github.com/carlosframework/platform/internal/historyreadback 0.176s
ok github.com/carlosframework/platform/internal/host 142.376s
ok github.com/carlosframework/platform/internal/hostactors 6.528s
ok github.com/carlosframework/platform/internal/hostactors/awsmembership 0.014s
ok github.com/carlosframework/platform/internal/hostbox 2.923s
ok github.com/carlosframework/platform/internal/hostclaim 0.754s
ok github.com/carlosframework/platform/internal/hostenv 0.014s
ok github.com/carlosframework/platform/internal/hostevidence 0.013s
ok github.com/carlosframework/platform/internal/hostexec 5.361s
ok github.com/carlosframework/platform/internal/hostfence 0.038s
ok github.com/carlosframework/platform/internal/hostfiles 10.337s
ok github.com/carlosframework/platform/internal/hostfloor 0.024s
ok github.com/carlosframework/platform/internal/hostguard 1.024s
ok github.com/carlosframework/platform/internal/hostops 1.960s
? github.com/carlosframework/platform/internal/hostops/fencerelease [no test files]
ok github.com/carlosframework/platform/internal/hostops/internal/fencerelease 0.013s
ok github.com/carlosframework/platform/internal/hostquarantine 0.013s
ok github.com/carlosframework/platform/internal/hostrelocate 0.640s
ok github.com/carlosframework/platform/internal/hostresolve 0.150s
ok github.com/carlosframework/platform/internal/hostwrite 0.013s
ok github.com/carlosframework/platform/internal/infraview 0.013s
ok github.com/carlosframework/platform/internal/instancectl 5.282s
ok github.com/carlosframework/platform/internal/instanceexec 2.790s
ok github.com/carlosframework/platform/internal/instancefs 0.019s
ok github.com/carlosframework/platform/internal/instancekey 0.017s
ok github.com/carlosframework/platform/internal/instanceupdates 0.007s
ok github.com/carlosframework/platform/internal/layout 1.746s
ok github.com/carlosframework/platform/internal/lbhealth 0.002s
ok github.com/carlosframework/platform/internal/lease 10.096s
ok github.com/carlosframework/platform/internal/lease/leasetest 0.561s
ok github.com/carlosframework/platform/internal/ledger 0.010s
ok github.com/carlosframework/platform/internal/mail 0.236s
ok github.com/carlosframework/platform/internal/maintenance 0.094s
ok github.com/carlosframework/platform/internal/maintenanceexec 5.512s
ok github.com/carlosframework/platform/internal/maintenanceguard 0.077s
ok github.com/carlosframework/platform/internal/metrics 0.005s
ok github.com/carlosframework/platform/internal/moves 21.497s
ok github.com/carlosframework/platform/internal/moves/archive 0.941s
ok github.com/carlosframework/platform/internal/objstore 0.259s
ok github.com/carlosframework/platform/internal/ops 0.268s
ok github.com/carlosframework/platform/internal/park 0.278s
ok github.com/carlosframework/platform/internal/plans 0.011s
ok github.com/carlosframework/platform/internal/privatefile 0.009s
2026/10/24 22:12:53 provision: listing apps/bab/blog/instances/: list refused — its records are unseen this pass
2026/10/24 22:12:53 provision: listing apps/bab/: listdirs refused — its records are unseen this pass
2026/10/24 22:12:53 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:53 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:53 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:53 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/24 22:12:53 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/24 22:12:53 provision: skipping record apps/bac/tito/instances/one.example.com.json: unreadable: read refused
2026/10/24 22:12:53 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/24 22:12:53 provision: an app's records could not be listed: they are skipped
2026/10/24 22:12:53 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 22:12:53 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/24 22:12:53 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/24 22:12:53 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/24 22:12:53 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/24 22:12:53 provision: claim install acme.go.tito.io: provision: claim admission unavailable
2026/10/24 22:12:53 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:53 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/24 22:12:53 provision: claim install bot.eleven.bac.sidecar.internal: provision: claim admission unavailable
2026/10/24 22:12:53 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 22:12:53 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/24 22:12:53 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 22:12:53 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: no sealed config
2026/10/24 22:12:53 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:53 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:53 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 22:12:53 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 22:12:53 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 22:12:54 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 22:12:54 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 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 22:12:54 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 22:12:54 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 22:12:54 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/24 22:12:54 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/24 22:12:54 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 22:12:54 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 22:12:54 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/24 22:12:54 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 22:12:54 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 22:12:54 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 22:12:54 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 22:12:54 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:12:54 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:12:54 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 22:12:54 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:12:54 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:12:54 provision: minted instance route rf.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route rh.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route rg.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route ri.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route rj.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route rk.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route rl.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/24 22:12:54 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/24 22:12:54 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route x.appj.example (app "appj" acct "bac")
2026/10/24 22:12:54 provision: minted instance route x.appa.example (app "appa" acct "bac")
2026/10/24 22:12:54 provision: minted instance route x.appb.example (app "appb" acct "bac")
2026/10/24 22:12:54 provision: minted instance route x.appc.example (app "appc" acct "bac")
2026/10/24 22:12:54 provision: minted instance route x.appd.example (app "appd" acct "bac")
2026/10/24 22:12:54 provision: minted instance route x.apph.example (app "apph" acct "bac")
2026/10/24 22:12:54 provision: minted instance route x.appi.example (app "appi" acct "bac")
2026/10/24 22:12:54 provision: minted instance route x.appe.example (app "appe" acct "bac")
2026/10/24 22:12:54 provision: minted instance route x.appf.example (app "appf" acct "bac")
2026/10/24 22:12:54 provision: minted instance route x.appg.example (app "appg" acct "bac")
2026/10/24 22:12:54 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 22:12:54 provision: minted instance route r0053.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0000.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0020.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0033.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0012.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0047.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0058.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0073.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0007.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0070.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0076.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0107.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0105.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0019.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0023.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0036.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0050.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0052.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0062.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0110.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0042.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0046.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0077.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0127.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0022.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0029.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0039.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0048.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0054.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0068.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0119.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0125.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0009.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0024.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0017.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0021.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0091.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0108.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0117.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0006.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0038.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0064.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0098.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0055.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0069.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0099.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0101.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0102.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0115.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0129.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0060.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0078.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0090.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0092.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0100.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0005.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0010.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0085.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0065.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0084.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0004.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0011.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0044.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0087.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0113.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0013.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0025.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0034.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0103.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0016.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0057.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0071.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0079.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0094.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0035.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0043.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0075.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0096.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0124.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0082.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0097.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0026.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0018.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0037.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0081.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0111.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0045.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0059.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0074.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0104.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0114.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0122.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0095.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0014.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0027.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0028.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0072.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0080.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0086.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0093.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0040.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0041.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0051.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0015.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0061.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0066.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0089.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0002.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0001.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0032.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0049.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0083.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0106.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0116.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0118.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0126.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0088.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0109.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0067.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0120.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0030.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0063.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0121.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0003.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0008.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0112.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0128.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0056.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0123.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:54 provision: minted instance route r0031.go.tito.io (app "tito" acct "bac")
--- FAIL: TestPlan9B8RecordWriteCensus (0.75s)
plan9_b8_census_test.go:372: record-write census rejected 3 site(s); update the explicit inventory only after reviewing the source:
changed site internal/console/apiinstances.go:Server.handleAPIInstanceUpdate: source differs from the reviewed digest
changed site internal/console/authcli.go:Server.registerCLIRoutes: source differs from the reviewed digest
changed site internal/provision/reconcile.go:Reconcile: source differs from the reviewed digest
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 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 22:12:56 provision: minted instance route shop.example.com (app "shop" acct "bac")
2026/10/24 22:12:56 provision: minted instance route shop.example.com (app "shop" acct "bac")
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted instance route console.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted service route svc.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted instance route whole.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted instance route shared.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: converged acme.go.tito.io channel stable -> edge
2026/10/24 22:12:56 provision: converged acme.go.tito.io channel edge -> canary/rehearsal
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: empty channel
2026/10/24 22:12:56 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: converged acme.go.tito.io environment "" -> "staging"
2026/10/24 22:12:56 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: converged acme.go.tito.io steering "" -> "latency"
2026/10/24 22:12:56 provision: converged acme.go.tito.io steering "latency" -> ""
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: converged acme.go.tito.io hibernate false -> true
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: converged acme.go.tito.io hibernate true -> false (replication "daily" cleared: only a hibernating route's rung is read)
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: converged acme.go.tito.io status-named false -> true
2026/10/24 22:12:56 provision: converged acme.go.tito.io status-named true -> false
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 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 22:12:56 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 22:12:56 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 22:12:56 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 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 22:12:56 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 22:12:56 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 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: skipping accounts/bac/account.json: malformed account manifest: invalid character 'o' in literal null (expecting 'u')
2026/10/24 22:12:56 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: manifest bac/tito: read failed: provision: manifest bac/tito: invalid character 'o' in literal null (expecting 'u')
2026/10/24 22:12:56 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 22:12:56 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 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 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 22:12:56 provision: not removing acme$evil.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 22:12:56 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 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 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 22:12:56 provision: not removing bad-service.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 22:12:56 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/24 22:12:56 provision: not removing no-channel.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:12:56 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 22:12:56 provision: removed retired instance route ghost.go.tito.io (record gone)
2026/10/24 22:12:56 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 22:12:56 provision: minted instance route dup.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 22:12:56 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/24 22:12:56 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 22:12:56 provision: removed retired static route site.go.tito.io (app in the trash)
2026/10/24 22:12:56 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 22:12:56 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 22:12:56 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/24 22:12:56 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 22:12:56 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 22:12:56 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 22:12:56 provision: converged acme.go.tito.io channel stable -> edge
2026/10/24 22:12:56 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 22:12:56 provision: converged acme.go.tito.io channel canary/rehearsal -> edge
2026/10/24 22:12:56 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/24 22:12:56 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 22:12:56 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 22:12:56 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 22:12:56 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 22:12:56 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 22:12:56 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 22:12:56 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 22:12:56 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 22:12:56 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 22:12:56 provision: dry-run: would mint instance route acme.go.tito.io (app "tito" acct "bac" channel "stable")
2026/10/24 22:12:56 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 22:12:56 provision: dry-run: would converge adopt.go.tito.io channel stable -> edge
2026/10/24 22:12:56 provision: dry-run: would converge adopt.go.tito.io environment "" -> "staging"
2026/10/24 22:12:56 provision: dry-run: would converge owned.go.tito.io channel stable -> edge
2026/10/24 22:12:56 provision: dry-run: would converge owned.go.tito.io environment "" -> "staging"
2026/10/24 22:12:56 provision: dry-run: would converge owned.go.tito.io hibernate false -> true
2026/10/24 22:12:56 provision: dry-run: would converge owned.go.tito.io seed
2026/10/24 22:12:56 provision: dry-run: would remove retired instance route gone.go.tito.io (record gone)
2026/10/24 22:12:56 provision: converged owned.go.tito.io channel stable -> edge
2026/10/24 22:12:56 provision: converged owned.go.tito.io environment "" -> "staging"
2026/10/24 22:12:56 provision: converged owned.go.tito.io hibernate false -> true
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: adopted existing route adopt.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 22:12:56 provision: converged adopt.go.tito.io channel stable -> edge
2026/10/24 22:12:56 provision: converged adopt.go.tito.io environment "" -> "staging"
2026/10/24 22:12:56 provision: removed retired instance route gone.go.tito.io (record gone)
2026/10/24 22:12:56 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:56 provision: adopted existing route story.carlosframework.com (app "story" acct "bad") — this record now owns its channel and environment
2026/10/24 22:12:56 provision: story.carlosframework.com exists but is not the route this record describes (kind "instance"/"static") — leaving it alone
2026/10/24 22:12:57 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted service route pub.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted service route pubs.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted instance route exec.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted service route loop.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted service route named.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted service route priv.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted instance route unit.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted static route pisite.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: removed retired static route site.go.tito.io (record gone)
2026/10/24 22:12:57 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: converged acme.go.tito.io replicas "ie,uk" -> "uk"
2026/10/24 22:12:57 provision: converged acme.go.tito.io replicas "uk" -> ""
2026/10/24 22:12:57 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: converged acme-uk.go.tito.io replica mark true -> false
2026/10/24 22:12:57 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 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 22:12:57 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:57 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/24 22:12:57 provision: router.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/24 22:12:57 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 22:12:57 provision: converged acme.go.tito.io channel stable -> edge
2026/10/24 22:12:57 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/24 22:12:57 provision: not removing acme.go.tito.io (record gone): participant of a running operation
2026/10/24 22:12:57 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 22:12:57 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/24 22:12:57 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 22:12:57 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/24 22:12:57 provision: acme.go.tito.io: held restoring by rb_other, not by mv_acme; leaving it
2026/10/24 22:12:57 provision: acme.go.tito.io: the row is not this pass's (app "other" acct ""); not holding it for mv_acme
2026/10/24 22:12:57 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 22:12:57 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 22:12:57 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 22:12:57 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/24 22:12:57 provision: minted instance route acme.example.com (app "shop" acct "bac")
2026/10/24 22:12:57 provision: minted instance route plain.example.com (app "shop" acct "bac")
2026/10/24 22:12:57 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:12:57 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 22:12:57 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:12:57 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 22:12:57 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:12:57 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 22:12:57 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:12:57 provision: listing apps/bac/shop/instances/: list refused — its records are unseen this pass
2026/10/24 22:12:58 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:12:58 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:58 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 22:12:58 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:58 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 22:12:58 provision: minted sidecar route bot.shop.bac.sidecar.internal (app "shop" acct "bac" args ["run"])
2026/10/24 22:12:58 provision: removed retired sidecar route bot.shop.bac.sidecar.internal (record gone)
2026/10/24 22:12:58 provision: minted sidecar route bot.shop.bum.sidecar.internal (app "shop" acct "bum" args ["run"])
2026/10/24 22:12:58 provision: minted sidecar route bot.shop.bum.sidecar.internal (app "shop" acct "bum" args ["run"])
2026/10/24 22:12:58 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 22:12:58 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 22:12:58 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 22:12:58 provision: removed retired sidecar route bot.shop.bum.sidecar.internal (record gone)
2026/10/24 22:12:58 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 22:12:58 provision: removed retired sidecar route bot.shop.bum.sidecar.internal (record gone)
2026/10/24 22:12:58 provision: a.shop.example.com: swapped for import sd_btzuyxm2kkgoeyoq6dhivwwboq (the original route is journaled)
2026/10/24 22:12:58 provision: a.shop.example.com: import sd_btzuyxm2kkgoeyoq6dhivwwboq committed: its gate is cleared and its journal row dropped
2026/10/24 22:12:58 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 22:12:59 provision: a.shop.example.com: import sd_tczmy2i3iqysefijdxiycuduem rolled back to its original route
2026/10/24 22:12:59 provision: a.shop.example.com: import sd_tczmy2i3iqysefijdxiycuduem: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/24 22:12:59 provision: a.shop.example.com: import sd_tczmy2i3iqysefijdxiycuduem is cleaned up and its journal row retired
2026/10/24 22:12:59 provision: a.shop.example.com: import sd_twxiyql4kh36jqpz4z35j73piu rolled back to its original route
2026/10/24 22:12:59 provision: a.shop.example.com: import sd_twxiyql4kh36jqpz4z35j73piu: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/24 22:12:59 provision: a.shop.example.com: import sd_twxiyql4kh36jqpz4z35j73piu is cleaned up and its journal row retired
2026/10/24 22:12:59 provision: dry-run: would redo a.shop.example.com's swap record CAS for import sd_unxvy2kz3ps543vx6xp5umnwji
2026/10/24 22:12:59 provision: dry-run: would clear a.shop.example.com's import gate
2026/10/24 22:12:59 provision: dry-run: would converge a.shop.example.com seed source
2026/10/24 22:12:59 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 22:12:59 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 22:12:59 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 22:12:59 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 22:12:59 provision: a.shop.example.com: import sd_rtgxkfygxxhxkm2foby4ypx5ki cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/24 22:12:59 provision: a.shop.example.com: import sd_zvtl65m4t2hmoom2q3pxuknw4a cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/24 22:12:59 provision: a.shop.example.com: import sd_rbmhvo7svkalpeikhpobdf7rnu is journaled, but this box cannot act on imports; its row is left alone
2026/10/24 22:12:59 provision: a.shop.example.com: import sd_55ejo3y7t3gbhxl7srvqiws6ba is journaled, but this box cannot act on imports; its row is left alone
2026/10/24 22:12:59 provision: a.shop.example.com: import sd_e6ke5tcitcnvkj6rxobnry74yy is journaled, but this box cannot act on imports; its row is left alone
2026/10/24 22:12:59 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 22:12:59 provision: b.shop.example.com: import sd_72hlssis65xgvhgztzyin3yh4m left alone this pass: the import journal could not be read
2026/10/24 22:12:59 provision: c.shop.example.com: import sd_inerejbzqffux2upnclb4qd3my left alone this pass: the import journal could not be read
2026/10/24 22:12:59 provision: a.shop.example.com: import sd_ewc6nxkslhvxu6ce5hnf6jr5la committed: its gate is cleared and its journal row dropped
2026/10/24 22:12:59 provision: a.shop.example.com: not converging import sd_vnvatdoq5yxrtrrknazctvz4dy: it is swapped but not committed, and the row on this box has no import gate
2026/10/24 22:12:59 provision: a.shop.example.com: not converging import sd_cidsnn2qqvdwvjclrxqiai3v2y: it is swapped but not committed, and the row on this box has no import gate
2026/10/24 22:12:59 provision: a.shop.example.com: not converging import sd_izkzb4lqn5mbpo6pfbn364iuo4: it is placed but not committed, and the row on this box has no import gate
2026/10/24 22:12:59 provision: a.shop.example.com: not converging import sd_4esyqyxmjk2cmsx76kwjc2it44: it is placed but not committed, and the row on this box has no import gate
2026/10/24 22:12:59 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 22:12:59 provision: converge seed source on a.shop.example.com: constraint failed: seed_source is read-only here (1811)
2026/10/24 22:12:59 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 22:12:59 provision: a.shop.example.com: import sd_5wblsnhefsmpjtytwcbtr3qsce committed: its gate is cleared and its journal row dropped
2026/10/24 22:12:59 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 22:12:59 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:59 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 22:12:59 provision: acme.go.tito.io: not minting a seeded instance: this box does not mint nested (<nil>)
2026/10/24 22:12:59 provision: acme.go.tito.io: not minting a seeded instance: claim control is on for this box
2026/10/24 22:12:59 provision: acme.go.tito.io: aborted seed sd_yogyadhnq2sdf27q7ojqv5ou4y: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/24 22:12:59 provision: acme.go.tito.io: aborted seed sd_yogyadhnq2sdf27q7ojqv5ou4y rolled back (no box had swapped it)
2026/10/24 22:12:59 provision: acme.go.tito.io: not minting a seeded instance: its record does not describe a hibernating instance
2026/10/24 22:12:59 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:59 provision: removed instance route acme.go.tito.io (its seed sd_uzq2hi6iifenv3fknbjsjh5qvy was aborted); the next pass rolls it back
2026/10/24 22:12:59 provision: acme.go.tito.io: aborted seed sd_uzq2hi6iifenv3fknbjsjh5qvy: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/24 22:12:59 provision: acme.go.tito.io: aborted seed sd_uzq2hi6iifenv3fknbjsjh5qvy rolled back (no box had swapped it)
2026/10/24 22:12:59 provision: acme.go.tito.io: aborted seed sd_zbreqtc4x27urk3c42jtpcgc7m has a row this pass may not remove; leaving the seed aborted
2026/10/24 22:12:59 provision: acme.go.tito.io: aborted seed sd_zg3iuaolz2sod2l6buposu2bwa rolled back (no box had swapped it)
2026/10/24 22:12:59 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:12:59 provision: removed instance route acme.go.tito.io (its seed sd_mwdkqwqh4g6gm6xqtjbmlg5plu was aborted); the next pass rolls it back
2026/10/24 22:12:59 provision: acme.go.tito.io: aborted seed sd_mwdkqwqh4g6gm6xqtjbmlg5plu has no route on this box: its local data is removed
2026/10/24 22:12:59 provision: acme.go.tito.io: aborted seed sd_mwdkqwqh4g6gm6xqtjbmlg5plu rolled back (no box had swapped it)
2026/10/24 22:12:59 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_zs5cdilh3g4qbizgn7elpsavpi (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_zs5cdilh3g4qbizgn7elpsavpi rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_zs5cdilh3g4qbizgn7elpsavpi is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_orxvn4ypchfpylge7ad3kibiai (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_orxvn4ypchfpylge7ad3kibiai rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_orxvn4ypchfpylge7ad3kibiai is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_l53glkfmxyzzpsg7sw7wpqjjse (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_l53glkfmxyzzpsg7sw7wpqjjse rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_l53glkfmxyzzpsg7sw7wpqjjse: the host's replica is left alone: its record no longer names this seed
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_l53glkfmxyzzpsg7sw7wpqjjse is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_larpjytfqywhw65rkgyg3wxbqa (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_larpjytfqywhw65rkgyg3wxbqa rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_larpjytfqywhw65rkgyg3wxbqa rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_larpjytfqywhw65rkgyg3wxbqa is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_xkslegks7mbwscmlqztntieqyu (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_xkslegks7mbwscmlqztntieqyu rollback deferred: the host is not fenced and stopped yet (stop unproven)
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_lypza3p6bxvlz4r5s7fpcbjj44 (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_lypza3p6bxvlz4r5s7fpcbjj44 is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_mwujbzehi6nwg6aiuezrztzioy (the original route is journaled)
2026/10/24 22:13:00 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_mwujbzehi6nwg6aiuezrztzioy left alone this pass: its record could not be read
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_k5cqmvewmzzf4ynxtpk46dubqy (the original route is journaled)
2026/10/24 22:13:00 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: read failed: connection reset
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_k5cqmvewmzzf4ynxtpk46dubqy left alone this pass: its record could not be read
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_y6h4lzhrumdopgaezjchsozlse (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_y6h4lzhrumdopgaezjchsozlse: close the import gate: constraint failed: injected (1811)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_y6h4lzhrumdopgaezjchsozlse rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_y6h4lzhrumdopgaezjchsozlse is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_2fmryadgduqyyweov2flan4t34 (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_2fmryadgduqyyweov2flan4t34: close the import gate: constraint failed: injected (1811)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_2fmryadgduqyyweov2flan4t34 rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_2fmryadgduqyyweov2flan4t34 is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_a6hb3qxnmjyhlk2mk26aw2lfb4 (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_a6hb3qxnmjyhlk2mk26aw2lfb4 rollback deferred: the host is not fenced and stopped yet (injected failure at fence)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_a6hb3qxnmjyhlk2mk26aw2lfb4 rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_a6hb3qxnmjyhlk2mk26aw2lfb4 is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_aujbejlwfmzvdl57uuqnndhr6m (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_aujbejlwfmzvdl57uuqnndhr6m rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_aujbejlwfmzvdl57uuqnndhr6m is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_vjf75jaddxbi2havj3nuwcrik4 (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_vjf75jaddxbi2havj3nuwcrik4: retire its instance key: injected failure at retire-key
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_vjf75jaddxbi2havj3nuwcrik4 rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_vjf75jaddxbi2havj3nuwcrik4 is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_rxgmlbliqp3d5dvo4uhiwyghbe (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_rxgmlbliqp3d5dvo4uhiwyghbe rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_rxgmlbliqp3d5dvo4uhiwyghbe is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_lxq6lvfkjxzhfxxcm5n5pfpfg4 (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_lxq6lvfkjxzhfxxcm5n5pfpfg4: remove its local data: injected failure at remove-local
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_lxq6lvfkjxzhfxxcm5n5pfpfg4 rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_lxq6lvfkjxzhfxxcm5n5pfpfg4 is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_ugl46dgofdenjcqtl5l5vjgeam (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_ugl46dgofdenjcqtl5l5vjgeam rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_ugl46dgofdenjcqtl5l5vjgeam is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_d6tibrj7vl7dendsiqrkt5ztqy (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_d6tibrj7vl7dendsiqrkt5ztqy: remove its local data: injected failure at remove-local-done
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_d6tibrj7vl7dendsiqrkt5ztqy rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_d6tibrj7vl7dendsiqrkt5ztqy is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_fcwkwsbvfnhn2sxeec3wnfe2vm (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_fcwkwsbvfnhn2sxeec3wnfe2vm rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_fcwkwsbvfnhn2sxeec3wnfe2vm is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_zilygjxbbgf2q3lemxuw22vstm (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_zilygjxbbgf2q3lemxuw22vstm: restore the original route: constraint failed: injected (1811)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_zilygjxbbgf2q3lemxuw22vstm rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_zilygjxbbgf2q3lemxuw22vstm is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_3jdqq7f5f44ruumtw7ybhpmlq4 (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_3jdqq7f5f44ruumtw7ybhpmlq4: restore the original route: constraint failed: injected (1811)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_3jdqq7f5f44ruumtw7ybhpmlq4 rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_3jdqq7f5f44ruumtw7ybhpmlq4 is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_qli5nbkg2zdz622due2ddrryjy (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_qli5nbkg2zdz622due2ddrryjy is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_alvjlkierufhoc4vieewjcxwb4 (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_alvjlkierufhoc4vieewjcxwb4 rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_alvjlkierufhoc4vieewjcxwb4: delete its snapshot: injected failure at delete-snapshot
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_alvjlkierufhoc4vieewjcxwb4 is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_yaltwqfkf2noxdgesdjbtcwoja (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_yaltwqfkf2noxdgesdjbtcwoja rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_yaltwqfkf2noxdgesdjbtcwoja is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_2be2hsy22ht3b3tsnoio5ve5l4 (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_2be2hsy22ht3b3tsnoio5ve5l4 rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_2be2hsy22ht3b3tsnoio5ve5l4: delete the host's replica: injected failure at delete-replica
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_2be2hsy22ht3b3tsnoio5ve5l4 is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_gtpkd2gt4wxdlyogcfa5k7hc4q (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_gtpkd2gt4wxdlyogcfa5k7hc4q rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_gtpkd2gt4wxdlyogcfa5k7hc4q is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_xkmc3hozzy3m6o63gnxn4czc2a (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_xkmc3hozzy3m6o63gnxn4czc2a rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_xkmc3hozzy3m6o63gnxn4czc2a: retire its journal row: constraint failed: injected (1811)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_xkmc3hozzy3m6o63gnxn4czc2a is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_4shhv4ppkjwxwp4cyv5qwqmf4m (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_4shhv4ppkjwxwp4cyv5qwqmf4m rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_4shhv4ppkjwxwp4cyv5qwqmf4m: retire its journal row: constraint failed: injected (1811)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_4shhv4ppkjwxwp4cyv5qwqmf4m is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_h2fx2gq6cloklc2ksrdqcrir7y (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_h2fx2gq6cloklc2ksrdqcrir7y rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_h2fx2gq6cloklc2ksrdqcrir7y is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: mark import sd_h2fx2gq6cloklc2ksrdqcrir7y rolled back: injected failure at cas
2026/10/24 22:13:00 provision: a.shop.example.com: aborted seed sd_h2fx2gq6cloklc2ksrdqcrir7y rolled back (no box had swapped it)
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_e3eb6yntat77db5humv5ncybv4 (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_e3eb6yntat77db5humv5ncybv4 rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_e3eb6yntat77db5humv5ncybv4 is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: aborted seed sd_e3eb6yntat77db5humv5ncybv4 rolled back (no box had swapped it)
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_wermp3jkaiarn3b7rwkmzhuwjm (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_wermp3jkaiarn3b7rwkmzhuwjm rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_wermp3jkaiarn3b7rwkmzhuwjm rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_wermp3jkaiarn3b7rwkmzhuwjm rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_wermp3jkaiarn3b7rwkmzhuwjm is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_onr772aoqg5gjq3dlbuarre4fe (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_onr772aoqg5gjq3dlbuarre4fe rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_onr772aoqg5gjq3dlbuarre4fe is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_xflhcf6bhfw5qu7ikbgq3pafaa (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_xflhcf6bhfw5qu7ikbgq3pafaa rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_xflhcf6bhfw5qu7ikbgq3pafaa is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_rrnh3bfhon27hsxbsbley4w5dm (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_rrnh3bfhon27hsxbsbley4w5dm rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_rrnh3bfhon27hsxbsbley4w5dm is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_dvgatlmyrldptskr7wzmbakgrm (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_dvgatlmyrldptskr7wzmbakgrm rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_dvgatlmyrldptskr7wzmbakgrm is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_ihxsllwtc67kj6qmsltqmz2sre (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_ihxsllwtc67kj6qmsltqmz2sre rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_ihxsllwtc67kj6qmsltqmz2sre is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_4f7j5arylomf2ogjwlqdyer7ju (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_4f7j5arylomf2ogjwlqdyer7ju rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_4f7j5arylomf2ogjwlqdyer7ju is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_uigmla6if33zxspafued27l5iy (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_uigmla6if33zxspafued27l5iy rolled back to its original route
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_uigmla6if33zxspafued27l5iy is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_5gmdjvdalgy7ntfdufjvixrty4 (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_5gmdjvdalgy7ntfdufjvixrty4 has no route on this box: its local data is removed and no route is put back
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_5gmdjvdalgy7ntfdufjvixrty4 is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_n4kofe7nfacrqg54b3ovshsyhy (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_c3utrceeg3cg4rjhqg5sgm52ji (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_c7hdllaqlwljc4ya3hri22dliy (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_c7hdllaqlwljc4ya3hri22dliy cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_bosjryb7llbetuvgm2nrokz6ki (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: import sd_bosjryb7llbetuvgm2nrokz6ki is not rolled back: the route changed under the fence, so nothing there is touched
2026/10/24 22:13:00 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 22:13:00 provision: a.shop.example.com: import ../not-a-seed is cleaned up and its journal row retired
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_vx6cmyqj7jil3fa4vriqekydiq (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_4a46f2xwkyzmi4ofwevvfcau7e (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_6qchtyxrsitqm7feisnhx3ih2q (the original route is journaled)
2026/10/24 22:13:00 provision: a.shop.example.com: swapped for import sd_uh3xrbkgib2eyhcv5rgez5vtz4 (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_pt7hnpohdwcwyshtnniwhmk5ki (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_pt7hnpohdwcwyshtnniwhmk5ki rollback deferred: the host is not fenced and stopped yet (stop evidence unreadable)
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_6um6xwxw4yuuspen3e3fsaaxgq (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_6um6xwxw4yuuspen3e3fsaaxgq has no route on this box: its local data is removed and no route is put back
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_6um6xwxw4yuuspen3e3fsaaxgq is cleaned up and its journal row retired
2026/10/24 22:13:01 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_vvkuq22b2iutq436z35p7vfwpq (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_vvkuq22b2iutq436z35p7vfwpq: remove its local data: injected failure at remove-local
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_vvkuq22b2iutq436z35p7vfwpq is not rolled back: the route at the host is not the import's, so nothing there is touched
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_fr76wkxmbhyzxatb6ogkqbdhim (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_fr76wkxmbhyzxatb6ogkqbdhim: a route appeared at the host, so its local database is left and the rollback waits
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_ehlz4uslukoo4uwlkj6gzqm2bu (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_ehlz4uslukoo4uwlkj6gzqm2bu rollback deferred: no fence generation: registry busy
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_ywebtb6fsye2qe2ci4rukwcndq (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_ywebtb6fsye2qe2ci4rukwcndq rollback deferred: no fence generation: the generation source answered 0
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_gsolnquxhl44gvz6g6qv75rlsu (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_uixxglpksqgqgfzt6by2nurix4 (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_yqtj2odfeoafwvbvj62hcpyjzy (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: import deferred: this box cannot read the instance's env file
2026/10/24 22:13:01 provision: a.shop.example.com: import deferred: the instance's env file could not be read: a symlink
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_lhg5664qpzbqxdfvm6gimn4mea (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_lhg5664qpzbqxdfvm6gimn4mea rolled back to its original route
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_lhg5664qpzbqxdfvm6gimn4mea is cleaned up and its journal row retired
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_274imxvsg2447waxw4ae5rdsye (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_274imxvsg2447waxw4ae5rdsye rolled back to its original route
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_274imxvsg2447waxw4ae5rdsye is cleaned up and its journal row retired
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_2k6sj5tcc5yrphzzu72dbe2ruy (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_2k6sj5tcc5yrphzzu72dbe2ruy rolled back to its original route
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_2k6sj5tcc5yrphzzu72dbe2ruy is cleaned up and its journal row retired
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_zkz4bzcylwkpivv7i4jho3k3ze (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_zkz4bzcylwkpivv7i4jho3k3ze: retire its instance key: the env file is a symlink
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_zkz4bzcylwkpivv7i4jho3k3ze rolled back to its original route
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_zkz4bzcylwkpivv7i4jho3k3ze is cleaned up and its journal row retired
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_x4syn26iwblkjp76ntwxzfoeia (the original route is journaled)
2026/10/24 22:13:01 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 22:13:01 provision: a.shop.example.com: swapped for import sd_o7i4lf7ap6nt3bzodcwrcszchm (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_mbalo4nuuseahrpti7q4xwgtzu refused: there is no route at a.shop.example.com to replace
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_b7oypo4pkn3s2kuk5cmt6ig64a refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_p2is5x75rfw3lsunzj5nlqtsr4 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 22:13:01 provision: a.shop.example.com: import sd_s22jjiutgveghcytk56yuu7ubm refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_mg5jstfr5x6e6bqyzwusyht6cm refused: the route belongs to app other
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_eeh4isjufh44mzt7xpxmzahhs4 refused: the route is filed under another account
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_mqykwjvzyedit4iimbindeo5ga refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_mpe7i36hyxfyhyfsyqn77lp6ha refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_atu5fv2wkjsev756plaad57bym refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_lb2rlz23w2w52wzqc2ssqgb2su refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_aphgyuyiexx2m3no2u6yuu3rki refused: the route is not an address route this import can take over (socket)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_oomsimrx3f4zbpsvp2kvbgpxku refused: the route is not an address route this import can take over (no address)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_iz47fk7n7d3e76em24x66fb3dm refused: the route is not an address route this import can take over (provisioned)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_nksj47gh3vpe2u7nwunfcfe6sa refused: the route is not an address route this import can take over (kind static)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_tmdpeisgsncr6eijdfe6bzl23u refused: the route is not an address route this import can take over (backing)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_ebuw7c625rfrk2kdgvotsr7gdq refused: the route is not an address route this import can take over (tunnel)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_5tzzyoupj3iv7dpfr7rn5y3c3y refused: the route is not an address route this import can take over (caps)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_bjxtba772bhptmw3hauv3x3xqm refused: the route is not an address route this import can take over (platform)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_jl7oekfbp35kcrazdow3wrwrru refused: the route is not an address route this import can take over (canary)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_3gyf7etbpta3gvikjctqp7zu4a refused: the route is not an address route this import can take over (kind sidecar)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_wc2ie5sdzubgnx6cwjjvup3uki refused: the route is not an address route this import can take over (region)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_5a57hezxkhfcsodsm6nm7flnl4 refused: the route is not an address route this import can take over (fleet_box)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_x6zl7cfifdlm522lw3y6nvxih4 refused: the route is not an address route this import can take over (hibernate)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_y25x3hhrhlht3oapjwbdk7xnay refused: the route is not an address route this import can take over (claim_owner)
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_425fl2wf7yefhdi2ame44zqo3y refused: this box does not run instances nested
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_gzt7f6kfrrccjq6wwuorsvtr3e refused: this box does not run instances nested
2026/10/24 22:13:01 provision: a.shop.example.com: import sd_dvl2upici537blffvwtxzjd2ye refused: claim control is on for this box
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_jyahuxetkzrcwhmt77zpmrgjxa (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_sxvtr5uaeof7zitx4iykercgmy (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: import deferred: this box cannot read the legacy route assignments
2026/10/24 22:13:01 provision: a.shop.example.com: import deferred: the legacy route assignments could not be read: store down
2026/10/24 22:13:01 provision: a.shop.example.com: not swapping for import sd_my3v5bgdj3ht7y4epr5rzs65se: its verify hash is not a sha256
2026/10/24 22:13:01 provision: a.shop.example.com: not swapping for import sd_jbj2pisf6wu3kjkw6z6invphm4: its verify hash is not a sha256
2026/10/24 22:13:01 provision: a.shop.example.com: not swapping for import sd_id3f2634go6hvv6ff4hv3arbbu: its verify hash is not a sha256
2026/10/24 22:13:01 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 22:13:01 provision: A.shop.example.com/..: not swapping for import sd_nfbpg7ierivjy26a6jsfuadlza: its host or seed id is malformed (seeds: not a host)
2026/10/24 22:13:01 provision: a.shop.example.com: not swapping for import sd_4jdicv7meodlq7xdf7cidpfa5y: its record does not describe a nested, hibernating instance
2026/10/24 22:13:01 provision: a.shop.example.com: not swapping for import sd_onr2ur5tvtxt3vbiejcu5fvet4: its record does not describe a nested, hibernating instance
2026/10/24 22:13:01 provision: a.shop.example.com: not swapping for import sd_zfbusmp225vqmputa2nya7czdu: its record does not describe a nested, hibernating instance
2026/10/24 22:13:01 provision: a.shop.example.com: not swapping for import sd_r7jgyoel4ln7qtq4yjnamfhn2q: its record does not describe a nested, hibernating instance
2026/10/24 22:13:01 provision: a.shop.example.com: import deferred: the box's layout intent could not be read: store down
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_j52nho4xqk6mc5n2lxzgu24fqy (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: import deferred: the box's nested probe did not answer: ready probe timed out
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_dd66di45f6nnjaltlku7gk7hpm (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: swapped for import sd_mgznoyqm7wqxtwba547q7f5r4i (the original route is journaled)
2026/10/24 22:13:01 provision: a.shop.example.com: import deferred: the route is held by operation op_1
2026/10/24 22:13:01 provision: dry-run: would consider swapping a.shop.example.com for import sd_3rbvylbuytbhndaiumsoxo2orm
2026/10/24 22:13:02 provision: a.shop.example.com: import sd_46kxckdiiawykk5btbt6ycdjqq rolled back to its original route
2026/10/24 22:13:02 provision: a.shop.example.com: import sd_46kxckdiiawykk5btbt6ycdjqq: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/24 22:13:02 provision: a.shop.example.com: import sd_46kxckdiiawykk5btbt6ycdjqq is cleaned up and its journal row retired
2026/10/24 22:13:02 provision: a.shop.example.com: import sd_wwfmmv24j3xtty5x2pncn7mz5e left alone: the import journal holds seed sd_xz3tcyrokrjxbxkeasijegjy7e at swapped
2026/10/24 22:13:02 provision: a.shop.example.com: not minting import sd_4uhbbaz3ytilwhmq63l4rdgysq: it is swapped but not committed, and only its swap makes its row
2026/10/24 22:13:02 provision: a.shop.example.com: not minting import sd_74fo2uztnpyhklt3dujj3rjlrq: it is placed but not committed, and only its swap makes its row
2026/10/24 22:13:02 provision: a.shop.example.com: swapped for import sd_ykcssreyvgxxj6tdjdaznvkwyu (the original route is journaled)
2026/10/24 22:13:02 provision: a.shop.example.com: not minting import sd_ykcssreyvgxxj6tdjdaznvkwyu: it is swapped but not committed, and only its swap makes its row
2026/10/24 22:13:02 provision: a.shop.example.com: not minting import sd_ykcssreyvgxxj6tdjdaznvkwyu: it is placed but not committed, and only its swap makes its row
2026/10/24 22:13:02 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 22:13:02 provision: removed retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/24 22:13:02 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 22:13:02 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 22:13:02 provision: converged sidecar bot.eleven.bac.sidecar.internal args ["sidecar","run"] -> ["worker","run"]
2026/10/24 22:13:02 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 22:13:02 provision: converged sidecar bot.eleven.bac.sidecar.internal ceilings 300/3600 -> 60/120
2026/10/24 22:13:02 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 22:13:02 provision: converged sidecar bot.eleven.bac.sidecar.internal channel stable -> canary/eleven
2026/10/24 22:13:02 provision: converged sidecar bot.eleven.bac.sidecar.internal environment "other" -> "relay"
2026/10/24 22:13:02 provision: converged sidecar bot.eleven.bac.sidecar.internal hibernate true -> false
2026/10/24 22:13:02 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: read failed: failStore: reads disabled under apps/bac/eleven/sidecars/
2026/10/24 22:13:02 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: malformed: invalid character 'n' looking for beginning of object key string
2026/10/24 22:13:02 provision: not removing sidecar bot.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/24 22:13:02 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: empty channel
2026/10/24 22:13:02 provision: skipping sidecar record apps/bac/eleven/sidecars/held.json: empty channel
2026/10/24 22:13:02 provision: not removing sidecar held.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/24 22:13:02 provision: removed retired sidecar route old.eleven.bac.sidecar.internal (record gone)
2026/10/24 22:13:02 provision: bac/eleven has sidecar records but no sidecars manifest — not minting
2026/10/24 22:13:02 provision: bac/eleven is in the trash — not minting sidecar routes for it
2026/10/24 22:13:02 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 22:13:02 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 22:13:02 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 22:13:02 provision: minted sidecar route hub.relay.bac.sidecar.internal (app "relay" acct "bac" args ["relay"])
2026/10/24 22:13:02 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 22:13:02 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 22:13:02 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 22:13:02 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 22:13:02 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 22:13:02 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 22:13:02 provision: removed retired sidecar route bot.eleven.bac.sidecar.internal (record gone)
2026/10/24 22:13:02 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 22:13:02 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 22:13:02 provision: skipping sidecar record apps/bac/relay/sidecars/hub.json: read failed: failStore: reads disabled under apps/bac/relay/sidecars/
2026/10/24 22:13:02 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 22:13:02 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 22:13:02 provision: dry-run: would mint sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" channel "stable" args ["sidecar","run"])
2026/10/24 22:13:02 provision: dry-run: would remove retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/24 22:13:02 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 22:13:02 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:13:02 provision: converged acme.go.tito.io update settings "{\"updates\":\"manual\",\"channel\":\"stable\"}" -> ""
2026/10/24 22:13:02 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:13:02 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:13:02 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/24 22:13:02 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/24 22:13:02 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/24 22:13:02 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 22:13:02 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/24 22:13:02 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/24 22:13:02 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/24 22:13:02 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 22:13:02 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 22:13:02 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 22:13:02 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: record view: change index unusable (release: change index malformed: invalid character 'n' looking for beginning of object key string): walking
2026/10/24 22:13:02 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: record view: change index unusable (get refused): walking
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: record view: re-reading apps/bqc/shop failed: retrying on the next refresh
2026/10/24 22:13:02 provision: listing apps/bqc/shop/instances/: context canceled — its records are unseen this pass
2026/10/24 22:13:02 provision: record view: re-reading apps/bqc/shop failed: retrying on the next refresh
2026/10/24 22:13:02 provision: listing apps/bqc/shop/instances/: list refused — its records are unseen this pass
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: listing apps/bqc/shop/instances/: list refused — its records are unseen this pass
2026/10/24 22:13:02 provision: an app's records could not be listed: they are skipped
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping accounts/bqd/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/24 22:13:02 provision: skipping accounts/bqd/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/24 22:13:02 provision: skipping accounts/bqd/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/24 22:13:02 provision: record view: re-reading accounts/bqd failed: retrying on the next refresh
2026/10/24 22:13:02 provision: skipping accounts/bqd/account.json: read failed: list refused
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: minted instance route one.example.com (app "shop" acct "bum")
2026/10/24 22:13:02 provision: removed retired instance route one.example.com (record gone)
2026/10/24 22:13:02 provision: minted instance route one.example.com (app "shop" acct "bum")
2026/10/24 22:13:02 provision: minted instance route one.example.com (app "shop" acct "bum")
2026/10/24 22:13:02 provision: removed retired instance route one.example.com (record gone)
2026/10/24 22:13:02 provision: skipping record apps/bum/shop/instances/one.example.com.json: empty channel
2026/10/24 22:13:02 provision: not removing one.example.com: its record exists but could not be read cleanly this pass
2026/10/24 22:13:02 provision: skipping record apps/bum/shop/instances/one.example.com.json: empty channel
2026/10/24 22:13:02 provision: not removing one.example.com: its record exists but could not be read cleanly this pass
2026/10/24 22:13:02 provision: record view: change index unusable (context deadline exceeded): walking
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 22:13:02 provision: record view: change index unusable (context deadline exceeded): the walk records no generations
2026/10/24 22:13:02 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
--- FAIL: TestPlan14RootReadCensus (8.58s)
plan14_root_reads_test.go:600: root read census: 34 discrepancies
changed registry schema
changed root read internal/edge/edge.go:Edge.Reload; review class, task, sites and digest
changed root read internal/edge/edge.go:Edge.ServeHTTP; review class, task, sites and digest
changed root read internal/host/agent.go:runAgent; review class, task, sites and digest
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/console
changed root source envelope internal/edge
changed root source envelope internal/host
changed root source envelope internal/plans
changed root source envelope internal/provision
changed root source envelope internal/ratelimit
changed root source envelope internal/registry
changed root source envelope internal/usage
unclassified root read internal/edge/ratelimit.go:Edge.noteRateLimited registry:Host@505,registry:Host@597,whole:Route@166
unclassified root read internal/edge/ratelimit.go:Edge.parseRateSettings registry:Host@271,registry:Host@367,registry:RateLimit@158,registry:RateLimit@77
unclassified root read internal/edge/ratelimit.go:Edge.rateAdmit registry:Host@834,registry:Kind@150,whole:Route@153,whole:Route@561,whole:Route@837,whole:Route@943
unclassified root read internal/edge/usagemeter.go:UsageMeter.RecordRateLimited registry:App@206,registry:Host@146,registry:Host@294,whole:Route@191
unclassified root read internal/host/plans_pass.go:planRateCeilingFor whole:Route@108
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/edge/edge.go:Edge.Reload
changed legacy declaration internal/edge/edge.go:Edge.ServeHTTP
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 17.463s
ok github.com/carlosframework/platform/internal/publicrelease 0.009s
ok github.com/carlosframework/platform/internal/ratelimit 0.115s
? github.com/carlosframework/platform/internal/regionname [no test files]
ok github.com/carlosframework/platform/internal/registry 5.765s
ok github.com/carlosframework/platform/internal/relay 7.243s
ok github.com/carlosframework/platform/internal/release 25.655s
ok github.com/carlosframework/platform/internal/rollout 3.833s
ok github.com/carlosframework/platform/internal/rolloutwords 0.004s
ok github.com/carlosframework/platform/internal/rootaws 0.007s
ok github.com/carlosframework/platform/internal/rootparticipation 0.067s
ok github.com/carlosframework/platform/internal/rootstate 0.035s
ok github.com/carlosframework/platform/internal/runs 0.572s
ok github.com/carlosframework/platform/internal/s3compat 0.007s
ok github.com/carlosframework/platform/internal/safefile 0.004s
ok github.com/carlosframework/platform/internal/schedule 2.701s
ok github.com/carlosframework/platform/internal/seeds 0.017s
ok github.com/carlosframework/platform/internal/sim/engines 2.658s
ok github.com/carlosframework/platform/internal/sim/hostlife 10.260s
ok github.com/carlosframework/platform/internal/sim/litestreamfacts 4.119s
ok github.com/carlosframework/platform/internal/status 0.076s
ok github.com/carlosframework/platform/internal/steering 0.008s
ok github.com/carlosframework/platform/internal/stopevidence 0.284s
ok github.com/carlosframework/platform/internal/svcrole 0.002s
ok github.com/carlosframework/platform/internal/telemetry 0.005s
ok github.com/carlosframework/platform/internal/termfence 0.004s
ok github.com/carlosframework/platform/internal/tunnelclient 0.003s
ok github.com/carlosframework/platform/internal/unixdial 0.002s
ok github.com/carlosframework/platform/internal/updatewords 0.005s
ok github.com/carlosframework/platform/internal/usage 0.006s
ok github.com/carlosframework/platform/internal/version 0.002s
ok github.com/carlosframework/platform/internal/vet 1.693s
FAIL
=== internal_console@0 (79 s)
ok github.com/carlosframework/platform/internal/console 77.377s
=== internal_console@1 (43 s)
ok github.com/carlosframework/platform/internal/console 40.934s
=== internal_console@2 (41 s)
ok github.com/carlosframework/platform/internal/console 39.527s
=== internal_console@3 (42 s)
ok github.com/carlosframework/platform/internal/console 39.945s
=== internal_console@4 (44 s)
ok github.com/carlosframework/platform/internal/console 42.332s
=== internal_console@5 (40 s)
ok github.com/carlosframework/platform/internal/console 38.044s
=== internal_console@6 (37 s)
ok github.com/carlosframework/platform/internal/console 35.287s
=== internal_console@7 (46 s)
ok github.com/carlosframework/platform/internal/console 44.568s
=== root@0 (110 s)
ok github.com/carlosframework/platform 107.931s
=== root@1 (84 s)
ok github.com/carlosframework/platform 82.258s
=== root@2 (92 s)
ok github.com/carlosframework/platform 89.969s
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/console/apiinstances_ratelimit.go b/internal/console/apiinstances_ratelimit.go| index 3330f7ce0..0a928b1a1 100644 |
| --- a/internal/console/apiinstances_ratelimit.go |
| +++ b/internal/console/apiinstances_ratelimit.go |
| @@ -174,6 +174,14 @@ func (s *Server) handleAPIInstanceRateLimitGet(w http.ResponseWriter, r *http.Re |
| // |
| // A row counts only under this instance's own account and app. A host can |
| // change hands, and the last owner's traffic is not the new owner's to see. |
| +// The filter is only as fine as the row: usage.EdgeDay.AddDeltas relabels a |
| +// host's row to its latest owner within an hour, so a host re-owned inside |
| +// one hour shows the previous owner's counts for that hour. That is |
| +// accepted: the leak is two aggregate counts with no client data, and a |
| +// host changing hands is rare. Fixing it would change the usage format. |
| +// |
| +// A missing day object is a box that served nothing that day. One that |
| +// does not decode is an error, never a zero. |
| func (s *Server) rateLimitCounts(ctx context.Context, acct *Account, app, host string, now time.Time) (rateLimitCountsView, error) { |
| now = now.UTC() |
| since := now.Add(-24 * time.Hour) |
| @@ -198,9 +206,10 @@ func (s *Server) rateLimitCounts(ctx context.Context, acct *Account, app, host s |
| return out, err |
| } |
| var ed usage.EdgeDay |
| + // A day that cannot be read fails the whole answer: skipping it |
| + // would report a short total, which reads as fewer refusals. |
| if err := json.Unmarshal(raw, &ed); err != nil { |
| - log.Printf("console: rate-limit counts: parse %s: %v", key, err) |
| - continue |
| + return out, fmt.Errorf("parse %s: %w", key, err) |
| } |
| for hour, rows := range ed.Hours { |
| row, ok := rows[host] |
diff --git a/internal/console/apiinstances_ratelimit_test.go b/internal/console/apiinstances_ratelimit_test.go| index ed1d4b36f..78523146a 100644 |
| --- a/internal/console/apiinstances_ratelimit_test.go |
| +++ b/internal/console/apiinstances_ratelimit_test.go |
| @@ -318,3 +318,18 @@ func TestRateLimitCountsWindow(t *testing.T) { |
| t.Fatalf("counts = %+v, want shed 11 ceiling 1000 since 2026-10-23T10:30:00Z", got) |
| } |
| } |
| + |
| +// A box's day object that does not decode fails the GET with its usage 502 |
| +// rather than answering a short total that reads as fewer refusals. |
| +func TestRateLimitGetMalformedDay502(t *testing.T) { |
| + fx, token := rateLimitFixture(t, "code-rl-malformed") |
| + now := time.Now() |
| + rlUpsert(t, fx, "box-a", now, rlHost, usage.EdgeRow{Account: "bab", App: "shop", RateShed: 3}) |
| + if _, err := fx.rel.Put(context.Background(), usage.EdgeDayKey("box-b", usage.DayOf(now)), []byte("{not json"), ""); err != nil { |
| + t.Fatal(err) |
| + } |
| + status, _, out := rawReq(t, http.MethodGet, updateURL(fx, "bab", "shop", rlHost)+"/rate-limit", token, "") |
| + if status != http.StatusBadGateway || jsonErrorText(t, out) != "could not read the instance's usage" { |
| + t.Fatalf("GET with a malformed day = %d %s, want 502 could not read the instance's usage", status, out) |
| + } |
| +} |