edge asset cache task 4: asset columns do not survive a tenant change; compliant fixtures
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
3 files changed,
+69
−17
internal/provision/reconcile_test.go+14 −14internal/registry/registry.go+8 −3internal/registry/registry_test.go+47 −0
CI failed — run details
CI log
=== gate ===
.amadan/test-gate.sh
go: downloading golang.org/x/net v0.56.0
go: downloading golang.org/x/crypto v0.53.0
go: downloading golang.org/x/sys v0.46.0
go: downloading golang.org/x/sync v0.21.0
go: downloading github.com/pion/stun/v3 v3.0.1
go: downloading github.com/pion/transport/v4 v4.0.1
go: downloading golang.org/x/sys v0.46.0
go: downloading golang.org/x/crypto v0.53.0
go: downloading golang.org/x/net v0.56.0
go: downloading github.com/pion/transport/v3 v3.0.8
go: downloading github.com/pion/dtls/v3 v3.0.7
go: downloading github.com/pion/transport/v3 v3.0.8
go: downloading github.com/pion/dtls/v3 v3.0.7
go: downloading golang.org/x/text v0.38.0
go: downloading golang.org/x/text v0.38.0
=== launchctx (0 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 (26 s)
go: downloading golang.org/x/crypto v0.53.0
go: downloading golang.org/x/sys v0.46.0
go: downloading golang.org/x/net v0.56.0
go: downloading golang.org/x/tools v0.47.0
go: downloading github.com/pion/transport/v3 v3.0.8
go: downloading github.com/pion/dtls/v3 v3.0.7
go: downloading golang.org/x/text v0.38.0
go: downloading golang.org/x/mod v0.37.0
=== gofmt (0 s)
gofmt -l .: clean
=== rest (180 s)
? github.com/carlosframework/platform/cmd/changelog [no test files]
ok github.com/carlosframework/platform/cmd/console 3.560s
ok github.com/carlosframework/platform/cmd/moveprobe 11.959s
ok github.com/carlosframework/platform/cmd/zddprobe 0.811s
ok github.com/carlosframework/platform/internal/activator 58.517s
ok github.com/carlosframework/platform/internal/agentsock 0.050s
ok github.com/carlosframework/platform/internal/alerting 0.010s
ok github.com/carlosframework/platform/internal/analytics 0.041s
ok github.com/carlosframework/platform/internal/appconfig 3.092s
ok github.com/carlosframework/platform/internal/apperr 0.174s
ok github.com/carlosframework/platform/internal/applog 0.222s
ok github.com/carlosframework/platform/internal/awsinv 0.010s
ok github.com/carlosframework/platform/internal/boxchoice 0.009s
ok github.com/carlosframework/platform/internal/boxid 1.002s
? 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.026s
ok github.com/carlosframework/platform/internal/caps 0.031s
ok github.com/carlosframework/platform/internal/certwarm 0.006s
ok github.com/carlosframework/platform/internal/cgroup 0.827s
ok github.com/carlosframework/platform/internal/changelog 0.535s
ok github.com/carlosframework/platform/internal/claimactivation 1.364s
ok github.com/carlosframework/platform/internal/clamd 0.076s
? github.com/carlosframework/platform/internal/cliflag [no test files]
? github.com/carlosframework/platform/internal/controlname [no test files]
? github.com/carlosframework/platform/internal/controlsock [no test files]
ok github.com/carlosframework/platform/internal/dbdoor 8.068s
ok github.com/carlosframework/platform/internal/dbdoor/dbdoortest 0.019s
ok github.com/carlosframework/platform/internal/dbquery 0.016s
ok github.com/carlosframework/platform/internal/dbreads 2.156s
? github.com/carlosframework/platform/internal/dbreads/dbreadstest [no test files]
ok github.com/carlosframework/platform/internal/dbverify 0.013s
ok github.com/carlosframework/platform/internal/dnsrec 0.013s
ok github.com/carlosframework/platform/internal/docsite 0.022s
ok github.com/carlosframework/platform/internal/domains 3.198s
ok github.com/carlosframework/platform/internal/doorkey 0.020s
ok github.com/carlosframework/platform/internal/economics 0.010s
ok github.com/carlosframework/platform/internal/edge 46.220s
? github.com/carlosframework/platform/internal/edgeproof [no test files]
ok github.com/carlosframework/platform/internal/edgesfile 0.008s
ok github.com/carlosframework/platform/internal/fleetapi 0.138s
ok github.com/carlosframework/platform/internal/gate 1.655s
ok github.com/carlosframework/platform/internal/genselect 0.015s
ok github.com/carlosframework/platform/internal/geo 0.019s
ok github.com/carlosframework/platform/internal/geoip 0.029s
ok github.com/carlosframework/platform/internal/historyreadback 0.153s
ok github.com/carlosframework/platform/internal/host 144.801s
ok github.com/carlosframework/platform/internal/hostactors 5.736s
ok github.com/carlosframework/platform/internal/hostactors/awsmembership 0.010s
ok github.com/carlosframework/platform/internal/hostbox 3.039s
ok github.com/carlosframework/platform/internal/hostclaim 0.780s
ok github.com/carlosframework/platform/internal/hostenv 0.009s
ok github.com/carlosframework/platform/internal/hostevidence 0.009s
ok github.com/carlosframework/platform/internal/hostexec 5.323s
ok github.com/carlosframework/platform/internal/hostfence 0.053s
ok github.com/carlosframework/platform/internal/hostfiles 10.331s
ok github.com/carlosframework/platform/internal/hostfloor 0.020s
ok github.com/carlosframework/platform/internal/hostguard 1.073s
ok github.com/carlosframework/platform/internal/hostops 1.977s
? github.com/carlosframework/platform/internal/hostops/fencerelease [no test files]
ok github.com/carlosframework/platform/internal/hostops/internal/fencerelease 0.005s
ok github.com/carlosframework/platform/internal/hostquarantine 0.005s
ok github.com/carlosframework/platform/internal/hostrelocate 0.708s
ok github.com/carlosframework/platform/internal/hostresolve 0.218s
ok github.com/carlosframework/platform/internal/hostwrite 0.005s
ok github.com/carlosframework/platform/internal/infraview 0.008s
ok github.com/carlosframework/platform/internal/instancectl 5.230s
ok github.com/carlosframework/platform/internal/instanceexec 2.793s
ok github.com/carlosframework/platform/internal/instancefs 0.004s
ok github.com/carlosframework/platform/internal/instancekey 0.002s
ok github.com/carlosframework/platform/internal/instanceupdates 0.010s
ok github.com/carlosframework/platform/internal/layout 1.814s
ok github.com/carlosframework/platform/internal/lbhealth 0.003s
ok github.com/carlosframework/platform/internal/lease 10.144s
ok github.com/carlosframework/platform/internal/lease/leasetest 0.660s
ok github.com/carlosframework/platform/internal/ledger 0.022s
ok github.com/carlosframework/platform/internal/mail 0.268s
ok github.com/carlosframework/platform/internal/maintenance 0.088s
ok github.com/carlosframework/platform/internal/maintenanceexec 5.612s
ok github.com/carlosframework/platform/internal/maintenanceguard 0.111s
ok github.com/carlosframework/platform/internal/metrics 0.006s
ok github.com/carlosframework/platform/internal/moves 22.074s
ok github.com/carlosframework/platform/internal/moves/archive 0.983s
ok github.com/carlosframework/platform/internal/objstore 0.234s
ok github.com/carlosframework/platform/internal/ops 0.252s
ok github.com/carlosframework/platform/internal/park 0.273s
ok github.com/carlosframework/platform/internal/plans 0.009s
ok github.com/carlosframework/platform/internal/privatefile 0.005s
2026/10/24 21:05:40 provision: listing apps/bab/blog/instances/: list refused — its records are unseen this pass
2026/10/24 21:05:40 provision: listing apps/bab/: listdirs refused — its records are unseen this pass
2026/10/24 21:05:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/24 21:05:40 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/24 21:05:40 provision: skipping record apps/bac/tito/instances/one.example.com.json: unreadable: read refused
2026/10/24 21:05:40 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/24 21:05:40 provision: an app's records could not be listed: they are skipped
2026/10/24 21:05:40 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:05:40 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/24 21:05:40 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/24 21:05:40 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/24 21:05:40 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/24 21:05:40 provision: claim install acme.go.tito.io: provision: claim admission unavailable
2026/10/24 21:05:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/24 21:05:40 provision: claim install bot.eleven.bac.sidecar.internal: provision: claim admission unavailable
2026/10/24 21:05:40 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 21:05:40 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/24 21:05:40 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:05:40 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:05:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 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:05:40 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 21:05:40 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 21:05:40 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:05:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 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:05:40 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 21:05:40 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 21:05:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/24 21:05:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/24 21:05:40 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:05:40 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 21:05:40 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/24 21:05:40 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 21:05:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 21:05:40 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:05:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:05:40 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:40 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:40 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 21:05:40 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:40 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:40 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route rf.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route ri.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route rk.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route rl.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route rg.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route rh.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:40 provision: minted instance route rj.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/24 21:05:41 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/24 21:05:41 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route x.appa.example (app "appa" acct "bac")
2026/10/24 21:05:41 provision: minted instance route x.appd.example (app "appd" acct "bac")
2026/10/24 21:05:41 provision: minted instance route x.apph.example (app "apph" acct "bac")
2026/10/24 21:05:41 provision: minted instance route x.appi.example (app "appi" acct "bac")
2026/10/24 21:05:41 provision: minted instance route x.appb.example (app "appb" acct "bac")
2026/10/24 21:05:41 provision: minted instance route x.appc.example (app "appc" acct "bac")
2026/10/24 21:05:41 provision: minted instance route x.appe.example (app "appe" acct "bac")
2026/10/24 21:05:41 provision: minted instance route x.appf.example (app "appf" acct "bac")
2026/10/24 21:05:41 provision: minted instance route x.appg.example (app "appg" acct "bac")
2026/10/24 21:05:41 provision: minted instance route x.appj.example (app "appj" acct "bac")
2026/10/24 21:05:41 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 21:05:41 provision: minted instance route r0013.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0036.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0051.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0070.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0012.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0038.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0041.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0061.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0064.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0128.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0026.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0054.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0123.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0007.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0083.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0104.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0005.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0072.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0071.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0078.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0099.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0114.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0009.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0030.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0075.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0116.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0122.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0001.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0057.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0089.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0098.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0110.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0017.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0037.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0048.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0062.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0069.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0016.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0020.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0022.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0024.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0046.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0119.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0120.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0127.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0105.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0111.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0060.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0113.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0019.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0033.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0042.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0043.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0065.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0079.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0091.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0093.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0050.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0117.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0121.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0058.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0068.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0087.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0109.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0006.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0015.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0090.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0063.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0000.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0010.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0021.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0049.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0103.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0115.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0008.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0080.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0029.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0039.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0074.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0102.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0106.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0027.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0055.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0097.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0004.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0056.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0086.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0101.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0028.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0076.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0100.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0129.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0094.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0108.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0032.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0084.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0124.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0035.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0040.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0052.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0082.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0088.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0095.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0023.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0025.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0034.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0053.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0059.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0073.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0096.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0014.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0031.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0067.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0011.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0081.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0118.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0002.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0044.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0066.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0018.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0045.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0047.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0077.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0085.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0092.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0112.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0107.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0003.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0125.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:41 provision: minted instance route r0126.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 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:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted instance route console.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted service route svc.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted instance route whole.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted instance route shared.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: converged acme.go.tito.io channel stable -> edge
2026/10/24 21:05:42 provision: converged acme.go.tito.io channel edge -> canary/rehearsal
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: empty channel
2026/10/24 21:05:42 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: converged acme.go.tito.io environment "" -> "staging"
2026/10/24 21:05:42 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: converged acme.go.tito.io steering "" -> "latency"
2026/10/24 21:05:42 provision: converged acme.go.tito.io steering "latency" -> ""
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: converged acme.go.tito.io hibernate false -> true
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: converged acme.go.tito.io hibernate true -> false (replication "daily" cleared: only a hibernating route's rung is read)
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: converged acme.go.tito.io status-named false -> true
2026/10/24 21:05:42 provision: converged acme.go.tito.io status-named true -> false
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 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:05:42 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:05:42 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:05:42 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 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:05:42 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:05:42 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:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: skipping accounts/bac/account.json: malformed account manifest: invalid character 'o' in literal null (expecting 'u')
2026/10/24 21:05:42 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 21:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 provision: manifest bac/tito: read failed: provision: manifest bac/tito: invalid character 'o' in literal null (expecting 'u')
2026/10/24 21:05:42 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:05:42 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:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 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:05:42 provision: not removing acme$evil.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 21:05:42 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:05:42 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:42 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:05:42 provision: not removing bad-service.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 21:05:43 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/24 21:05:43 provision: not removing no-channel.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:43 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 21:05:43 provision: removed retired instance route ghost.go.tito.io (record gone)
2026/10/24 21:05:43 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:05:43 provision: minted instance route dup.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 21:05:43 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/24 21:05:43 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 21:05:43 provision: removed retired static route site.go.tito.io (app in the trash)
2026/10/24 21:05:43 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:05:43 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 21:05:43 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/24 21:05:43 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 21:05:43 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:05:43 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 21:05:43 provision: converged acme.go.tito.io channel stable -> edge
2026/10/24 21:05:43 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 21:05:43 provision: converged acme.go.tito.io channel canary/rehearsal -> edge
2026/10/24 21:05:43 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/24 21:05:43 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 21:05:43 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:05:43 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:05:43 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:05:43 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:05:43 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:05:43 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:05:43 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 21:05:43 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 21:05:43 provision: dry-run: would mint instance route acme.go.tito.io (app "tito" acct "bac" channel "stable")
2026/10/24 21:05:43 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:05:43 provision: dry-run: would converge adopt.go.tito.io channel stable -> edge
2026/10/24 21:05:43 provision: dry-run: would converge adopt.go.tito.io environment "" -> "staging"
2026/10/24 21:05:43 provision: dry-run: would converge owned.go.tito.io channel stable -> edge
2026/10/24 21:05:43 provision: dry-run: would converge owned.go.tito.io environment "" -> "staging"
2026/10/24 21:05:43 provision: dry-run: would converge owned.go.tito.io hibernate false -> true
2026/10/24 21:05:43 provision: dry-run: would converge owned.go.tito.io seed
2026/10/24 21:05:43 provision: dry-run: would remove retired instance route gone.go.tito.io (record gone)
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: adopted existing route adopt.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 21:05:43 provision: converged adopt.go.tito.io channel stable -> edge
2026/10/24 21:05:43 provision: converged adopt.go.tito.io environment "" -> "staging"
2026/10/24 21:05:43 provision: converged owned.go.tito.io channel stable -> edge
2026/10/24 21:05:43 provision: converged owned.go.tito.io environment "" -> "staging"
2026/10/24 21:05:43 provision: converged owned.go.tito.io hibernate false -> true
2026/10/24 21:05:43 provision: removed retired instance route gone.go.tito.io (record gone)
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: adopted existing route story.carlosframework.com (app "story" acct "bad") — this record now owns its channel and environment
2026/10/24 21:05:43 provision: story.carlosframework.com exists but is not the route this record describes (kind "instance"/"static") — leaving it alone
2026/10/24 21:05:43 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted service route pub.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted service route pubs.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted service route priv.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted instance route unit.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted instance route exec.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted service route loop.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted service route named.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted static route pisite.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: removed retired static route site.go.tito.io (record gone)
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: converged acme.go.tito.io replicas "ie,uk" -> "uk"
2026/10/24 21:05:43 provision: converged acme.go.tito.io replicas "uk" -> ""
2026/10/24 21:05:43 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: converged acme-uk.go.tito.io replica mark true -> false
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 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:05:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:43 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/24 21:05:43 provision: router.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/24 21:05:43 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 21:05:43 provision: converged acme.go.tito.io channel stable -> edge
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/24 21:05:43 provision: not removing acme.go.tito.io (record gone): participant of a running operation
2026/10/24 21:05:43 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 21:05:43 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/24 21:05:43 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:05:43 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/24 21:05:43 provision: acme.go.tito.io: held restoring by rb_other, not by mv_acme; leaving it
2026/10/24 21:05:43 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:05:43 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 21:05:43 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:05:43 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:05:44 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/24 21:05:44 provision: minted instance route acme.example.com (app "shop" acct "bac")
2026/10/24 21:05:44 provision: minted instance route plain.example.com (app "shop" acct "bac")
2026/10/24 21:05:44 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:44 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:05:44 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:44 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:05:44 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:44 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:05:44 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:44 provision: listing apps/bac/shop/instances/: list refused — its records are unseen this pass
2026/10/24 21:05:44 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 21:05:44 provision: converged a.shop.example.com assets off false -> false, generation "" -> "0123456789abcdef"
2026/10/24 21:05:44 provision: converged a.shop.example.com assets off false -> false, generation "0123456789abcdef" -> "fedcba9876543210"
2026/10/24 21:05:44 provision: converged a.shop.example.com assets off false -> true, generation "fedcba9876543210" -> "fedcba9876543210"
2026/10/24 21:05:44 provision: converged a.shop.example.com assets off true -> false, generation "fedcba9876543210" -> ""
2026/10/24 21:05:44 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:44 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 21:05:44 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:44 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 21:05:44 provision: minted sidecar route bot.shop.bac.sidecar.internal (app "shop" acct "bac" args ["run"])
2026/10/24 21:05:44 provision: removed retired sidecar route bot.shop.bac.sidecar.internal (record gone)
2026/10/24 21:05:45 provision: minted sidecar route bot.shop.bum.sidecar.internal (app "shop" acct "bum" args ["run"])
2026/10/24 21:05:45 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:05:45 provision: minted sidecar route bot.shop.bum.sidecar.internal (app "shop" acct "bum" args ["run"])
2026/10/24 21:05:45 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:05:45 provision: removed retired sidecar route bot.shop.bum.sidecar.internal (record gone)
2026/10/24 21:05:45 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:05:45 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:05:45 provision: removed retired sidecar route bot.shop.bum.sidecar.internal (record gone)
2026/10/24 21:05:45 provision: a.shop.example.com: swapped for import sd_kmaytq7lghyk3knnjj5qwr6cbq (the original route is journaled)
2026/10/24 21:05:45 provision: a.shop.example.com: import sd_kmaytq7lghyk3knnjj5qwr6cbq committed: its gate is cleared and its journal row dropped
2026/10/24 21:05:45 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 21:05:45 provision: a.shop.example.com: import sd_lucmhngcf3tnajl2iqabwrtg2e rolled back to its original route
2026/10/24 21:05:45 provision: a.shop.example.com: import sd_lucmhngcf3tnajl2iqabwrtg2e: 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:05:45 provision: a.shop.example.com: import sd_lucmhngcf3tnajl2iqabwrtg2e is cleaned up and its journal row retired
2026/10/24 21:05:45 provision: a.shop.example.com: import sd_rabmkyvbscfv7iars57lpnykmq rolled back to its original route
2026/10/24 21:05:45 provision: a.shop.example.com: import sd_rabmkyvbscfv7iars57lpnykmq: 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:05:45 provision: a.shop.example.com: import sd_rabmkyvbscfv7iars57lpnykmq is cleaned up and its journal row retired
2026/10/24 21:05:45 provision: dry-run: would redo a.shop.example.com's swap record CAS for import sd_of357ysiw5c6kqravs4h7e232i
2026/10/24 21:05:45 provision: dry-run: would clear a.shop.example.com's import gate
2026/10/24 21:05:45 provision: dry-run: would converge a.shop.example.com seed source
2026/10/24 21:05:45 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 21:05:45 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:05:45 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:05:45 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:05:45 provision: a.shop.example.com: import sd_zrtdskd7sxcqnmmm6mhc4pab2y cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/24 21:05:45 provision: a.shop.example.com: import sd_d7id3xicrb2mi7za7afgsd2rvu cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/24 21:05:45 provision: a.shop.example.com: import sd_5bl4hovqvo73exocjps7ebflgq is journaled, but this box cannot act on imports; its row is left alone
2026/10/24 21:05:45 provision: a.shop.example.com: import sd_iw5ts4mxvq2eockqpqdydosnve is journaled, but this box cannot act on imports; its row is left alone
2026/10/24 21:05:45 provision: a.shop.example.com: import sd_xi4sgjm33nf2pafwu7zthtcqqa is journaled, but this box cannot act on imports; its row is left alone
2026/10/24 21:05:45 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:05:45 provision: b.shop.example.com: import sd_hczoltcbjswdjmu2m3tedzq3hi left alone this pass: the import journal could not be read
2026/10/24 21:05:45 provision: c.shop.example.com: import sd_4kwvjhfzdwgjxt55qiwixs7xfm left alone this pass: the import journal could not be read
2026/10/24 21:05:45 provision: a.shop.example.com: import sd_567q4hrahfis6jvmbror5dy5ze committed: its gate is cleared and its journal row dropped
2026/10/24 21:05:45 provision: a.shop.example.com: not converging import sd_sxhcgzli7q7dxh5nay5rbfzzxu: it is swapped but not committed, and the row on this box has no import gate
2026/10/24 21:05:45 provision: a.shop.example.com: not converging import sd_ofbh2g6llntisos6vcgru5e5qy: it is swapped but not committed, and the row on this box has no import gate
2026/10/24 21:05:45 provision: a.shop.example.com: not converging import sd_jf6m7fv4gri25jskhvmgep5uci: it is placed but not committed, and the row on this box has no import gate
2026/10/24 21:05:45 provision: a.shop.example.com: not converging import sd_4wlzj7yyvvdqq4ztqmb6dq2yvq: it is placed but not committed, and the row on this box has no import gate
2026/10/24 21:05:46 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 21:05:46 provision: converge seed source on a.shop.example.com: constraint failed: seed_source is read-only here (1811)
2026/10/24 21:05:46 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_u2f5yrdqug7ok7e7oc6qz4x4tm committed: its gate is cleared and its journal row dropped
2026/10/24 21:05:46 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 21:05:46 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:46 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:05:46 provision: acme.go.tito.io: not minting a seeded instance: this box does not mint nested (<nil>)
2026/10/24 21:05:46 provision: acme.go.tito.io: not minting a seeded instance: claim control is on for this box
2026/10/24 21:05:46 provision: acme.go.tito.io: aborted seed sd_aamfdcgqe775mgvabfks3ceayq: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/24 21:05:46 provision: acme.go.tito.io: aborted seed sd_aamfdcgqe775mgvabfks3ceayq rolled back (no box had swapped it)
2026/10/24 21:05:46 provision: acme.go.tito.io: not minting a seeded instance: its record does not describe a hibernating instance
2026/10/24 21:05:46 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:46 provision: removed instance route acme.go.tito.io (its seed sd_qtpg763vwmfss4xsocd6bprynq was aborted); the next pass rolls it back
2026/10/24 21:05:46 provision: acme.go.tito.io: aborted seed sd_qtpg763vwmfss4xsocd6bprynq: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/24 21:05:46 provision: acme.go.tito.io: aborted seed sd_qtpg763vwmfss4xsocd6bprynq rolled back (no box had swapped it)
2026/10/24 21:05:46 provision: acme.go.tito.io: aborted seed sd_j7sztaqhaqebsyhr7vavbelqvy has a row this pass may not remove; leaving the seed aborted
2026/10/24 21:05:46 provision: acme.go.tito.io: aborted seed sd_otztktkecrfm5vmbdn6mbdzdwa rolled back (no box had swapped it)
2026/10/24 21:05:46 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:46 provision: removed instance route acme.go.tito.io (its seed sd_kaow3rom5n3zfjxpzraxmswu5m was aborted); the next pass rolls it back
2026/10/24 21:05:46 provision: acme.go.tito.io: aborted seed sd_kaow3rom5n3zfjxpzraxmswu5m has no route on this box: its local data is removed
2026/10/24 21:05:46 provision: acme.go.tito.io: aborted seed sd_kaow3rom5n3zfjxpzraxmswu5m rolled back (no box had swapped it)
2026/10/24 21:05:46 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_ldhbptgow7fkk3exyzrnyxajui (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_ldhbptgow7fkk3exyzrnyxajui rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_ldhbptgow7fkk3exyzrnyxajui is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_go5zajfystq5ruo7dengyvwi5u (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_go5zajfystq5ruo7dengyvwi5u rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_go5zajfystq5ruo7dengyvwi5u is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_bhqonmqlwm7wj5qlz54efq5hbm (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_bhqonmqlwm7wj5qlz54efq5hbm rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_bhqonmqlwm7wj5qlz54efq5hbm: the host's replica is left alone: its record no longer names this seed
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_bhqonmqlwm7wj5qlz54efq5hbm is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_h4emhwtigoe5t22p2fclq7nzza (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_h4emhwtigoe5t22p2fclq7nzza rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_h4emhwtigoe5t22p2fclq7nzza rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_h4emhwtigoe5t22p2fclq7nzza is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_gykrjmkfbnxfmn6xfzre5sy6ny (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_gykrjmkfbnxfmn6xfzre5sy6ny rollback deferred: the host is not fenced and stopped yet (stop unproven)
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_xbrbu3pqt3mde5dsyv2wbpmyka (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_xbrbu3pqt3mde5dsyv2wbpmyka is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_im2cd4ra23wmdf7bwyrf7jtlnu (the original route is journaled)
2026/10/24 21:05:46 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_im2cd4ra23wmdf7bwyrf7jtlnu left alone this pass: its record could not be read
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_lrds2yakavogxkyjsysdajpc5m (the original route is journaled)
2026/10/24 21:05:46 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: read failed: connection reset
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_lrds2yakavogxkyjsysdajpc5m left alone this pass: its record could not be read
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_r2szqxiqptbmlyfxozjxh5s674 (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_r2szqxiqptbmlyfxozjxh5s674: close the import gate: constraint failed: injected (1811)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_r2szqxiqptbmlyfxozjxh5s674 rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_r2szqxiqptbmlyfxozjxh5s674 is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_cwzlv5xhu5jogopygpqjqeojie (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_cwzlv5xhu5jogopygpqjqeojie: close the import gate: constraint failed: injected (1811)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_cwzlv5xhu5jogopygpqjqeojie rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_cwzlv5xhu5jogopygpqjqeojie is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_q7cq4xswzv4c65lbsvpte2vbn4 (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_q7cq4xswzv4c65lbsvpte2vbn4 rollback deferred: the host is not fenced and stopped yet (injected failure at fence)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_q7cq4xswzv4c65lbsvpte2vbn4 rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_q7cq4xswzv4c65lbsvpte2vbn4 is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_j6p5g2yocytvnx75irpdem3f3u (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_j6p5g2yocytvnx75irpdem3f3u rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_j6p5g2yocytvnx75irpdem3f3u is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_6k4jsx2kmdh3llwqbj6vipnb4e (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_6k4jsx2kmdh3llwqbj6vipnb4e: retire its instance key: injected failure at retire-key
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_6k4jsx2kmdh3llwqbj6vipnb4e rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_6k4jsx2kmdh3llwqbj6vipnb4e is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_hvdkx62fknt5dcnx6dppoplfua (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_hvdkx62fknt5dcnx6dppoplfua rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_hvdkx62fknt5dcnx6dppoplfua is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_3xngkbjciw43fwjuzi2ev5l4di (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_3xngkbjciw43fwjuzi2ev5l4di: remove its local data: injected failure at remove-local
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_3xngkbjciw43fwjuzi2ev5l4di rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_3xngkbjciw43fwjuzi2ev5l4di is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_qivf6agq3f2kgxt3qiu6dcixvy (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_qivf6agq3f2kgxt3qiu6dcixvy rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_qivf6agq3f2kgxt3qiu6dcixvy is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_b7kusxa7hnrtdejmlqq7h7btli (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_b7kusxa7hnrtdejmlqq7h7btli: remove its local data: injected failure at remove-local-done
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_b7kusxa7hnrtdejmlqq7h7btli rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_b7kusxa7hnrtdejmlqq7h7btli is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_fhm7665fnvjhbf3ypncrg5jchq (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_fhm7665fnvjhbf3ypncrg5jchq rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_fhm7665fnvjhbf3ypncrg5jchq is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_pz4avqkgggxb5kdeczxwrcyjz4 (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_pz4avqkgggxb5kdeczxwrcyjz4: restore the original route: constraint failed: injected (1811)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_pz4avqkgggxb5kdeczxwrcyjz4 rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_pz4avqkgggxb5kdeczxwrcyjz4 is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_7hvuutgumhmnzvf3gycspl5ycu (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_7hvuutgumhmnzvf3gycspl5ycu: restore the original route: constraint failed: injected (1811)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_7hvuutgumhmnzvf3gycspl5ycu rolled back to its original route
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_7hvuutgumhmnzvf3gycspl5ycu is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_fl42xay7lwbtre6dsjz3pp5gva (the original route is journaled)
2026/10/24 21:05:46 provision: a.shop.example.com: import sd_fl42xay7lwbtre6dsjz3pp5gva is cleaned up and its journal row retired
2026/10/24 21:05:46 provision: a.shop.example.com: swapped for import sd_t4o2dlw7id5a4xd3rkc4hdprta (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_t4o2dlw7id5a4xd3rkc4hdprta rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_t4o2dlw7id5a4xd3rkc4hdprta: delete its snapshot: injected failure at delete-snapshot
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_t4o2dlw7id5a4xd3rkc4hdprta is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_2fqovbdooh47kqudloqsipa7aq (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_2fqovbdooh47kqudloqsipa7aq rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_2fqovbdooh47kqudloqsipa7aq is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_v6imdwz5tk3achykfwopbv7ivm (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_v6imdwz5tk3achykfwopbv7ivm rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_v6imdwz5tk3achykfwopbv7ivm: delete the host's replica: injected failure at delete-replica
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_v6imdwz5tk3achykfwopbv7ivm is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_7kvqmql4ova2usyxq5n7afp644 (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_7kvqmql4ova2usyxq5n7afp644 rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_7kvqmql4ova2usyxq5n7afp644 is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_zeul5jorhdugvxsozchhbzlnza (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_zeul5jorhdugvxsozchhbzlnza rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_zeul5jorhdugvxsozchhbzlnza: retire its journal row: constraint failed: injected (1811)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_zeul5jorhdugvxsozchhbzlnza is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_q5ylrdtrwscdwutk2nyxb3w76y (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_q5ylrdtrwscdwutk2nyxb3w76y rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_q5ylrdtrwscdwutk2nyxb3w76y: retire its journal row: constraint failed: injected (1811)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_q5ylrdtrwscdwutk2nyxb3w76y is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_2kuwvt4y36cpw4s44p6koengza (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_2kuwvt4y36cpw4s44p6koengza rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_2kuwvt4y36cpw4s44p6koengza is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: mark import sd_2kuwvt4y36cpw4s44p6koengza rolled back: injected failure at cas
2026/10/24 21:05:47 provision: a.shop.example.com: aborted seed sd_2kuwvt4y36cpw4s44p6koengza rolled back (no box had swapped it)
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_brqdunyk3xaybwnqtlygzeptse (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_brqdunyk3xaybwnqtlygzeptse rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_brqdunyk3xaybwnqtlygzeptse is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: aborted seed sd_brqdunyk3xaybwnqtlygzeptse rolled back (no box had swapped it)
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_bqd7xahyeyi4n34vqven4fuqw4 (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_bqd7xahyeyi4n34vqven4fuqw4 rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_bqd7xahyeyi4n34vqven4fuqw4 rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_bqd7xahyeyi4n34vqven4fuqw4 rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_bqd7xahyeyi4n34vqven4fuqw4 is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_zyvnx3aijlariyau3wpsjsmxse (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_zyvnx3aijlariyau3wpsjsmxse rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_zyvnx3aijlariyau3wpsjsmxse is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_vvi7qmjerblz5ij7hatb4i747e (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_vvi7qmjerblz5ij7hatb4i747e rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_vvi7qmjerblz5ij7hatb4i747e is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_ykhwotyrlowjlp3cwouaudtxzu (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_ykhwotyrlowjlp3cwouaudtxzu rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_ykhwotyrlowjlp3cwouaudtxzu is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_uxdgy2dow5m5n2issvsoavxv3q (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_uxdgy2dow5m5n2issvsoavxv3q rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_uxdgy2dow5m5n2issvsoavxv3q is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_3rprokt66wm3yo5kliowtl4cjq (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_3rprokt66wm3yo5kliowtl4cjq rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_3rprokt66wm3yo5kliowtl4cjq is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_fyegibno3o27evewtcw6vx2y4m (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_fyegibno3o27evewtcw6vx2y4m rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_fyegibno3o27evewtcw6vx2y4m is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_svoonewlvl2bmftomgcwq4nisy (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_svoonewlvl2bmftomgcwq4nisy rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_svoonewlvl2bmftomgcwq4nisy is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_kiz5fmcyibf6etx4qf6ggrkuua (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_kiz5fmcyibf6etx4qf6ggrkuua has no route on this box: its local data is removed and no route is put back
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_kiz5fmcyibf6etx4qf6ggrkuua is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_o5gh3gh4snnebdmb4bniadeqbq (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_sntn3t2seg2ejcgsegtoo4ibti (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_t4qmeoclr2lycugphgtkinej5q (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_t4qmeoclr2lycugphgtkinej5q cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_ucye5wv5novrrj65ydfbhnu5be (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_ucye5wv5novrrj65ydfbhnu5be is not rolled back: the route changed under the fence, so nothing there is touched
2026/10/24 21:05:47 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:05:47 provision: a.shop.example.com: import ../not-a-seed is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_7ttd3mmnv4mluwc24c7725cc5y (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_wxbqkt7an5766qlif7dcvtetpu (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_rdh25cxejvsvspifrocgl57x7u (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_wqiq4r6yj6kuz3kyb6w3urhmgu (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_lebvyzw34beczwfi33v4vjoigm (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_lebvyzw34beczwfi33v4vjoigm rollback deferred: the host is not fenced and stopped yet (stop evidence unreadable)
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_el6lfuuf6yd64nzrss4djqbcqy (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_el6lfuuf6yd64nzrss4djqbcqy has no route on this box: its local data is removed and no route is put back
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_el6lfuuf6yd64nzrss4djqbcqy is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_hnivqpokzpcjo2vnga7zhmuioe (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_hnivqpokzpcjo2vnga7zhmuioe: remove its local data: injected failure at remove-local
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_hnivqpokzpcjo2vnga7zhmuioe is not rolled back: the route at the host is not the import's, so nothing there is touched
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_4astvpu536tircgpvxopifi6xy (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_4astvpu536tircgpvxopifi6xy: a route appeared at the host, so its local database is left and the rollback waits
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_5ktivudcxmadvimu3vnecbdc6q (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_5ktivudcxmadvimu3vnecbdc6q rollback deferred: no fence generation: registry busy
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_6dnouksg7c5k7av4lmkipklpku (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_6dnouksg7c5k7av4lmkipklpku rollback deferred: no fence generation: the generation source answered 0
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_byzsa5jney5gfeh4ihtmuvel5i (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_boek22tyrxaqzc4hm2grfhk7yu (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_5bt5qe6k6qcw7yqglk5mt4cr4e (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import deferred: this box cannot read the instance's env file
2026/10/24 21:05:47 provision: a.shop.example.com: import deferred: the instance's env file could not be read: a symlink
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_pqai7uxwl5l5wumzibb3ljow54 (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_pqai7uxwl5l5wumzibb3ljow54 rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_pqai7uxwl5l5wumzibb3ljow54 is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_qn5sjhbfvmrz662dxllxzchk7u (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_qn5sjhbfvmrz662dxllxzchk7u rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_qn5sjhbfvmrz662dxllxzchk7u is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_zlstdl4bfx3kz2z325ylrl5sum (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_zlstdl4bfx3kz2z325ylrl5sum rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_zlstdl4bfx3kz2z325ylrl5sum is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_mhiz34ib4qyxabteudztathyoe (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_mhiz34ib4qyxabteudztathyoe: retire its instance key: the env file is a symlink
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_mhiz34ib4qyxabteudztathyoe rolled back to its original route
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_mhiz34ib4qyxabteudztathyoe is cleaned up and its journal row retired
2026/10/24 21:05:47 provision: a.shop.example.com: swapped for import sd_dpp3rufllvv3dsmdcdzmdyymci (the original route is journaled)
2026/10/24 21:05:47 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:05:47 provision: a.shop.example.com: swapped for import sd_637dxcuvbdd7tfvxmd45posgyi (the original route is journaled)
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_p3jbgxmyycztvrivekuc3lais4 refused: there is no route at a.shop.example.com to replace
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_xwmiesut2ikkpaexuslveko43q refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_rdswtdvkrk6kh7i7dyu2v5ofry 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:05:47 provision: a.shop.example.com: import sd_k5se7ejq4fnplpomhld626wvqm refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_hueklt2h2fm53zyysvbzs73px4 refused: the route belongs to app other
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_bzy4mlynnxr2psmv42jqfp42yi refused: the route is filed under another account
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_gp6ih2idunnimrbeen72dhhdya refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_wbz5rhp5g5lr5sb3lg2duuygn4 refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 21:05:47 provision: a.shop.example.com: import sd_vdjrxlfna6gmxpmc2tk5qbqrwi refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_uhrzwgyn3q4jpdgnu4c37543ji refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_otgdpgkeyriavkbdoy5qffwm3u refused: the route is not an address route this import can take over (socket)
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_b7rr7bgtjgpgbdr57yjd4ld5iq refused: the route is not an address route this import can take over (no address)
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_35fv4sqxqkbqvvkqahrunrrdxy refused: the route is not an address route this import can take over (provisioned)
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_sprojlvk6ljjabytmj6cndwp4a refused: the route is not an address route this import can take over (kind static)
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_fcrjkhbkcvxgvk2ej6ko6477q4 refused: the route is not an address route this import can take over (backing)
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_jf53j7aszyk2t4aqdj7ol342lm refused: the route is not an address route this import can take over (tunnel)
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_r7kzwga44cxa3rgys4q7uhiliu refused: the route is not an address route this import can take over (caps)
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_qpybcqnrplnkbsi4j7wf33f2v4 refused: the route is not an address route this import can take over (platform)
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_aod3rgwvcj4hnwei5q6yiog644 refused: the route is not an address route this import can take over (canary)
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_z4tms5izwagyulfoaoxsgalbza refused: the route is not an address route this import can take over (kind sidecar)
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_yatqfj4nvkafaerw5upkrajwj4 refused: the route is not an address route this import can take over (region)
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_z6nohzzdxmtjhznoevw6bk7p6u refused: the route is not an address route this import can take over (fleet_box)
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_twtjgdqryew5jgmqzssjk22aiy refused: the route is not an address route this import can take over (hibernate)
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_ylwshckaxsw4sk27tzdgsjksoe refused: the route is not an address route this import can take over (claim_owner)
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_ucoycf234foen3v43rmexm54gq refused: this box does not run instances nested
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_37v6vrfbmvon6ytx23nablxxpa refused: this box does not run instances nested
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_awkikoyzj2weew7ec2g3dbtxsa refused: claim control is on for this box
2026/10/24 21:05:48 provision: a.shop.example.com: swapped for import sd_oh2xfs4p4mjzan6msj2czob6zi (the original route is journaled)
2026/10/24 21:05:48 provision: a.shop.example.com: swapped for import sd_unuzielekzevcuytm7ra44z56y (the original route is journaled)
2026/10/24 21:05:48 provision: a.shop.example.com: import deferred: this box cannot read the legacy route assignments
2026/10/24 21:05:48 provision: a.shop.example.com: import deferred: the legacy route assignments could not be read: store down
2026/10/24 21:05:48 provision: a.shop.example.com: not swapping for import sd_7wscn3wu7d5apqttwlzus3pkqu: its verify hash is not a sha256
2026/10/24 21:05:48 provision: a.shop.example.com: not swapping for import sd_ryaldzk7nnxn6a3rivdvhr4cba: its verify hash is not a sha256
2026/10/24 21:05:48 provision: a.shop.example.com: not swapping for import sd_v34tyzit7ew54vwxlaaa4oxacq: its verify hash is not a sha256
2026/10/24 21:05:48 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:05:48 provision: A.shop.example.com/..: not swapping for import sd_tzrqmvwk7ozquygcsxijp7lusi: its host or seed id is malformed (seeds: not a host)
2026/10/24 21:05:48 provision: a.shop.example.com: not swapping for import sd_lrjvzjimgarfec4cjz4eu23vwy: its record does not describe a nested, hibernating instance
2026/10/24 21:05:48 provision: a.shop.example.com: not swapping for import sd_up7tkaavttkrkphbabwk4nf4pq: its record does not describe a nested, hibernating instance
2026/10/24 21:05:48 provision: a.shop.example.com: not swapping for import sd_z5sh7klnjxcn4kkdzx6vkekzby: its record does not describe a nested, hibernating instance
2026/10/24 21:05:48 provision: a.shop.example.com: not swapping for import sd_jlz6uazvzhlhhy3hnatug3i6ru: its record does not describe a nested, hibernating instance
2026/10/24 21:05:48 provision: a.shop.example.com: import deferred: the box's layout intent could not be read: store down
2026/10/24 21:05:48 provision: a.shop.example.com: swapped for import sd_in6mjzzwykgizoskfvxubs7xoy (the original route is journaled)
2026/10/24 21:05:48 provision: a.shop.example.com: import deferred: the box's nested probe did not answer: ready probe timed out
2026/10/24 21:05:48 provision: a.shop.example.com: swapped for import sd_ejlmk2v4h4zmjgcehxcr45pm4i (the original route is journaled)
2026/10/24 21:05:48 provision: a.shop.example.com: swapped for import sd_4jznfdxgrlokmz4dzumlfbmtbm (the original route is journaled)
2026/10/24 21:05:48 provision: a.shop.example.com: import deferred: the route is held by operation op_1
2026/10/24 21:05:48 provision: dry-run: would consider swapping a.shop.example.com for import sd_iylm2a3wbojzewvl5kd5qihi7a
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_vps5mmvrr6cek567by47ng7oym rolled back to its original route
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_vps5mmvrr6cek567by47ng7oym: 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:05:48 provision: a.shop.example.com: import sd_vps5mmvrr6cek567by47ng7oym is cleaned up and its journal row retired
2026/10/24 21:05:48 provision: a.shop.example.com: import sd_yfoompbfpjanwtvf6chemr2axu left alone: the import journal holds seed sd_bgef46h7yvaoom3lyrxrgle674 at swapped
2026/10/24 21:05:48 provision: a.shop.example.com: not minting import sd_mayljqpr2xhkxrgprbt7y6p4c4: it is swapped but not committed, and only its swap makes its row
2026/10/24 21:05:48 provision: a.shop.example.com: not minting import sd_bgb3c7adp4fnw2ffgyxjqwjwlq: it is placed but not committed, and only its swap makes its row
2026/10/24 21:05:48 provision: a.shop.example.com: swapped for import sd_oyqe72zfkgmj6tvumlgc23cpqm (the original route is journaled)
2026/10/24 21:05:48 provision: a.shop.example.com: not minting import sd_oyqe72zfkgmj6tvumlgc23cpqm: it is swapped but not committed, and only its swap makes its row
2026/10/24 21:05:48 provision: a.shop.example.com: not minting import sd_oyqe72zfkgmj6tvumlgc23cpqm: it is placed but not committed, and only its swap makes its row
2026/10/24 21:05:48 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 21:05:48 provision: removed retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/24 21:05:48 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:05:48 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:05:48 provision: converged sidecar bot.eleven.bac.sidecar.internal args ["sidecar","run"] -> ["worker","run"]
2026/10/24 21:05:48 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:05:48 provision: converged sidecar bot.eleven.bac.sidecar.internal ceilings 300/3600 -> 60/120
2026/10/24 21:05:48 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:05:48 provision: converged sidecar bot.eleven.bac.sidecar.internal channel stable -> canary/eleven
2026/10/24 21:05:48 provision: converged sidecar bot.eleven.bac.sidecar.internal environment "other" -> "relay"
2026/10/24 21:05:48 provision: converged sidecar bot.eleven.bac.sidecar.internal hibernate true -> false
2026/10/24 21:05:48 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: read failed: failStore: reads disabled under apps/bac/eleven/sidecars/
2026/10/24 21:05:48 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:05:48 provision: not removing sidecar bot.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/24 21:05:48 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: empty channel
2026/10/24 21:05:48 provision: skipping sidecar record apps/bac/eleven/sidecars/held.json: empty channel
2026/10/24 21:05:48 provision: not removing sidecar held.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/24 21:05:48 provision: removed retired sidecar route old.eleven.bac.sidecar.internal (record gone)
2026/10/24 21:05:48 provision: bac/eleven has sidecar records but no sidecars manifest — not minting
2026/10/24 21:05:48 provision: bac/eleven is in the trash — not minting sidecar routes for it
2026/10/24 21:05:48 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:05:48 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:05:48 provision: minted sidecar route hub.relay.bac.sidecar.internal (app "relay" acct "bac" args ["relay"])
2026/10/24 21:05:48 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:05:48 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:05:48 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:05:48 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:05:48 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:05:48 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:05:48 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:05:48 provision: removed retired sidecar route bot.eleven.bac.sidecar.internal (record gone)
2026/10/24 21:05:48 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:05:48 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:05:48 provision: skipping sidecar record apps/bac/relay/sidecars/hub.json: read failed: failStore: reads disabled under apps/bac/relay/sidecars/
2026/10/24 21:05:48 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:05:48 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 21:05:48 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:05:48 provision: dry-run: would remove retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/24 21:05:48 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:05:48 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:48 provision: converged acme.go.tito.io update settings "{\"updates\":\"manual\",\"channel\":\"stable\"}" -> ""
2026/10/24 21:05:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:49 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/24 21:05:49 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/24 21:05:49 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/24 21:05:49 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 21:05:49 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/24 21:05:49 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/24 21:05:49 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/24 21:05:49 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:05:49 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 21:05:49 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 21:05:49 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 21:05:49 provision: record view: re-reading apps/bqc/shop failed: retrying on the next refresh
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: listing apps/bqc/shop/instances/: context canceled — its records are unseen this pass
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: record view: change index unusable (get refused): walking
2026/10/24 21:05:49 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:05:49 provision: record view: re-reading apps/bqc/shop failed: retrying on the next refresh
2026/10/24 21:05:49 provision: listing apps/bqc/shop/instances/: list refused — its records are unseen this pass
2026/10/24 21:05:49 provision: listing apps/bqc/shop/instances/: list refused — its records are unseen this pass
2026/10/24 21:05:49 provision: an app's records could not be listed: they are skipped
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping accounts/bqd/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/24 21:05:49 provision: skipping accounts/bqd/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/24 21:05:49 provision: skipping accounts/bqd/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/24 21:05:49 provision: record view: re-reading accounts/bqd failed: retrying on the next refresh
2026/10/24 21:05:49 provision: skipping accounts/bqd/account.json: read failed: list refused
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: minted instance route one.example.com (app "shop" acct "bum")
2026/10/24 21:05:49 provision: removed retired instance route one.example.com (record gone)
2026/10/24 21:05:49 provision: minted instance route one.example.com (app "shop" acct "bum")
2026/10/24 21:05:49 provision: skipping record apps/bum/shop/instances/one.example.com.json: empty channel
2026/10/24 21:05:49 provision: not removing one.example.com: its record exists but could not be read cleanly this pass
2026/10/24 21:05:49 provision: skipping record apps/bum/shop/instances/one.example.com.json: empty channel
2026/10/24 21:05:49 provision: minted instance route one.example.com (app "shop" acct "bum")
2026/10/24 21:05:49 provision: not removing one.example.com: its record exists but could not be read cleanly this pass
2026/10/24 21:05:49 provision: removed retired instance route one.example.com (record gone)
2026/10/24 21:05:49 provision: record view: change index unusable (context deadline exceeded): walking
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 21:05:49 provision: record view: change index unusable (context deadline exceeded): the walk records no generations
2026/10/24 21:05:49 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
--- FAIL: TestPlan14RootReadCensus (21.73s)
plan14_root_reads_test.go:1462: root read census: 21 discrepancies
changed registry schema
changed root read internal/provision/reconcile.go:RouteFor; review class, task, sites and digest
changed root read internal/provision/reconcile.go:convergeOwned; review class, task, sites and digest
changed root read internal/registry/registry.go:Registry.Fingerprint; review class, task, sites and digest
changed root read internal/registry/registry.go:Registry.SnapshotFingerprint; review class, task, sites and digest
changed root read internal/registry/registry.go:Registry.Upsert; review class, task, sites and digest
changed root read internal/registry/registry.go:Registry.migrate; review class, task, sites and digest
changed root read internal/registry/registry.go:routeArgs; review class, task, sites and digest
changed root read internal/registry/registry.go:scanRoute; review class, task, sites and digest
changed root read internal/registry/remote_dispatch.go:Registry.dispatchRemote; review class, task, sites and digest
changed root source envelope internal/provision
changed root source envelope internal/registry
unclassified root read internal/provision/provision.go:NewAssetGen file:Read@66
unclassified root read internal/registry/registry.go:Registry.SetAssets file:Exec@239,registry:remote@106,registry:remote@76,registry:sql@239,whole:remoteClient@108,whole:remoteClient@78
changed legacy declaration internal/provision/reconcile.go:convergeOwned
changed legacy declaration internal/registry/registry.go:Registry.Fingerprint
changed legacy declaration internal/registry/registry.go:Registry.SnapshotFingerprint
changed legacy declaration internal/registry/registry.go:Registry.migrate
changed legacy declaration internal/registry/registry.go:scanRoute
changed reclassified declaration internal/registry/registry.go:Registry.Upsert
changed reclassified declaration internal/registry/remote_dispatch.go:Registry.dispatchRemote
FAIL
FAIL github.com/carlosframework/platform/internal/provision 30.734s
ok github.com/carlosframework/platform/internal/publicrelease 0.014s
? github.com/carlosframework/platform/internal/regionname [no test files]
ok github.com/carlosframework/platform/internal/registry 5.836s
ok github.com/carlosframework/platform/internal/relay 7.240s
ok github.com/carlosframework/platform/internal/release 26.259s
ok github.com/carlosframework/platform/internal/rollout 3.798s
ok github.com/carlosframework/platform/internal/rolloutwords 0.008s
ok github.com/carlosframework/platform/internal/rootaws 0.007s
ok github.com/carlosframework/platform/internal/rootparticipation 0.064s
ok github.com/carlosframework/platform/internal/rootstate 0.031s
ok github.com/carlosframework/platform/internal/runs 0.489s
ok github.com/carlosframework/platform/internal/s3compat 0.007s
ok github.com/carlosframework/platform/internal/safefile 0.007s
ok github.com/carlosframework/platform/internal/schedule 2.767s
ok github.com/carlosframework/platform/internal/seeds 0.013s
ok github.com/carlosframework/platform/internal/sim/engines 2.578s
ok github.com/carlosframework/platform/internal/sim/hostlife 10.640s
ok github.com/carlosframework/platform/internal/sim/litestreamfacts 4.011s
ok github.com/carlosframework/platform/internal/status 0.083s
ok github.com/carlosframework/platform/internal/steering 0.009s
ok github.com/carlosframework/platform/internal/stopevidence 0.298s
ok github.com/carlosframework/platform/internal/svcrole 0.002s
ok github.com/carlosframework/platform/internal/telemetry 0.009s
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.007s
ok github.com/carlosframework/platform/internal/version 0.002s
ok github.com/carlosframework/platform/internal/vet 1.703s
FAIL
=== internal_console@0 (87 s)
ok github.com/carlosframework/platform/internal/console 85.319s
=== internal_console@1 (45 s)
ok github.com/carlosframework/platform/internal/console 43.168s
=== internal_console@2 (41 s)
ok github.com/carlosframework/platform/internal/console 40.004s
=== internal_console@3 (41 s)
ok github.com/carlosframework/platform/internal/console 39.274s
=== internal_console@4 (44 s)
ok github.com/carlosframework/platform/internal/console 42.504s
=== internal_console@5 (42 s)
ok github.com/carlosframework/platform/internal/console 40.222s
=== internal_console@6 (38 s)
ok github.com/carlosframework/platform/internal/console 36.224s
=== internal_console@7 (47 s)
ok github.com/carlosframework/platform/internal/console 45.456s
=== root@0 (101 s)
ok github.com/carlosframework/platform 99.627s
=== root@1 (93 s)
ok github.com/carlosframework/platform 91.296s
=== root@2 (92 s)
ok github.com/carlosframework/platform 90.644s
FAILED: rest
make: *** [Makefile:19: test] Error 1
amadan: step gate failed: exit status 2
amadan: job failed at step gate — its output is above, not at the tail of this log
diff --git a/internal/provision/reconcile_test.go b/internal/provision/reconcile_test.go| index 53e01a789..4427454c6 100644 |
| --- a/internal/provision/reconcile_test.go |
| +++ b/internal/provision/reconcile_test.go |
| @@ -3687,13 +3687,13 @@ func TestListAllRecordsStrictKeepsFailingClosed(t *testing.T) { |
| func TestRouteForCarriesAssets(t *testing.T) { |
| off := false |
| on := true |
| - rec := Record{Host: "shop.example.com", App: "web", Account: "abc", Channel: "stable", Assets: &off, AssetGen: "0123456789abcdef"} |
| + rec := Record{Host: "shop.example.com", App: "shop", Account: "abc", Channel: "stable", Assets: &off, AssetGen: "0123456789abcdef"} |
| got := RouteFor(rec, "/data", "seed", false, nil) |
| if !got.AssetsOff || got.AssetGen != "0123456789abcdef" { |
| t.Fatalf("AssetsOff = %v, AssetGen = %q, want true and the record's token", got.AssetsOff, got.AssetGen) |
| } |
| for name, a := range map[string]*bool{"absent": nil, "true": &on} { |
| - rec := Record{Host: "shop.example.com", App: "web", Account: "abc", Channel: "stable", Assets: a} |
| + rec := Record{Host: "shop.example.com", App: "shop", Account: "abc", Channel: "stable", Assets: a} |
| got := RouteFor(rec, "/data", "seed", false, nil) |
| if got.AssetsOff || got.AssetGen != "" { |
| t.Errorf("%s: AssetsOff = %v, AssetGen = %q, want false and empty", name, got.AssetsOff, got.AssetGen) |
| @@ -3705,27 +3705,27 @@ func TestRouteForCarriesAssets(t *testing.T) { |
| // after mint converges onto the owned row within one pass through |
| // convergeOwned, touching only the two asset columns, in both directions. |
| func TestReconcileConvergesAssets(t *testing.T) { |
| - s, sqid := setup(t) |
| - rec := acmeRecord(sqid) |
| + s, sqid := shopSetup(t) |
| + rec := shopRecord(sqid) |
| if err := CreateRecord(ctx, s, rec); err != nil { |
| t.Fatal(err) |
| } |
| reg := regWith(t) |
| - cfg := ReconcileConfig{Region: "ie", Pools: []string{"tito"}, DataDir: "/data"} |
| + cfg := ReconcileConfig{Region: "ie", DataDir: "/data"} |
| if err := Reconcile(ctx, s, reg, cfg); err != nil { |
| t.Fatal(err) |
| } |
| - before := *mustGet(t, reg, "acme.go.tito.io") |
| + before := *mustGet(t, reg, "a.shop.example.com") |
| if before.AssetsOff || before.AssetGen != "" { |
| t.Fatalf("minted AssetsOff = %v, AssetGen = %q, want false and empty", before.AssetsOff, before.AssetGen) |
| } |
| rec.AssetGen = "0123456789abcdef" |
| - putReplace(t, s, RecordKey(sqid, "tito", rec.Host), mustJSON(t, rec)) |
| + putReplace(t, s, RecordKey(sqid, "shop", rec.Host), mustJSON(t, rec)) |
| if err := Reconcile(ctx, s, reg, cfg); err != nil { |
| t.Fatal(err) |
| } |
| - after := *mustGet(t, reg, "acme.go.tito.io") |
| + after := *mustGet(t, reg, "a.shop.example.com") |
| if after.AssetGen != "0123456789abcdef" || after.AssetsOff { |
| t.Errorf("AssetGen = %q, AssetsOff = %v, want the new token and false", after.AssetGen, after.AssetsOff) |
| } |
| @@ -3736,31 +3736,31 @@ func TestReconcileConvergesAssets(t *testing.T) { |
| // A purge: a fresh token replaces the old one. |
| rec.AssetGen = "fedcba9876543210" |
| - putReplace(t, s, RecordKey(sqid, "tito", rec.Host), mustJSON(t, rec)) |
| + putReplace(t, s, RecordKey(sqid, "shop", rec.Host), mustJSON(t, rec)) |
| if err := Reconcile(ctx, s, reg, cfg); err != nil { |
| t.Fatal(err) |
| } |
| - if got := mustGet(t, reg, "acme.go.tito.io").AssetGen; got != "fedcba9876543210" { |
| + if got := mustGet(t, reg, "a.shop.example.com").AssetGen; got != "fedcba9876543210" { |
| t.Errorf("AssetGen = %q after a purge, want the fresh token", got) |
| } |
| // The opt-out reaches the row, and clearing it reaches the row too. |
| off := false |
| rec.Assets = &off |
| - putReplace(t, s, RecordKey(sqid, "tito", rec.Host), mustJSON(t, rec)) |
| + putReplace(t, s, RecordKey(sqid, "shop", rec.Host), mustJSON(t, rec)) |
| if err := Reconcile(ctx, s, reg, cfg); err != nil { |
| t.Fatal(err) |
| } |
| - if got := mustGet(t, reg, "acme.go.tito.io"); !got.AssetsOff || got.AssetGen != "fedcba9876543210" { |
| + if got := mustGet(t, reg, "a.shop.example.com"); !got.AssetsOff || got.AssetGen != "fedcba9876543210" { |
| t.Errorf("AssetsOff = %v, AssetGen = %q, want true and the token kept", got.AssetsOff, got.AssetGen) |
| } |
| rec.Assets = nil |
| rec.AssetGen = "" |
| - putReplace(t, s, RecordKey(sqid, "tito", rec.Host), mustJSON(t, rec)) |
| + putReplace(t, s, RecordKey(sqid, "shop", rec.Host), mustJSON(t, rec)) |
| if err := Reconcile(ctx, s, reg, cfg); err != nil { |
| t.Fatal(err) |
| } |
| - if got := mustGet(t, reg, "acme.go.tito.io"); got.AssetsOff || got.AssetGen != "" { |
| + if got := mustGet(t, reg, "a.shop.example.com"); got.AssetsOff || got.AssetGen != "" { |
| t.Errorf("AssetsOff = %v, AssetGen = %q, want both cleared", got.AssetsOff, got.AssetGen) |
| } |
| } |
diff --git a/internal/registry/registry.go b/internal/registry/registry.go| index ffa2cf304..3bc530905 100644 |
| --- a/internal/registry/registry.go |
| +++ b/internal/registry/registry.go |
| @@ -1141,7 +1141,10 @@ func (r *Registry) Delete(host string) error { |
| // `assets_off` and `asset_gen` travel as one pair: an incoming literal that |
| // names a generation replaces both, one that names none (a bare re-add that |
| // knows nothing of assets) keeps both, so it cannot silently switch an |
| -// opted-out instance back on. SetAssets is the door that can clear them. |
| +// opted-out instance back on. SetAssets is the door that can clear them. Like |
| +// update_settings below, they are kept only while the row's tenant (account, |
| +// app) stays the same: a replacement tenant takes the incoming values, empty |
| +// included, and never inherits the previous tenant's generation or opt-out. |
| // `update_settings` and `build_state` keep an existing value only while the |
| // row's tenant (effective account, app) stays the same. An Upsert that moves |
| // the hostname to another tenant takes the incoming values, empty included: |
| @@ -1233,8 +1236,10 @@ ON CONFLICT(host) DO UPDATE SET |
| build_state=CASE WHEN `+tenantChangedSQL+` THEN excluded.build_state |
| WHEN excluded.build_state = '' THEN routes.build_state ELSE excluded.build_state END, |
| seed_source=CASE WHEN excluded.seed_source = '' THEN routes.seed_source ELSE excluded.seed_source END, |
| - assets_off=CASE WHEN excluded.asset_gen = '' THEN routes.assets_off ELSE excluded.assets_off END, |
| - asset_gen=CASE WHEN excluded.asset_gen = '' THEN routes.asset_gen ELSE excluded.asset_gen END |
| + assets_off=CASE WHEN `+tenantChangedSQL+` THEN excluded.assets_off |
| + WHEN excluded.asset_gen = '' THEN routes.assets_off ELSE excluded.assets_off END, |
| + asset_gen=CASE WHEN `+tenantChangedSQL+` THEN excluded.asset_gen |
| + WHEN excluded.asset_gen = '' THEN routes.asset_gen ELSE excluded.asset_gen END |
| WHERE routes.claim_incarnation=excluded.claim_incarnation AND routes.claim_stamp=excluded.claim_stamp |
| AND routes.claim_owner=excluded.claim_owner AND routes.claim_row_id=excluded.claim_row_id`, |
| routeArgs(normalizeRoute(t))...) |
diff --git a/internal/registry/registry_test.go b/internal/registry/registry_test.go| index 5ec2d1103..e99734e1a 100644 |
| --- a/internal/registry/registry_test.go |
| +++ b/internal/registry/registry_test.go |
| @@ -3096,3 +3096,50 @@ func TestSnapshotFingerprintSeesAssetColumns(t *testing.T) { |
| t.Fatal("SnapshotFingerprint after clearing differs from the original") |
| } |
| } |
| + |
| +// TestUpsertAssetColumnsDoNotSurviveTenantChange: the keep-when-omitted rule |
| +// holds only for the same tenant. A literal that moves the hostname to |
| +// another account or another app takes the incoming asset columns, empty |
| +// included, so the new tenant starts with an empty generation (which |
| +// publishes nothing) and no opt-out. |
| +func TestUpsertAssetColumnsDoNotSurviveTenantChange(t *testing.T) { |
| + for name, next := range map[string]Route{ |
| + "another account": {Host: "shop.example.com", Kind: "instance", Status: "ready", Account: "xyz", App: "shop"}, |
| + "another app": {Host: "shop.example.com", Kind: "instance", Status: "ready", Account: "abc", App: "blog"}, |
| + } { |
| + t.Run(name, func(t *testing.T) { |
| + reg := openTestRegistry(t) |
| + if err := reg.Upsert(Route{Host: "shop.example.com", Kind: "instance", Status: "ready", Account: "abc", App: "shop", AssetsOff: true, AssetGen: "0123456789abcdef"}); err != nil { |
| + t.Fatal(err) |
| + } |
| + if err := reg.Upsert(next); err != nil { |
| + t.Fatal(err) |
| + } |
| + got, err := reg.Get("shop.example.com") |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + if got.AssetsOff || got.AssetGen != "" { |
| + t.Fatalf("AssetsOff = %v, AssetGen = %q, want false and empty: the replacement tenant must not inherit them", got.AssetsOff, got.AssetGen) |
| + } |
| + }) |
| + } |
| + // The same tenant re-upserting with no generation still keeps both. |
| + reg := openTestRegistry(t) |
| + base := Route{Host: "shop.example.com", Kind: "instance", Status: "ready", Account: "abc", App: "shop", AssetsOff: true, AssetGen: "0123456789abcdef"} |
| + if err := reg.Upsert(base); err != nil { |
| + t.Fatal(err) |
| + } |
| + same := base |
| + same.AssetsOff, same.AssetGen = false, "" |
| + if err := reg.Upsert(same); err != nil { |
| + t.Fatal(err) |
| + } |
| + got, err := reg.Get("shop.example.com") |
| + if err != nil { |
| + t.Fatal(err) |
| + } |
| + if !got.AssetsOff || got.AssetGen != "0123456789abcdef" { |
| + t.Fatalf("AssetsOff = %v, AssetGen = %q, want the same tenant's values kept", got.AssetsOff, got.AssetGen) |
| + } |
| +} |