release: a re-ship of an existing version is compared with that release (rootfs Plan 1 Task 3, review fix round 1)
When the app's newest readable release is the version being shipped and there is no marker, decide now compares the incoming manifest with it, kind and hibernation, instead of passing. A rootfs re-ship of a binary version is refused with C18 before ShipSpooled streams an image that the manifest's immutability would then refuse, which left an orphaned image in a published release. A hibernation flip on a rootfs re-ship gets C20/C21. An identical re-ship still passes. TestCheckShipKindSkipsTheVersionBeingShipped becomes TestCheckShipKindComparesTheVersionBeingShipped: it expects C18 over a binary history (and no writes from the refused ShipSpooled), and a same-kind and same-hibernation re-ship to pass.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 files changed,
+55
−9
internal/release/rootfs_ship.go+6 −3internal/release/rootfs_ship_test.go+49 −6
CI failed — run details
CI log
=== gate ===
.amadan/test-gate.sh
=== launchctx (1 s)
ok amadan.net/carlos/platform.git/launchctx 0.012s
? amadan.net/carlos/platform.git/launchctx/controlname [no test files]
? amadan.net/carlos/platform.git/launchctx/wireid [no test files]
=== vet (18 s)
=== gofmt (1 s)
gofmt -l .: clean
=== rest (173 s)
? github.com/carlosframework/platform/cmd/changelog [no test files]
ok github.com/carlosframework/platform/cmd/console 3.711s
ok github.com/carlosframework/platform/cmd/moveprobe 12.034s
ok github.com/carlosframework/platform/cmd/zddprobe 0.786s
ok github.com/carlosframework/platform/internal/activator 59.929s
ok github.com/carlosframework/platform/internal/agentsock 0.027s
ok github.com/carlosframework/platform/internal/alerting 0.008s
ok github.com/carlosframework/platform/internal/analytics 0.038s
ok github.com/carlosframework/platform/internal/appconfig 3.197s
ok github.com/carlosframework/platform/internal/apperr 0.153s
ok github.com/carlosframework/platform/internal/applog 0.312s
ok github.com/carlosframework/platform/internal/awsinv 0.011s
ok github.com/carlosframework/platform/internal/boxchoice 0.012s
ok github.com/carlosframework/platform/internal/boxid 0.974s
? 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.009s
ok github.com/carlosframework/platform/internal/caps 0.018s
ok github.com/carlosframework/platform/internal/certwarm 0.003s
ok github.com/carlosframework/platform/internal/cgroup 0.818s
ok github.com/carlosframework/platform/internal/changelog 0.657s
ok github.com/carlosframework/platform/internal/claimactivation 1.484s
ok github.com/carlosframework/platform/internal/clamd 0.064s
? github.com/carlosframework/platform/internal/cliflag [no test files]
? github.com/carlosframework/platform/internal/controlname [no test files]
? github.com/carlosframework/platform/internal/controlsock [no test files]
ok github.com/carlosframework/platform/internal/dbdoor 7.741s
ok github.com/carlosframework/platform/internal/dbdoor/dbdoortest 0.012s
ok github.com/carlosframework/platform/internal/dbquery 0.006s
ok github.com/carlosframework/platform/internal/dbreads 2.075s
? github.com/carlosframework/platform/internal/dbreads/dbreadstest [no test files]
ok github.com/carlosframework/platform/internal/dbverify 0.010s
ok github.com/carlosframework/platform/internal/dnsrec 0.005s
ok github.com/carlosframework/platform/internal/docsite 0.012s
ok github.com/carlosframework/platform/internal/domains 3.080s
ok github.com/carlosframework/platform/internal/doorkey 0.007s
ok github.com/carlosframework/platform/internal/economics 0.005s
ok github.com/carlosframework/platform/internal/edge 45.914s
? github.com/carlosframework/platform/internal/edgeproof [no test files]
ok github.com/carlosframework/platform/internal/edgesfile 0.011s
ok github.com/carlosframework/platform/internal/fleetapi 0.165s
ok github.com/carlosframework/platform/internal/gate 1.655s
ok github.com/carlosframework/platform/internal/genselect 0.021s
ok github.com/carlosframework/platform/internal/geo 0.024s
ok github.com/carlosframework/platform/internal/geoip 0.033s
ok github.com/carlosframework/platform/internal/historyreadback 0.224s
ok github.com/carlosframework/platform/internal/host 143.088s
ok github.com/carlosframework/platform/internal/hostactors 6.010s
ok github.com/carlosframework/platform/internal/hostactors/awsmembership 0.005s
ok github.com/carlosframework/platform/internal/hostbox 2.955s
ok github.com/carlosframework/platform/internal/hostclaim 0.813s
ok github.com/carlosframework/platform/internal/hostenv 0.008s
ok github.com/carlosframework/platform/internal/hostevidence 0.006s
ok github.com/carlosframework/platform/internal/hostexec 5.356s
ok github.com/carlosframework/platform/internal/hostfence 0.059s
ok github.com/carlosframework/platform/internal/hostfiles 10.333s
ok github.com/carlosframework/platform/internal/hostfloor 0.022s
ok github.com/carlosframework/platform/internal/hostguard 1.073s
ok github.com/carlosframework/platform/internal/hostops 1.972s
? github.com/carlosframework/platform/internal/hostops/fencerelease [no test files]
ok github.com/carlosframework/platform/internal/hostops/internal/fencerelease 0.003s
ok github.com/carlosframework/platform/internal/hostquarantine 0.006s
ok github.com/carlosframework/platform/internal/hostrelocate 0.657s
ok github.com/carlosframework/platform/internal/hostresolve 0.178s
ok github.com/carlosframework/platform/internal/hostwrite 0.006s
ok github.com/carlosframework/platform/internal/infraview 0.002s
ok github.com/carlosframework/platform/internal/instancectl 5.232s
ok github.com/carlosframework/platform/internal/instanceexec 2.833s
ok github.com/carlosframework/platform/internal/instancefs 0.005s
ok github.com/carlosframework/platform/internal/instancekey 0.004s
ok github.com/carlosframework/platform/internal/instanceupdates 0.013s
ok github.com/carlosframework/platform/internal/layout 1.755s
ok github.com/carlosframework/platform/internal/lbhealth 0.008s
ok github.com/carlosframework/platform/internal/lease 10.122s
ok github.com/carlosframework/platform/internal/lease/leasetest 0.583s
ok github.com/carlosframework/platform/internal/ledger 0.018s
ok github.com/carlosframework/platform/internal/mail 0.293s
ok github.com/carlosframework/platform/internal/maintenance 0.094s
ok github.com/carlosframework/platform/internal/maintenanceexec 5.579s
ok github.com/carlosframework/platform/internal/maintenanceguard 0.102s
ok github.com/carlosframework/platform/internal/metrics 0.007s
ok github.com/carlosframework/platform/internal/moves 22.795s
ok github.com/carlosframework/platform/internal/moves/archive 0.925s
ok github.com/carlosframework/platform/internal/objstore 0.230s
ok github.com/carlosframework/platform/internal/ops 0.242s
ok github.com/carlosframework/platform/internal/park 0.326s
ok github.com/carlosframework/platform/internal/plans 0.010s
ok github.com/carlosframework/platform/internal/privatefile 0.004s
2026/10/24 21:16:17 provision: listing apps/bab/blog/instances/: list refused — its records are unseen this pass
2026/10/24 21:16:17 provision: listing apps/bab/: listdirs refused — its records are unseen this pass
2026/10/24 21:16:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/24 21:16:17 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/24 21:16:17 provision: skipping record apps/bac/tito/instances/one.example.com.json: unreadable: read refused
2026/10/24 21:16:17 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/24 21:16:17 provision: an app's records could not be listed: they are skipped
2026/10/24 21:16:17 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:16:17 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/24 21:16:17 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/24 21:16:17 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/24 21:16:17 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/24 21:16:17 provision: claim install acme.go.tito.io: provision: claim admission unavailable
2026/10/24 21:16:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/24 21:16:17 provision: claim install bot.eleven.bac.sidecar.internal: provision: claim admission unavailable
2026/10/24 21:16:17 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 21:16:17 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/24 21:16:17 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 21:16:17 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: no sealed config
2026/10/24 21:16:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/24 21:16:17 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 21:16:17 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 21:16:17 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 21:16:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/24 21:16:17 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 21:16:17 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 21:16:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/24 21:16:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/24 21:16:17 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/24 21:16:17 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 21:16:17 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/24 21:16:17 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 21:16:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 21:16:17 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/24 21:16:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:16:17 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:17 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:17 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 21:16:17 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:17 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:17 provision: minted instance route rl.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route rf.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route rg.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route ri.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route rj.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route rk.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route rh.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:17 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/24 21:16:17 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/24 21:16:17 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route x.appj.example (app "appj" acct "bac")
2026/10/24 21:16:18 provision: minted instance route x.appa.example (app "appa" acct "bac")
2026/10/24 21:16:18 provision: minted instance route x.appc.example (app "appc" acct "bac")
2026/10/24 21:16:18 provision: minted instance route x.appd.example (app "appd" acct "bac")
2026/10/24 21:16:18 provision: minted instance route x.appe.example (app "appe" acct "bac")
2026/10/24 21:16:18 provision: minted instance route x.appg.example (app "appg" acct "bac")
2026/10/24 21:16:18 provision: minted instance route x.apph.example (app "apph" acct "bac")
2026/10/24 21:16:18 provision: minted instance route x.appi.example (app "appi" acct "bac")
2026/10/24 21:16:18 provision: minted instance route x.appb.example (app "appb" acct "bac")
2026/10/24 21:16:18 provision: minted instance route x.appf.example (app "appf" acct "bac")
2026/10/24 21:16:18 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 21:16:18 provision: minted instance route r0027.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0041.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0074.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0078.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0127.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0010.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0040.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0061.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0089.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0097.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0106.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0114.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0115.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0020.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0012.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0028.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0081.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0128.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0038.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0043.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0065.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0088.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0093.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0119.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0021.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0072.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0026.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0069.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0090.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0120.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0004.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0077.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0104.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0105.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0126.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0002.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0053.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0058.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0110.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0025.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0000.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0068.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0036.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0124.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0031.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0084.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0005.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0007.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0037.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0048.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0063.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0112.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0113.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0001.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0022.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0073.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0092.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0035.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0098.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0122.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0030.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0034.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0049.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0057.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0066.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0071.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0080.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0101.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0006.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0082.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0125.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0062.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0085.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0094.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0102.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0103.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0013.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0044.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0095.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0019.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0045.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0046.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0054.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0116.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0015.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0060.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0079.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0087.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0011.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0023.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0050.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0070.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0117.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0118.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0051.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0055.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0059.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0083.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0003.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0016.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0029.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0033.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0067.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0108.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0018.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0076.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0091.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0096.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0100.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0123.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0017.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0064.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0129.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0039.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0042.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0056.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0099.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0008.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0032.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0047.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0121.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0024.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0109.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0111.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0075.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0086.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0107.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0052.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0009.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:18 provision: minted instance route r0014.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 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 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted instance route console.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted service route svc.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted instance route whole.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted instance route shared.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: converged acme.go.tito.io channel stable -> edge
2026/10/24 21:16:19 provision: converged acme.go.tito.io channel edge -> canary/rehearsal
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: empty channel
2026/10/24 21:16:19 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: converged acme.go.tito.io environment "" -> "staging"
2026/10/24 21:16:19 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: converged acme.go.tito.io steering "" -> "latency"
2026/10/24 21:16:19 provision: converged acme.go.tito.io steering "latency" -> ""
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: converged acme.go.tito.io hibernate false -> true
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: converged acme.go.tito.io hibernate true -> false (replication "daily" cleared: only a hibernating route's rung is read)
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: converged acme.go.tito.io status-named false -> true
2026/10/24 21:16:19 provision: converged acme.go.tito.io status-named true -> false
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 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 21:16:19 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 21:16:19 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 21:16:19 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 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 21:16:19 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 21:16:19 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 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: skipping accounts/bac/account.json: malformed account manifest: invalid character 'o' in literal null (expecting 'u')
2026/10/24 21:16:19 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: manifest bac/tito: read failed: provision: manifest bac/tito: invalid character 'o' in literal null (expecting 'u')
2026/10/24 21:16:19 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 21:16:19 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 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 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 21:16:19 provision: not removing acme$evil.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 21:16:19 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 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 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 21:16:19 provision: not removing bad-service.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 21:16:19 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/24 21:16:19 provision: not removing no-channel.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:19 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 21:16:19 provision: removed retired instance route ghost.go.tito.io (record gone)
2026/10/24 21:16:19 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 21:16:19 provision: minted instance route dup.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:19 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 21:16:19 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 21:16:20 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/24 21:16:20 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 21:16:20 provision: removed retired static route site.go.tito.io (app in the trash)
2026/10/24 21:16:20 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 21:16:20 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 21:16:20 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/24 21:16:20 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 21:16:20 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 21:16:20 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 21:16:20 provision: converged acme.go.tito.io channel stable -> edge
2026/10/24 21:16:20 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 21:16:20 provision: converged acme.go.tito.io channel canary/rehearsal -> edge
2026/10/24 21:16:20 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/24 21:16:20 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 21:16:20 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 21:16:20 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 21:16:20 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 21:16:20 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 21:16:20 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 21:16:20 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 21:16:20 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 21:16:20 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 21:16:20 provision: dry-run: would mint instance route acme.go.tito.io (app "tito" acct "bac" channel "stable")
2026/10/24 21:16:20 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 21:16:20 provision: dry-run: would converge adopt.go.tito.io channel stable -> edge
2026/10/24 21:16:20 provision: dry-run: would converge adopt.go.tito.io environment "" -> "staging"
2026/10/24 21:16:20 provision: dry-run: would converge owned.go.tito.io channel stable -> edge
2026/10/24 21:16:20 provision: dry-run: would converge owned.go.tito.io environment "" -> "staging"
2026/10/24 21:16:20 provision: dry-run: would converge owned.go.tito.io hibernate false -> true
2026/10/24 21:16:20 provision: dry-run: would converge owned.go.tito.io seed
2026/10/24 21:16:20 provision: dry-run: would remove retired instance route gone.go.tito.io (record gone)
2026/10/24 21:16:20 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: adopted existing route adopt.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 21:16:20 provision: converged adopt.go.tito.io channel stable -> edge
2026/10/24 21:16:20 provision: converged adopt.go.tito.io environment "" -> "staging"
2026/10/24 21:16:20 provision: converged owned.go.tito.io channel stable -> edge
2026/10/24 21:16:20 provision: converged owned.go.tito.io environment "" -> "staging"
2026/10/24 21:16:20 provision: converged owned.go.tito.io hibernate false -> true
2026/10/24 21:16:20 provision: removed retired instance route gone.go.tito.io (record gone)
2026/10/24 21:16:20 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: adopted existing route story.carlosframework.com (app "story" acct "bad") — this record now owns its channel and environment
2026/10/24 21:16:20 provision: story.carlosframework.com exists but is not the route this record describes (kind "instance"/"static") — leaving it alone
2026/10/24 21:16:20 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted service route pub.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted service route pubs.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted service route loop.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted service route named.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted service route priv.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted instance route unit.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted instance route exec.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted static route pisite.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: removed retired static route site.go.tito.io (record gone)
2026/10/24 21:16:20 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: converged acme.go.tito.io replicas "ie,uk" -> "uk"
2026/10/24 21:16:20 provision: converged acme.go.tito.io replicas "uk" -> ""
2026/10/24 21:16:20 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: converged acme-uk.go.tito.io replica mark true -> false
2026/10/24 21:16:20 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 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 21:16:20 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:20 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/24 21:16:20 provision: router.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/24 21:16:20 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 21:16:20 provision: converged acme.go.tito.io channel stable -> edge
2026/10/24 21:16:20 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/24 21:16:20 provision: not removing acme.go.tito.io (record gone): participant of a running operation
2026/10/24 21:16:20 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 21:16:20 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/24 21:16:20 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 21:16:20 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/24 21:16:20 provision: acme.go.tito.io: held restoring by rb_other, not by mv_acme; leaving it
2026/10/24 21:16:20 provision: acme.go.tito.io: the row is not this pass's (app "other" acct ""); not holding it for mv_acme
2026/10/24 21:16:20 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 21:16:20 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 21:16:20 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 21:16:20 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/24 21:16:21 provision: minted instance route acme.example.com (app "shop" acct "bac")
2026/10/24 21:16:21 provision: minted instance route plain.example.com (app "shop" acct "bac")
2026/10/24 21:16:21 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:21 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 21:16:21 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:21 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 21:16:21 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:21 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 21:16:21 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:21 provision: listing apps/bac/shop/instances/: list refused — its records are unseen this pass
2026/10/24 21:16:21 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:21 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:21 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 21:16:21 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:21 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 21:16:21 provision: minted sidecar route bot.shop.bac.sidecar.internal (app "shop" acct "bac" args ["run"])
2026/10/24 21:16:21 provision: removed retired sidecar route bot.shop.bac.sidecar.internal (record gone)
2026/10/24 21:16:21 provision: minted sidecar route bot.shop.bum.sidecar.internal (app "shop" acct "bum" args ["run"])
2026/10/24 21:16:21 provision: minted sidecar route bot.shop.bum.sidecar.internal (app "shop" acct "bum" args ["run"])
2026/10/24 21:16:21 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 21:16:21 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 21:16:21 provision: removed retired sidecar route bot.shop.bum.sidecar.internal (record gone)
2026/10/24 21:16:21 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 21:16:21 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 21:16:21 provision: removed retired sidecar route bot.shop.bum.sidecar.internal (record gone)
2026/10/24 21:16:22 provision: a.shop.example.com: swapped for import sd_56ogtdff232nhjsb3nwd23hesa (the original route is journaled)
2026/10/24 21:16:22 provision: a.shop.example.com: import sd_56ogtdff232nhjsb3nwd23hesa committed: its gate is cleared and its journal row dropped
2026/10/24 21:16:22 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 21:16:22 provision: a.shop.example.com: import sd_e4tklacq6nbmmyzuzj356vnqwa rolled back to its original route
2026/10/24 21:16:22 provision: a.shop.example.com: import sd_e4tklacq6nbmmyzuzj356vnqwa: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/24 21:16:22 provision: a.shop.example.com: import sd_e4tklacq6nbmmyzuzj356vnqwa is cleaned up and its journal row retired
2026/10/24 21:16:22 provision: a.shop.example.com: import sd_axv3kxwin4otp5zughmqf34ziq rolled back to its original route
2026/10/24 21:16:22 provision: a.shop.example.com: import sd_axv3kxwin4otp5zughmqf34ziq: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/24 21:16:22 provision: a.shop.example.com: import sd_axv3kxwin4otp5zughmqf34ziq is cleaned up and its journal row retired
2026/10/24 21:16:22 provision: dry-run: would redo a.shop.example.com's swap record CAS for import sd_4qkughqnwrrkmsdzforwjk5p5i
2026/10/24 21:16:22 provision: dry-run: would clear a.shop.example.com's import gate
2026/10/24 21:16:22 provision: dry-run: would converge a.shop.example.com seed source
2026/10/24 21:16:22 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 21:16:22 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 21:16:22 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 21:16:22 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 21:16:22 provision: a.shop.example.com: import sd_vy2csh4czbmopwmosumql5g6yy cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/24 21:16:22 provision: a.shop.example.com: import sd_kivmtywqhko4oaakws2h5ciie4 cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/24 21:16:22 provision: a.shop.example.com: import sd_vmu2ggoieh7nrgdhejtifvckey is journaled, but this box cannot act on imports; its row is left alone
2026/10/24 21:16:22 provision: a.shop.example.com: import sd_u2jkc7z5q2p33d6arbhsyhms3i is journaled, but this box cannot act on imports; its row is left alone
2026/10/24 21:16:22 provision: a.shop.example.com: import sd_u2fqnedwibak6x4n6en667yfcq is journaled, but this box cannot act on imports; its row is left alone
2026/10/24 21:16:22 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 21:16:22 provision: b.shop.example.com: import sd_hcbb4bqjka6qt4wa43z6akwduq left alone this pass: the import journal could not be read
2026/10/24 21:16:22 provision: c.shop.example.com: import sd_ijackpblonmapcf5nqo4lmrrjy left alone this pass: the import journal could not be read
2026/10/24 21:16:22 provision: a.shop.example.com: import sd_dm5etedlwtgutaisxejytxx2zu committed: its gate is cleared and its journal row dropped
2026/10/24 21:16:22 provision: a.shop.example.com: not converging import sd_3nhncoszc5vuespdirhgyqllxa: it is swapped but not committed, and the row on this box has no import gate
2026/10/24 21:16:22 provision: a.shop.example.com: not converging import sd_l5a4nitqet4wk32xi2usp3g5cq: it is swapped but not committed, and the row on this box has no import gate
2026/10/24 21:16:22 provision: a.shop.example.com: not converging import sd_sr7dif77mfpwtrb6wgphmikp3m: it is placed but not committed, and the row on this box has no import gate
2026/10/24 21:16:22 provision: a.shop.example.com: not converging import sd_n7j6yrv54dkahtqqlhhotubara: it is placed but not committed, and the row on this box has no import gate
2026/10/24 21:16:22 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 21:16:22 provision: converge seed source on a.shop.example.com: constraint failed: seed_source is read-only here (1811)
2026/10/24 21:16:22 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 21:16:23 provision: a.shop.example.com: import sd_fvyhfqpjx6t3qcm2i46aykwiuy committed: its gate is cleared and its journal row dropped
2026/10/24 21:16:23 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 21:16:23 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:23 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 21:16:23 provision: acme.go.tito.io: not minting a seeded instance: this box does not mint nested (<nil>)
2026/10/24 21:16:23 provision: acme.go.tito.io: not minting a seeded instance: claim control is on for this box
2026/10/24 21:16:23 provision: acme.go.tito.io: aborted seed sd_xxf5kpbg7a5pzfdl7eyfzu2lce: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/24 21:16:23 provision: acme.go.tito.io: aborted seed sd_xxf5kpbg7a5pzfdl7eyfzu2lce rolled back (no box had swapped it)
2026/10/24 21:16:23 provision: acme.go.tito.io: not minting a seeded instance: its record does not describe a hibernating instance
2026/10/24 21:16:23 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:23 provision: removed instance route acme.go.tito.io (its seed sd_ruaytyfq2hdxiajzun4uhgmoxy was aborted); the next pass rolls it back
2026/10/24 21:16:23 provision: acme.go.tito.io: aborted seed sd_ruaytyfq2hdxiajzun4uhgmoxy: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/24 21:16:23 provision: acme.go.tito.io: aborted seed sd_ruaytyfq2hdxiajzun4uhgmoxy rolled back (no box had swapped it)
2026/10/24 21:16:23 provision: acme.go.tito.io: aborted seed sd_r2tm32ol4v6vlejthc46oali4m has a row this pass may not remove; leaving the seed aborted
2026/10/24 21:16:23 provision: acme.go.tito.io: aborted seed sd_5bsvsoei7kxkc7nit6kg57xm7q rolled back (no box had swapped it)
2026/10/24 21:16:23 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:23 provision: removed instance route acme.go.tito.io (its seed sd_cttuj73yliegfb2sbcde5lg34y was aborted); the next pass rolls it back
2026/10/24 21:16:23 provision: acme.go.tito.io: aborted seed sd_cttuj73yliegfb2sbcde5lg34y has no route on this box: its local data is removed
2026/10/24 21:16:23 provision: acme.go.tito.io: aborted seed sd_cttuj73yliegfb2sbcde5lg34y rolled back (no box had swapped it)
2026/10/24 21:16:23 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_ofwv7rkapj6a2ujohtqy7pvvza (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_ofwv7rkapj6a2ujohtqy7pvvza rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_ofwv7rkapj6a2ujohtqy7pvvza is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_5cdavnzm3x6cudegsjwq6xo2ji (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_5cdavnzm3x6cudegsjwq6xo2ji rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_5cdavnzm3x6cudegsjwq6xo2ji is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_n2r7bhp2myl7dgnym5kuovrxr4 (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_n2r7bhp2myl7dgnym5kuovrxr4 rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_n2r7bhp2myl7dgnym5kuovrxr4: the host's replica is left alone: its record no longer names this seed
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_n2r7bhp2myl7dgnym5kuovrxr4 is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_pjutbvi3hpkn4rvlz23uklwerm (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_pjutbvi3hpkn4rvlz23uklwerm rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_pjutbvi3hpkn4rvlz23uklwerm rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_pjutbvi3hpkn4rvlz23uklwerm is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_wwgyxpkpbtr7o6eoodvgkrlbvq (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_wwgyxpkpbtr7o6eoodvgkrlbvq rollback deferred: the host is not fenced and stopped yet (stop unproven)
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_kolc2r2h3qvlfpkvln2zx65y6i (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_kolc2r2h3qvlfpkvln2zx65y6i is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_jp4xxqfl5kjhge26inqcg2mdyu (the original route is journaled)
2026/10/24 21:16:23 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_jp4xxqfl5kjhge26inqcg2mdyu left alone this pass: its record could not be read
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_4eitiaqusewkmk6ncw45bwuesa (the original route is journaled)
2026/10/24 21:16:23 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: read failed: connection reset
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_4eitiaqusewkmk6ncw45bwuesa left alone this pass: its record could not be read
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_wzahdjipopqmj4arvrydjuin2a (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_wzahdjipopqmj4arvrydjuin2a: close the import gate: constraint failed: injected (1811)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_wzahdjipopqmj4arvrydjuin2a rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_wzahdjipopqmj4arvrydjuin2a is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_2y2d7y327wai6bbscukotbegte (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_2y2d7y327wai6bbscukotbegte: close the import gate: constraint failed: injected (1811)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_2y2d7y327wai6bbscukotbegte rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_2y2d7y327wai6bbscukotbegte is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_muvv22tzijftp75tlx3xygurvy (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_muvv22tzijftp75tlx3xygurvy rollback deferred: the host is not fenced and stopped yet (injected failure at fence)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_muvv22tzijftp75tlx3xygurvy rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_muvv22tzijftp75tlx3xygurvy is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_u2qq6mpyc2iaxbpwezzxp6mpfi (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_u2qq6mpyc2iaxbpwezzxp6mpfi rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_u2qq6mpyc2iaxbpwezzxp6mpfi is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_5u3f4lvzoi5xcwnnaxgooyabxi (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_5u3f4lvzoi5xcwnnaxgooyabxi: retire its instance key: injected failure at retire-key
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_5u3f4lvzoi5xcwnnaxgooyabxi rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_5u3f4lvzoi5xcwnnaxgooyabxi is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_haurzzmfj3ohzrkhdi57b43s4i (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_haurzzmfj3ohzrkhdi57b43s4i rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_haurzzmfj3ohzrkhdi57b43s4i is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_jvcc35wls2fqqxubvxvxsuvxiu (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_jvcc35wls2fqqxubvxvxsuvxiu: remove its local data: injected failure at remove-local
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_jvcc35wls2fqqxubvxvxsuvxiu rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_jvcc35wls2fqqxubvxvxsuvxiu is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_a5euauyak2qotac2hd57ltkocu (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_a5euauyak2qotac2hd57ltkocu rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_a5euauyak2qotac2hd57ltkocu is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_q2zvjnjqxar3hvzvzwl2l4ahoi (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_q2zvjnjqxar3hvzvzwl2l4ahoi: remove its local data: injected failure at remove-local-done
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_q2zvjnjqxar3hvzvzwl2l4ahoi rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_q2zvjnjqxar3hvzvzwl2l4ahoi is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_2jb5uc4dnirk7r27v62k7za4ae (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_2jb5uc4dnirk7r27v62k7za4ae rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_2jb5uc4dnirk7r27v62k7za4ae is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_5r5riikaxayhvn23tkznbcqaqe (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_5r5riikaxayhvn23tkznbcqaqe: restore the original route: constraint failed: injected (1811)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_5r5riikaxayhvn23tkznbcqaqe rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_5r5riikaxayhvn23tkznbcqaqe is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_tpgbohxmtlhh4xe4beubxywchu (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_tpgbohxmtlhh4xe4beubxywchu: restore the original route: constraint failed: injected (1811)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_tpgbohxmtlhh4xe4beubxywchu rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_tpgbohxmtlhh4xe4beubxywchu is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_q4dd7jxqsaljwlis3uxxtlzivi (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_q4dd7jxqsaljwlis3uxxtlzivi is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_qisc4xnu4jypokuwm4beqpbsta (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_qisc4xnu4jypokuwm4beqpbsta rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_qisc4xnu4jypokuwm4beqpbsta: delete its snapshot: injected failure at delete-snapshot
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_qisc4xnu4jypokuwm4beqpbsta is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_fb5ocosjz6v7lowiafkep5xoiu (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_fb5ocosjz6v7lowiafkep5xoiu rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_fb5ocosjz6v7lowiafkep5xoiu is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_jvvltnsk2pkop5fty7ikjetda4 (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_jvvltnsk2pkop5fty7ikjetda4 rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_jvvltnsk2pkop5fty7ikjetda4: delete the host's replica: injected failure at delete-replica
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_jvvltnsk2pkop5fty7ikjetda4 is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_5weksscs362euovcmpl4jewuhe (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_5weksscs362euovcmpl4jewuhe rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_5weksscs362euovcmpl4jewuhe is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_k7nyr2u5awfvx5rpohns4d7pou (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_k7nyr2u5awfvx5rpohns4d7pou rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_k7nyr2u5awfvx5rpohns4d7pou: retire its journal row: constraint failed: injected (1811)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_k7nyr2u5awfvx5rpohns4d7pou is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_tiqe5hoecomxwc66kzp3pnuvca (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_tiqe5hoecomxwc66kzp3pnuvca rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_tiqe5hoecomxwc66kzp3pnuvca: retire its journal row: constraint failed: injected (1811)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_tiqe5hoecomxwc66kzp3pnuvca is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_wjl5c752owikqwe4ijyqzdxxsu (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_wjl5c752owikqwe4ijyqzdxxsu rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_wjl5c752owikqwe4ijyqzdxxsu is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: mark import sd_wjl5c752owikqwe4ijyqzdxxsu rolled back: injected failure at cas
2026/10/24 21:16:23 provision: a.shop.example.com: aborted seed sd_wjl5c752owikqwe4ijyqzdxxsu rolled back (no box had swapped it)
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_ck6jztiqfwrmyxjkdk24ebu254 (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_ck6jztiqfwrmyxjkdk24ebu254 rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_ck6jztiqfwrmyxjkdk24ebu254 is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: aborted seed sd_ck6jztiqfwrmyxjkdk24ebu254 rolled back (no box had swapped it)
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_qals33s4qmv5ajqag3uel3yl4e (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_qals33s4qmv5ajqag3uel3yl4e rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_qals33s4qmv5ajqag3uel3yl4e rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_qals33s4qmv5ajqag3uel3yl4e rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_qals33s4qmv5ajqag3uel3yl4e is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_v2vc4zxvr4htgruzjzx2sxfamy (the original route is journaled)
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_v2vc4zxvr4htgruzjzx2sxfamy rolled back to its original route
2026/10/24 21:16:23 provision: a.shop.example.com: import sd_v2vc4zxvr4htgruzjzx2sxfamy is cleaned up and its journal row retired
2026/10/24 21:16:23 provision: a.shop.example.com: swapped for import sd_qlytqmxnexqfzs4bk5qwrsb7oa (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_qlytqmxnexqfzs4bk5qwrsb7oa rolled back to its original route
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_qlytqmxnexqfzs4bk5qwrsb7oa is cleaned up and its journal row retired
2026/10/24 21:16:24 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_wb6g5g7l2g3jyzburxoug55e7q (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_wb6g5g7l2g3jyzburxoug55e7q rolled back to its original route
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_wb6g5g7l2g3jyzburxoug55e7q is cleaned up and its journal row retired
2026/10/24 21:16:24 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_r2g5fw35wtqsfdj6uwzv7wjn4q (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_r2g5fw35wtqsfdj6uwzv7wjn4q rolled back to its original route
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_r2g5fw35wtqsfdj6uwzv7wjn4q is cleaned up and its journal row retired
2026/10/24 21:16:24 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_s6rcxzngxhxdkevkezacbap26y (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_s6rcxzngxhxdkevkezacbap26y rolled back to its original route
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_s6rcxzngxhxdkevkezacbap26y is cleaned up and its journal row retired
2026/10/24 21:16:24 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_g27mnn37jpw3fwbrlxxqut343m (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_g27mnn37jpw3fwbrlxxqut343m rolled back to its original route
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_g27mnn37jpw3fwbrlxxqut343m is cleaned up and its journal row retired
2026/10/24 21:16:24 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_2bwfdxzyk6gnzwkbexao4titpm (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_2bwfdxzyk6gnzwkbexao4titpm rolled back to its original route
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_2bwfdxzyk6gnzwkbexao4titpm is cleaned up and its journal row retired
2026/10/24 21:16:24 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_nvdoft4z6vyplxqhd6oxkru3sq (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_nvdoft4z6vyplxqhd6oxkru3sq has no route on this box: its local data is removed and no route is put back
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_nvdoft4z6vyplxqhd6oxkru3sq is cleaned up and its journal row retired
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_w36kmhsz5qb4geprywspnq56o4 (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_fkkpqdldft75igtne5muy3wrre (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_wshjlxtpra3z5wt2viwst2bpse (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_wshjlxtpra3z5wt2viwst2bpse cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_utbdjo6zko23s7flxjpgmqsxju (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_utbdjo6zko23s7flxjpgmqsxju is not rolled back: the route changed under the fence, so nothing there is touched
2026/10/24 21:16:24 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 21:16:24 provision: a.shop.example.com: import ../not-a-seed is cleaned up and its journal row retired
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_plbhn6p36zynx2mc4t6g3u5jwa (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_ebwlmagf5q37uwt6ccyzdpxlba (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_25rz66gqoxabayxbic3rrgbj5i (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_6faw2r7uuln7exzkxjsjjbuncm (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_rhcdln6fw75p4a37ugoezaatni (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_rhcdln6fw75p4a37ugoezaatni rollback deferred: the host is not fenced and stopped yet (stop evidence unreadable)
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_a2ywoadkosfjbbizjramgzua5m (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_a2ywoadkosfjbbizjramgzua5m has no route on this box: its local data is removed and no route is put back
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_a2ywoadkosfjbbizjramgzua5m is cleaned up and its journal row retired
2026/10/24 21:16:24 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_bcmrjse7bdrz35w5qkk3cf33eq (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_bcmrjse7bdrz35w5qkk3cf33eq: remove its local data: injected failure at remove-local
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_bcmrjse7bdrz35w5qkk3cf33eq is not rolled back: the route at the host is not the import's, so nothing there is touched
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_jbqu53gitgsf5nclcmctkuqbsy (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_jbqu53gitgsf5nclcmctkuqbsy: a route appeared at the host, so its local database is left and the rollback waits
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_hdmeozuqedxc4z54yvlkn5ijly (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_hdmeozuqedxc4z54yvlkn5ijly rollback deferred: no fence generation: registry busy
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_fpe5jcqyskaipdnqnxyhep23u4 (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_fpe5jcqyskaipdnqnxyhep23u4 rollback deferred: no fence generation: the generation source answered 0
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_xh5qizwbhkfr3kt6ksthiynwpq (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_vymrzikdbjtxckjynvgfifve5m (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_bnwb6dorbncztz6izv3ynrm7z4 (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import deferred: this box cannot read the instance's env file
2026/10/24 21:16:24 provision: a.shop.example.com: import deferred: the instance's env file could not be read: a symlink
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_vj3cqzxh4vjema42gofndvr6be (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_vj3cqzxh4vjema42gofndvr6be rolled back to its original route
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_vj3cqzxh4vjema42gofndvr6be is cleaned up and its journal row retired
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_urt6kwjo4t4xpbqipnn3prxstm (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_urt6kwjo4t4xpbqipnn3prxstm rolled back to its original route
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_urt6kwjo4t4xpbqipnn3prxstm is cleaned up and its journal row retired
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_mq66bwsx7wpgx37bec2vpor33q (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_mq66bwsx7wpgx37bec2vpor33q rolled back to its original route
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_mq66bwsx7wpgx37bec2vpor33q is cleaned up and its journal row retired
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_okottsxado365fexfxztgpxw3u (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_okottsxado365fexfxztgpxw3u: retire its instance key: the env file is a symlink
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_okottsxado365fexfxztgpxw3u rolled back to its original route
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_okottsxado365fexfxztgpxw3u is cleaned up and its journal row retired
2026/10/24 21:16:24 provision: a.shop.example.com: swapped for import sd_y2bth64mle27oyckvkmz43a5bq (the original route is journaled)
2026/10/24 21:16:24 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 21:16:24 provision: a.shop.example.com: swapped for import sd_74to4aieda2qvheyjeswxea75q (the original route is journaled)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_vjus6j26wroewkwmqimalnk4hu refused: there is no route at a.shop.example.com to replace
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_agbmds3hqs5ityk4mhn4wdplsy refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_wdll4cgzhz3kzwvxlkfqfd4oaa 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 21:16:24 provision: a.shop.example.com: import sd_rvkkfnovxtcta5fqnfzgn3puwe refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_lfejekepyrfznbhrcv65xxrkvq refused: the route belongs to app other
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_yr4xhqvu3lzgpafnhxn3pymyqa refused: the route is filed under another account
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_oj72fnsu637zmkpp7eazclnbte refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_ltia24hgoxx4ye33zyp3phmv2a refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_o4og5awl6ubno2ocv3b75y6vyq refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_gfyvr7svpi3bhtiizk25tnu5u4 refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_cwikua4jxgbxejjhdrjyo4u4ga refused: the route is not an address route this import can take over (socket)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_ma6kxzcgremhb5ucbp4pmdsema refused: the route is not an address route this import can take over (no address)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_7o3oejovqjcz5uyqc64zfs3dd4 refused: the route is not an address route this import can take over (provisioned)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_ugntwf776r4gyfxbecpkydnafe refused: the route is not an address route this import can take over (kind static)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_2s4v3xg776ezrloixficjahsru refused: the route is not an address route this import can take over (backing)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_pixzzxxrpqa73z5bydqstqj7v4 refused: the route is not an address route this import can take over (tunnel)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_mwplajuxp2kj6rhzx3h7tjz6bq refused: the route is not an address route this import can take over (caps)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_xbgufymgxbdvm4xbj3y6fitv5m refused: the route is not an address route this import can take over (platform)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_dgeudgevvoyh6birr5j7xl45g4 refused: the route is not an address route this import can take over (canary)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_qqoxojdzdw4fngk76zege2hgey refused: the route is not an address route this import can take over (kind sidecar)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_qsgsgk73hocee5f2zioxdj5w7q refused: the route is not an address route this import can take over (region)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_43alxj66dgdz355tsenpixb6a4 refused: the route is not an address route this import can take over (fleet_box)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_vnzvnkn7cf65sdkd5txrucd3qe refused: the route is not an address route this import can take over (hibernate)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_6ghsjr6gyty6atlbkbwgxxumwe refused: the route is not an address route this import can take over (claim_owner)
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_hxmwllksk4cu2x2mfaqtjd5tyq refused: this box does not run instances nested
2026/10/24 21:16:24 provision: a.shop.example.com: import sd_4jcrgbodbetqo5sbo5wnd4d4va refused: this box does not run instances nested
2026/10/24 21:16:25 provision: a.shop.example.com: import sd_b4qt6sccpcb2rz46rf6bkbpmei refused: claim control is on for this box
2026/10/24 21:16:25 provision: a.shop.example.com: swapped for import sd_vnjmcyebtq3kykyrhtsnndle5u (the original route is journaled)
2026/10/24 21:16:25 provision: a.shop.example.com: swapped for import sd_cpzwe5tpu2vemid2d4ndf2s3lu (the original route is journaled)
2026/10/24 21:16:25 provision: a.shop.example.com: import deferred: this box cannot read the legacy route assignments
2026/10/24 21:16:25 provision: a.shop.example.com: import deferred: the legacy route assignments could not be read: store down
2026/10/24 21:16:25 provision: a.shop.example.com: not swapping for import sd_oajef6237gxxtcpvpptukfrkga: its verify hash is not a sha256
2026/10/24 21:16:25 provision: a.shop.example.com: not swapping for import sd_fjzyejrhckysfmwbwffgnat7je: its verify hash is not a sha256
2026/10/24 21:16:25 provision: a.shop.example.com: not swapping for import sd_gxoe7jkfbbmy7eh7iz7ciedbjm: its verify hash is not a sha256
2026/10/24 21:16:25 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 21:16:25 provision: A.shop.example.com/..: not swapping for import sd_ckuimq3zpa34xgh7j4iufiauki: its host or seed id is malformed (seeds: not a host)
2026/10/24 21:16:25 provision: a.shop.example.com: not swapping for import sd_j7x7x4nzif5nq27khwuq5ihl4i: its record does not describe a nested, hibernating instance
2026/10/24 21:16:25 provision: a.shop.example.com: not swapping for import sd_hw4gzfe6rw2xsnpc3erga343sq: its record does not describe a nested, hibernating instance
2026/10/24 21:16:25 provision: a.shop.example.com: not swapping for import sd_ktedu3whbsblpx55dsbpeebm5m: its record does not describe a nested, hibernating instance
2026/10/24 21:16:25 provision: a.shop.example.com: not swapping for import sd_2vt3zsxv3ac5rhu7cdvyvmbpx4: its record does not describe a nested, hibernating instance
2026/10/24 21:16:25 provision: a.shop.example.com: import deferred: the box's layout intent could not be read: store down
2026/10/24 21:16:25 provision: a.shop.example.com: swapped for import sd_hft2odrnyoz7errkyvenwusoda (the original route is journaled)
2026/10/24 21:16:25 provision: a.shop.example.com: import deferred: the box's nested probe did not answer: ready probe timed out
2026/10/24 21:16:25 provision: a.shop.example.com: swapped for import sd_oklihsc5s7urtfqxkxtgco3lyi (the original route is journaled)
2026/10/24 21:16:25 provision: a.shop.example.com: swapped for import sd_txedfwb2ivlw6i4he7psnuc4oe (the original route is journaled)
2026/10/24 21:16:25 provision: a.shop.example.com: import deferred: the route is held by operation op_1
2026/10/24 21:16:25 provision: dry-run: would consider swapping a.shop.example.com for import sd_na6orr6ndljg2jcdzazaajmkcu
2026/10/24 21:16:25 provision: a.shop.example.com: import sd_2gna2isusfs33gdclyjfiyasoi rolled back to its original route
2026/10/24 21:16:25 provision: a.shop.example.com: import sd_2gna2isusfs33gdclyjfiyasoi: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/24 21:16:25 provision: a.shop.example.com: import sd_2gna2isusfs33gdclyjfiyasoi is cleaned up and its journal row retired
2026/10/24 21:16:25 provision: a.shop.example.com: import sd_4fm2drip5unkbjpwax635plpju left alone: the import journal holds seed sd_ghnudn54dk4texpgkdzqihjywu at swapped
2026/10/24 21:16:25 provision: a.shop.example.com: not minting import sd_ad6ua2gosh4rglnlyn4jn2rgsa: it is swapped but not committed, and only its swap makes its row
2026/10/24 21:16:25 provision: a.shop.example.com: not minting import sd_gg3btpwpjn72342iqeinzf5nqu: it is placed but not committed, and only its swap makes its row
2026/10/24 21:16:25 provision: a.shop.example.com: swapped for import sd_c3egskewc3jyxkahzqi4ngqley (the original route is journaled)
2026/10/24 21:16:25 provision: a.shop.example.com: not minting import sd_c3egskewc3jyxkahzqi4ngqley: it is swapped but not committed, and only its swap makes its row
2026/10/24 21:16:25 provision: a.shop.example.com: not minting import sd_c3egskewc3jyxkahzqi4ngqley: it is placed but not committed, and only its swap makes its row
2026/10/24 21:16:25 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 21:16:25 provision: removed retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/24 21:16:25 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:16:25 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:16:25 provision: converged sidecar bot.eleven.bac.sidecar.internal args ["sidecar","run"] -> ["worker","run"]
2026/10/24 21:16:25 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:16:25 provision: converged sidecar bot.eleven.bac.sidecar.internal ceilings 300/3600 -> 60/120
2026/10/24 21:16:25 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:16:25 provision: converged sidecar bot.eleven.bac.sidecar.internal channel stable -> canary/eleven
2026/10/24 21:16:25 provision: converged sidecar bot.eleven.bac.sidecar.internal environment "other" -> "relay"
2026/10/24 21:16:25 provision: converged sidecar bot.eleven.bac.sidecar.internal hibernate true -> false
2026/10/24 21:16:25 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: read failed: failStore: reads disabled under apps/bac/eleven/sidecars/
2026/10/24 21:16:25 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: malformed: invalid character 'n' looking for beginning of object key string
2026/10/24 21:16:25 provision: not removing sidecar bot.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/24 21:16:25 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: empty channel
2026/10/24 21:16:25 provision: skipping sidecar record apps/bac/eleven/sidecars/held.json: empty channel
2026/10/24 21:16:25 provision: not removing sidecar held.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/24 21:16:25 provision: removed retired sidecar route old.eleven.bac.sidecar.internal (record gone)
2026/10/24 21:16:25 provision: bac/eleven has sidecar records but no sidecars manifest — not minting
2026/10/24 21:16:25 provision: bac/eleven is in the trash — not minting sidecar routes for it
2026/10/24 21:16:25 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 21:16:25 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 21:16:25 provision: minted sidecar route hub.relay.bac.sidecar.internal (app "relay" acct "bac" args ["relay"])
2026/10/24 21:16:25 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:16:25 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 21:16:25 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:16:25 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 21:16:25 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:16:25 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:16:25 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 21:16:25 provision: removed retired sidecar route bot.eleven.bac.sidecar.internal (record gone)
2026/10/24 21:16:25 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:16:25 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 21:16:25 provision: skipping sidecar record apps/bac/relay/sidecars/hub.json: read failed: failStore: reads disabled under apps/bac/relay/sidecars/
2026/10/24 21:16:25 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 21:16:25 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:16:25 provision: dry-run: would mint sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" channel "stable" args ["sidecar","run"])
2026/10/24 21:16:25 provision: dry-run: would remove retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/24 21:16:25 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 21:16:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:25 provision: converged acme.go.tito.io update settings "{\"updates\":\"manual\",\"channel\":\"stable\"}" -> ""
2026/10/24 21:16:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:25 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/24 21:16:25 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/24 21:16:25 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/24 21:16:25 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:16:25 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/24 21:16:25 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/24 21:16:25 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/24 21:16:25 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 21:16:25 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 21:16:25 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 21:16:25 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: record view: change index unusable (get refused): walking
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: record view: change index unusable (release: change index malformed: invalid character 'n' looking for beginning of object key string): walking
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: record view: re-reading apps/bqc/shop failed: retrying on the next refresh
2026/10/24 21:16:25 provision: listing apps/bqc/shop/instances/: list refused — its records are unseen this pass
2026/10/24 21:16:25 provision: listing apps/bqc/shop/instances/: list refused — its records are unseen this pass
2026/10/24 21:16:25 provision: an app's records could not be listed: they are skipped
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: record view: re-reading apps/bqc/shop failed: retrying on the next refresh
2026/10/24 21:16:25 provision: listing apps/bqc/shop/instances/: context canceled — its records are unseen this pass
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping accounts/bqd/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/24 21:16:25 provision: skipping accounts/bqd/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/24 21:16:25 provision: skipping accounts/bqd/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/24 21:16:25 provision: record view: re-reading accounts/bqd failed: retrying on the next refresh
2026/10/24 21:16:25 provision: skipping accounts/bqd/account.json: read failed: list refused
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: minted instance route one.example.com (app "shop" acct "bum")
2026/10/24 21:16:25 provision: minted instance route one.example.com (app "shop" acct "bum")
2026/10/24 21:16:25 provision: skipping record apps/bum/shop/instances/one.example.com.json: empty channel
2026/10/24 21:16:25 provision: not removing one.example.com: its record exists but could not be read cleanly this pass
2026/10/24 21:16:25 provision: skipping record apps/bum/shop/instances/one.example.com.json: empty channel
2026/10/24 21:16:25 provision: removed retired instance route one.example.com (record gone)
2026/10/24 21:16:25 provision: not removing one.example.com: its record exists but could not be read cleanly this pass
2026/10/24 21:16:25 provision: minted instance route one.example.com (app "shop" acct "bum")
2026/10/24 21:16:25 provision: removed retired instance route one.example.com (record gone)
2026/10/24 21:16:25 provision: record view: change index unusable (context deadline exceeded): walking
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:16:25 provision: record view: change index unusable (context deadline exceeded): the walk records no generations
2026/10/24 21:16:25 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
--- FAIL: TestPlan14RootReadCensus (15.29s)
plan14_root_reads_test.go:600: root read census: 10 discrepancies
changed root read internal/hostops/mutation_boundary_putfrom.go:conditionalRecordStore.PutFrom; review class, task, sites and digest
changed root read internal/hostops/mutation_boundary_putfrom.go:mutationBoundary.PutFrom; review class, task, sites and digest
changed root source envelope internal/hostops
changed root source envelope internal/release
unclassified root read internal/release/rootfs.go:type Process file:Command@23
unclassified root read internal/release/rootfs.go:validateProcess file:Command@242,file:Command@61,file:Command@80
unclassified root read internal/release/rootfs_ship.go:hashSpooledFile file:Open@70
unclassified root read internal/release/rootfs_ship.go:putImmutableFrom file:Open@106
changed legacy declaration internal/hostops/mutation_boundary_putfrom.go:conditionalRecordStore.PutFrom
changed legacy declaration internal/hostops/mutation_boundary_putfrom.go:mutationBoundary.PutFrom
make census-card shows what changed; make census-propose NAME=<branch> CLAIMS=<file> writes the overlay and its approval card (AGENTS.md, The census)
FAIL
FAIL github.com/carlosframework/platform/internal/provision 24.088s
ok github.com/carlosframework/platform/internal/publicrelease 0.015s
? github.com/carlosframework/platform/internal/regionname [no test files]
ok github.com/carlosframework/platform/internal/registry 5.600s
ok github.com/carlosframework/platform/internal/relay 7.242s
ok github.com/carlosframework/platform/internal/release 26.313s
ok github.com/carlosframework/platform/internal/rollout 3.860s
ok github.com/carlosframework/platform/internal/rolloutwords 0.005s
ok github.com/carlosframework/platform/internal/rootaws 0.008s
ok github.com/carlosframework/platform/internal/rootparticipation 0.061s
ok github.com/carlosframework/platform/internal/rootstate 0.027s
ok github.com/carlosframework/platform/internal/runs 0.616s
ok github.com/carlosframework/platform/internal/s3compat 0.005s
ok github.com/carlosframework/platform/internal/safefile 0.004s
ok github.com/carlosframework/platform/internal/schedule 2.691s
ok github.com/carlosframework/platform/internal/seeds 0.011s
ok github.com/carlosframework/platform/internal/sim/engines 2.609s
ok github.com/carlosframework/platform/internal/sim/hostlife 11.608s
ok github.com/carlosframework/platform/internal/sim/litestreamfacts 4.101s
ok github.com/carlosframework/platform/internal/status 0.106s
ok github.com/carlosframework/platform/internal/steering 0.006s
ok github.com/carlosframework/platform/internal/stopevidence 0.286s
ok github.com/carlosframework/platform/internal/svcrole 0.002s
ok github.com/carlosframework/platform/internal/telemetry 0.006s
ok github.com/carlosframework/platform/internal/termfence 0.004s
ok github.com/carlosframework/platform/internal/tunnelclient 0.004s
ok github.com/carlosframework/platform/internal/unixdial 0.002s
ok github.com/carlosframework/platform/internal/updatewords 0.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.679s
FAIL
=== internal_console@0 (81 s)
ok github.com/carlosframework/platform/internal/console 80.043s
=== internal_console@1 (43 s)
ok github.com/carlosframework/platform/internal/console 41.912s
=== internal_console@2 (41 s)
ok github.com/carlosframework/platform/internal/console 40.199s
=== internal_console@3 (41 s)
ok github.com/carlosframework/platform/internal/console 40.000s
=== internal_console@4 (42 s)
ok github.com/carlosframework/platform/internal/console 40.836s
=== internal_console@5 (41 s)
ok github.com/carlosframework/platform/internal/console 40.135s
=== internal_console@6 (37 s)
ok github.com/carlosframework/platform/internal/console 35.741s
=== internal_console@7 (47 s)
ok github.com/carlosframework/platform/internal/console 45.591s
=== root@0 (105 s)
ok github.com/carlosframework/platform 103.972s
=== root@1 (81 s)
ok github.com/carlosframework/platform 80.271s
=== root@2 (99 s)
ok github.com/carlosframework/platform 97.375s
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/release/rootfs_ship.go b/internal/release/rootfs_ship.go| index 15712f4d1..485560307 100644 |
| --- a/internal/release/rootfs_ship.go |
| +++ b/internal/release/rootfs_ship.go |
| @@ -246,8 +246,11 @@ func readShipKindState(ctx context.Context, s Store, acct string, m *Manifest) ( |
| // (no release, no marker, no unreadable manifest), which must write the marker. |
| // Another release decides; else the marker does, with no version skip (a |
| // re-ship of the marker's version as the other kind is still the other |
| -// kind); else a readable re-ship of m's own version passes; else an app with |
| -// a manifest that exists but cannot be read is refused (preflight 2.3c). |
| +// kind); else the readable release of m's own version does too, so a |
| +// re-ship of it as the other kind or hibernation is refused here, before a |
| +// byte is written, rather than by the manifest's immutability after the |
| +// image has streamed (an identical re-ship passes); else an app with a |
| +// manifest that exists but cannot be read is refused (preflight 2.3c). |
| func (st shipKindState) decide(m *Manifest) (first bool, err error) { |
| switch { |
| case st.info.Kind != "" && st.info.Version != m.Version: |
| @@ -255,7 +258,7 @@ func (st shipKindState) decide(m *Manifest) (first bool, err error) { |
| case st.marker != nil: |
| return false, kindRefusal(m, st.marker.Kind, st.marker.Version, st.marker.Hibernate, true) |
| case st.info.Kind != "": |
| - return false, nil |
| + return false, kindRefusal(m, st.info.Kind, st.info.Version, st.info.Hibernate, false) |
| case st.unreadable > 0: |
| return false, errAppKindUnreadable |
| } |
diff --git a/internal/release/rootfs_ship_test.go b/internal/release/rootfs_ship_test.go| index 92ff522ab..1f35ce5ab 100644 |
| --- a/internal/release/rootfs_ship_test.go |
| +++ b/internal/release/rootfs_ship_test.go |
| @@ -195,12 +195,55 @@ func TestCheckShipKindAllowsAFirstReleaseAndTheSameKind(t *testing.T) { |
| } |
| } |
| -func TestCheckShipKindSkipsTheVersionBeingShipped(t *testing.T) { |
| - s := NewDirStore(t.TempDir()) |
| - putRawRelease(t, s, "bab", "shop", "0.1.0-1", []byte("bin"), "") |
| - m := rootfsManifest() // 0.1.0-1: a re-ship of the only release's version |
| - if err := CheckShipKind(context.Background(), s, "bab", m); err != nil { |
| - t.Fatalf("re-check against its own version: %v", err) |
| +// A re-ship of the only release's version is compared with that release |
| +// (task review fix round 1): as the other kind or hibernation it is refused |
| +// before ShipSpooled streams an image the manifest's immutability would |
| +// then orphan; as the same kind it passes. |
| +func TestCheckShipKindComparesTheVersionBeingShipped(t *testing.T) { |
| + ctx := context.Background() |
| + // A published binary 0.1.0-1 with no marker, as every app has today. |
| + bins := newShipCountingStore(t) |
| + if err := Ship(ctx, bins.DirStore, "bab", binaryManifest("0.1.0-1"), binaryFiles()); err != nil { |
| + t.Fatal(err) |
| + } |
| + if err := bins.DirStore.Delete(ctx, AppKindMarkerKey("bab", "shop")); err != nil { |
| + t.Fatal(err) |
| + } |
| + m, paths := spooledRootfs(t, "0.1.0-1", false, "image") |
| + var ke *KindConflictError |
| + err := CheckShipKind(ctx, bins, "bab", &m) |
| + if !errors.As(err, &ke) || ke.FirstShip || ke.Have != "binary" || ke.HaveVersion != "0.1.0-1" || |
| + !strings.HasPrefix(err.Error(), "shop ships binary releases (0.1.0-1 is one), so it cannot take a rootfs release") { |
| + t.Fatalf("rootfs re-ship of a binary version: %v, want C18", err) |
| + } |
| + before := len(bins.puts) + len(bins.putFroms) |
| + if err := ShipSpooled(ctx, bins, "bab", m, paths); !errors.As(err, &ke) || err.Error() != ke.Error() { |
| + t.Fatalf("ShipSpooled: %v, want the C18 conflict unwrapped", err) |
| + } |
| + if n := len(bins.puts) + len(bins.putFroms); n != before { |
| + t.Fatalf("the refused re-ship wrote %d keys", n-before) |
| + } |
| + same := binaryManifest("0.1.0-1") |
| + if err := CheckShipKind(ctx, bins, "bab", &same); err != nil { |
| + t.Errorf("binary re-ship of a binary version: %v", err) |
| + } |
| + if err := Ship(ctx, bins, "bab", same, binaryFiles()); err != nil { |
| + t.Errorf("identical binary re-ship: %v", err) |
| + } |
| + |
| + for _, hib := range []bool{false, true} { |
| + s := NewDirStore(t.TempDir()) |
| + putRootfsRelease(t, s, "bab", "shop", "0.1.0-1", []byte("image"), hib) |
| + r := rootfsManifest() |
| + r.Hibernate = hib |
| + if err := CheckShipKind(ctx, s, "bab", r); err != nil { |
| + t.Errorf("rootfs re-ship, hibernate=%v, same setting: %v", hib, err) |
| + } |
| + r.Hibernate = !hib |
| + var he *HibernateConflictError |
| + if err := CheckShipKind(ctx, s, "bab", r); !errors.As(err, &he) || he.FirstShip || he.Hibernate != hib || he.HaveVersion != "0.1.0-1" { |
| + t.Errorf("rootfs re-ship, hibernate=%v, flipped: %v, want a HibernateConflictError", hib, err) |
| + } |
| } |
| } |