The layers every command reads through

Failure catalogues

Most commands meet the same few layers, and each declares its own causes once, raised by the one conversion every command's failure passes through, whichever command met it:

functionality what it is its causes
stado.store the object store, whatever its backend conflict, missing, path-escape, unauthorized, refused, rate-limited, down, timeout, held, document-malformed, configuration, protocol, local-denied, local-full, local-read-only
stado.vault Skarbiec, as administrator or under a consumer's grant url-invalid, consumer-unset, grant-file-unset, grant-file-unreadable, grant-file-exposed, grant-file-empty, unreachable, timeout, held, unauthorized, refused, missing, rate-limited, down, no-role-holder, deployment, identity, stored-envelope, no-item-version
stado.config.read this machine's configuration file selected, not-object, invalid, denied, directory, not-text, unreadable
stado.config.change changing that file: read as it is now, validated, replaced whole (stado config set/unset/migrate, stado database, stado web plane) no-file, rejected
stado.files a file operation on this machine, named with what was done to which path missing, denied, directory, not-directory, exists, full, read-only, not-text, link-loop, os-error
stado.registry.read the fleet registry's read, by every command that reads it registry-missing, registry-unreachable, registry-authority-refused, registry-timeout, registry-auth-refused, registry-invalid, registry-store-failed
stado.registry.write the fleet registry's write, by every command that changes it registry-moved, registry-write-refused, registry-write-unreachable, registry-write-timeout, registry-write-auth-refused, registry-write-failed, write-not-a-registry, write-deletes-keys, write-generation-backwards, write-generation-unchanged, write-empties-fleet, write-invalid, write-unit-rename, write-unconfirmed, write-directory-unadvanced, write-conflict
stado.services.resolve where a service is reached from here declaration, unknown-service, consumer-not-admitted, moving
stado.leases leases of provider resources conflict, value, corrupt
stado.profiles the declared profiles missing, invalid
stado.waits.register the register of waits, its holdings and the measured waits directory-unset, unlistable, misnamed, unreadable, writer-unknown, unremovable, uncreatable, unwritable, clock-before-epoch, record-malformed, id-invalid
stado.hosts the host a command names, resolved in the canonical registry by name, hostname or SSH host host-unregistered, host-not-local, host-no-destination, host-ambiguous
stado.clock this host's clock, for every expiry, lifetime and signature date clock-before-epoch
stado.machine the machine API's answers about jobs, their logs and artifacts not-found, log-reaped, no-artifacts, service-not-in-directory, unauthorized, forbidden, invalid-request, invalid-cursor, invalid-source-archive, idempotency-conflict, not-terminal, artifact-security, provider-disabled, service-endpoint-missing, request-in-progress, auth-unavailable, source-upload-failed, submit-failed, cancel-failed, hold-unavailable, hold-failed, service-directory-stale, internal-retryable, internal
stado.release.control the registry's release control plane, one product's policy and the host it rolls out to control-invalid, control-undeclared, target-ambiguous, product-untargeted, target-undeclared
stado.release.remote-file one file, its head or its tail read from a registry host, and a host's rollout state read-refused, answer-malformed, not-text, state-damaged
stado.actor the account and host a durable record says acted (a schedule, a pause, a quarantine release, an adoption) actor-unread
stado.gate admitting an operation that compiles or publishes by the operator's rulings, then waiting for this host's swap to fall under host.swap_ceiling_pct gate-refused, swap-unread
stado.process an installed program (Oko, git, cargo) run to its end program-absent, program-unstarted, program-failed
stado.release.loop the delivery queue stado release newest and stado serve --release-loop-root run: Oko's recorded repairs, the version step, the workspace and the branch watch executable-unnamed, checkout-unnamed, oko-unread, release-unread-by-oko, repairs-unnamed, version-unplanned, manifest-malformed, product-nonrelease, checkout-moved, checkout-dirty, version-unwritable, nothing-to-watch, watch-failed
stado.cloudflare.api the Cloudflare API reached with Stado-held credentials, and every answer by its class field-absent, token-malformed, accounts-differ, token-accounts, stored-id-unpathable, id-unpathable, name-not-dns, hostname-outside-zone, origin-invalid, origin-not-web, answer-unreadable, api-denied, api-missing, api-throttled, api-unavailable, api-refused, result-not-array, answer-field-missing, zone-absent, zone-ambiguous
stado.cloudflare.zone a zone's records moved into Cloudflare by stado dns delegate, and read back by undelegate zone-created-empty, nameservers-none, import-stopped-unavailable, import-stopped-refused, zone-not-held
stado.dns.registrar the registrar credential's fields and one command sent to the registrar's API credential-ungranted, credential-grant-unreachable, credential-field-missing, client-unbuilt, registrar-unreachable, registrar-denied, registrar-status, answer-unread, answer-not-document, request-refused, command-unanswered
stado.dns.zone a zone name and a record name read against it zone-invalid, zone-multi-level, name-unqualified, name-outside-zone, type-unwritable
stado.cloud.azure the operator's Azure session read from Stado-held credentials, and every Azure Resource Manager answer by its class role-unread, role-denied, session-field-missing, token-unread, exchange-denied, exchange-unavailable, exchange-refused, exchange-unreadable, arm-unreadable, arm-denied, arm-missing, arm-unavailable, arm-refused, arm-list-shapeless, principal-unnamed
stado.space.reclaim.local one disk reclaim pass on this machine, or its preview, under the janitor's lock workloads-uncounted
stado.change.git git run in a submit queue candidate's checkout, and its answers git-unrun, git-failed, remote-unnamed, fetch-failed, commit-unnamed, commit-absent, numstat-unread
stado.change.queue the submit queue's candidates, review rounds and pass locks on this machine record-unread, record-gone, candidate-unknown, candidate-ambiguous, state-unknown, round-session-invalid
stado.change.policy a change classified by the submit policy its product's catalog record declares catalog-unread, repository-unclaimed, policy-undeclared, manifest-mismatched, high-risk-unscoped
stado.credentials.launcher the credential launcher a host names or carries, run to read a secret launcher-named-absent, launcher-name-unread, launcher-absent, launcher-failed, launcher-unreadable
stado.market.vast stado market --provider vast: an offer's terms, the host's isolation, Vast.ai's answers, the kept earnings and payouts, and every readiness verdict that cannot earn price-disk-missing, contract-hours, host-unfit, vast-key, vast-denied, vast-unavailable, vast-refused, board-unoffered, record-unread, payout-form, serving-unmeasured, outside-price, sources-unreached, ready-vast-refused, ready-item-absent, ready-not-authorized, ready-no-channel, ready-unknown-down, ready-unknown, ready-not-isolated, ready-no-bandwidth
stado.market.peer stado market --provider stado and stado market peer: lending idle hosts to another Stado fleet peer-unnamed, vast-terms, peer-states-none, loop-terms, reading-unshaped, no-loop, no-offer, peer-declared, edit-nothing, peer-held, peer-answer, peer-absent, peer-request, peer-credential, peer-unreached, peer-local
stado.market.node stado market node: a network's own node run on an idle fleet host node-source-unknown, node-service-undeclared, node-deployment-unserved, node-declared, node-edit-nothing, node-running, node-loop-terms, node-target-undeclared, node-request, node-absent, node-refused
stado.market.handtohuman stado market --provider handtohuman: GPU-hours or residential egress offered through HandToHuman's own CLI handtohuman-resource-missing, handtohuman-resource-unsold, handtohuman-vast-terms, handtohuman-price, handtohuman-units, handtohuman-seller-undeclared, handtohuman-program-absent, handtohuman-program-failed, handtohuman-answer-unread, handtohuman-offer-unread, handtohuman-offered, handtohuman-not-offered, handtohuman-states-none
stado.credentials.host-vault a registry host's own Skarbiec vault over the host channel, read by credentials vault provision and host gates vault-refused, vault-shapeless, vault-owners, vault-unsealed, recipient-rekeyed
stado.workload.gui the gui-automation runner: its plan and the host's status gui-operation-unknown, gui-bundle-invalid, gui-password-undeclared, gui-status-failed
stado.workload.jeden placing a Jeden or OMP session: the workspace and its origin, the hosts with capacity, the queued job and the session list component-unsafe, origin-unread, task-missing, secret-unformed, no-host, no-host-fit, registry-stale, directory-unread, runtime-path, ssh-empty, session-signalled, job-none, store-unread
stado.workload.omp what OMP sessions add: the harness a host is given and the results read back workspace-home, harness-undeclared, harness-none, context-unread, harness-absent-here, harness-version-here, harness-host-version, builds-undeclared, version-unprefixed, asset-undeclared, http-client, checksums-unread, platform-unpublished, install-failed, install-unverified, results-not-session, registry-unread, results-host-gone, results-unread, results-file-unnamed
stado.workload.weles the Weles worker workloads: a browser task and its plan, captures, image inspection, the activity read, runtimes and recordings objective-unread, objective-empty, fills-both, sign-in-half, login-unallowed, sign-in-origin, url-invalid, url-not-web, login-item-invalid, login-action, replay-invalid, params-invalid, run-failed, runtime-unfit, mobile-undeclared, capture-plan, run-id-none, batch-empty, activity-unread, recordings-undeclared, recordings-relative, registry-unpublished, registry-shape, target-undeclared, launchd-unset
stado.resolver.serve the resolver stado serve runs on this host: its start, its bind, the store it reads and the tasks it serves startup-unloaded, signal-unheard, bind-invalid, bind-public, bind-taken, bind-changed, store-adapter-changed, lock-poisoned, task-ended, no-tasks
stado.placement.declarations what every placement command reads the same way: the registry's shape, its placement profiles and transactions, the service catalog, a named profile and the host it is placed on registry-shape, declarations-unread, catalog-unread, profile-unknown, profile-vanished, member-release-controlled, profile-split, destination-unsupported, unit-unnamed, placed-nowhere, placed-twice
stado.placement.transfer a placement profile carried from one host to another: the preflight, the loopback health probe, the units asked on each host, the states copied through this machine, the directory's cutover and the commit stores-uncarried, copy-running, unit-file-missing, state-missing, probe-unfit, probe-unhealthy, host-answer-unread, remote-failed, destination-unstaged, work-root-undeclared, destination-space-short, staging-space-short, home-unchanged, transaction-vanished
stado.placement.vault a move of the profile carrying the fleet vault: the source's Skarbiec write fence and the source's read of the vault at its new place answer-unread, fence-unsupported, unit-off-release, image-stale, probe-undeclared, read-at-unit, endpoint-undeclared, unreached
stado.placement.role a role of the host Stado process moved or taken: its route, the destination's address, the registry authority it may carry and the fence on its store role-undirected, not-host-role, already-served, route-moved, listen-port-unrecorded, host-process-undeclared, home-unread, last-good-missing, last-good-unread, here-unregistered, authority-elsewhere, authority-uncarried, authority-not-source, authority-unnamed, push-fence-unsupported, destination-store-silent, fence-answer-unread, store-fenced-elsewhere, not-authority, role-source-answers
stado.placement.evacuation a host emptied as one run: every step checked first, each run as Stado's own command, its schedules repinned and the registry read back hosts-same, nothing-placed, would-refuse, self-unnamed, step-failed, vault-move-refused, standby-unfinished, authority-silent-serves, authority-silent-check, still-placed, schedules-unread, repin-failed, repin-partial
stado.placement.authority the registry authority role taken on the host that runs stado placement move --authority, handed over or promoted from its own copy already-authority, none-named, promoted-invalid, own-path-unread, commit-unread, handover-partial
stado.placement.policy a host's Weles placement policy built from its registry declaration and installed by stado route placement weles-undeclared, target-unnamed, actions-refused, staged-path, apply-unreported
stado.host.channel the host channel every host command rides: the key from the owner key file or the credential store, the first declared SSH path that answers, the process carrying the command here, and the home, account home and file it reads back held-unread, held-key-unread, key-item-missing, key-store-unreachable, key-file-relative, key-file-not-regular, key-file-exposed, key-file-empty, no-reachable-path, carrier-failed, ssh-failed, home-unstated, account-name, account-home-unstated, file-unread
stado.host.target the registry target a host verb names (host user delete, host reboot, host gpu power), found among the canonical registry's targets target-unknown, registry-absent, targets-shape
stado.host.names a file name a host verb places under the host's home name-out-of-form
stado.host.stado the host's own installed Stado at ~/.stado/bin/stado, run with words this client sends stado-missing, stado-failed
stado.host.configuration one host's own Stado configuration read or written with its installed Stado, a publisher declaration refused before its item exists key-out-of-form, publisher-not-json, vault-path-unread, vault-path-empty, publisher-unminted, command-refused, readback-failed, older-show-refused, older-show-not-json, older-show-shape
stado.credentials.custody a host's own Skarbiec binary, vault file and GnuPG home, found from what the host declares and reports config-not-json, vault-undeclared, gnupg-unread, gnupg-empty, registry-unread, active-unavailable, active-not-json, active-field-missing, active-identity, active-path
stado.host.report the report a host answered with, judged by the one status that means it did what the command asked report-not-ok
stado.host.delivery one file or one secret delivered owner-only into a host account's home, checked by its checksum on the host before it takes its name dir-unprepared, copy-unstarted, destination-out-of-form, copy-failed, unverified, uncountable, secret-size, secret-home, secret-uninstalled
stado.host.run.sync a directory or one file copied between this machine and a host over the Stado SSH route, as placement transfer copies a state remote-unclean, copy-failed
stado.host.run.area a run directory made in a host's run area, every directory down to it owner-only and this account's, a tree copied into it, and the run removed again run-unmade, run-unnamed, removal-unreported, removal-report-malformed
stado.host.run.attached a delivered program run on a host with this process's input, output and error attached, and the signals this process receives passed on channel-incomplete, output-lost, signal-undelivered
stado.host.run.build a kompilator build or a declared quality gate of one committed revision, run on a host with room for it, and the binaries brought back git-unstarted, git-failed, checkout-unfound, commit-absent, manifest-uncommitted, export-failed, volume-unmeasured, room-short, volume-full, artifact-unnamed, artifact-unread, gate-argv
stado.host.beacon.api the scoped host-health API a beacon is published through, with the bearer from an owner-only file or from Skarbiec setting-missing, setting-out-of-form, token-file-unsafe, role-item-missing, role-token-empty
stado.repair.release-state the repair step that returns a host's drifted binaries to the versions its target declares target-vanished, version-undeclared
stado.repair.skarbiec the repair step that recovers a host's Skarbiec and, for a crypto repair, the bound it must stay within payload-failed, bound-undeclared, bound-unread
stado.repair.link the repair step that restores a host's link to the object API its beacon publishes through, proved by a fresh beacon diagnosis-uncoded, diagnosis-unrepaired, authority-undeclared, beacon-stale
stado.repair.object-api the repair step that recovers a host's object API with the fixed program its own Stado runs object-api-unrecovered
stado.repair.release-store the repair step that returns one release-catalog coordinate in a host's stores to its managed account, with the host's own Stado product-out-of-form, store-unrepaired
stado.repair.agent-skarbiec the repair step that points a host's agent at the Skarbiec the service directory places for it broker-undeclared, agent-config-unread
stado.repair.verifier the repair steps that reconcile the object, release or service verifier grant from the declarations this machine and the host hold alike local-declaration-invalid, declaration-empty, host-declaration-unread, host-item-missing, declarations-differ
stado.repair.verifier-grant one verifier's grant on a host: the items playing its declared roles, the shadows of authoritative items, every other read the grant holds kept environment-unread, file-missing, grant-missing, grant-expiry-unread, grant-expired, vault-answer-unread, role-unplayed, source-absent, source-unmanaged, shadow-unverified, grant-unreconciled, metadata-unavailable
stado.service.managed how every stado service verb finds what it acts on: the host it is given or a heuristic names, and the managed service the registry declares there; and a verb that ran on several hosts and failed on some host-unnamed, heuristic-unmatched, unmanaged-there, unmanaged, hosts-failed
stado.service.lifecycle a managed unit withdrawn by service retire or remove under the mutation lease the autonomy reconciler honours, and its directory routes handed over or withdrawn lease-held, lease-taken, lease-unreleased, recovery-carried, stop-failed, routes-unread
stado.service.env one key of a managed unit's environment, named by env show, set and unset, and the value the host holds after a write key-out-of-form, value-uncounted
stado.service.secret.field the one Skarbiec field secret sync, bearer sync and auth check deliver or check field-empty
stado.service.grant.lifetime the lifetime grant sync and grant mint give a minted grant ttl-not-positive
stado.service.grant.declared the grants a service's consumers declare in the service directory, read by grant show and grant mint service-undeclared, consumer-undeclared, no-grants
stado.host.account.password the host account password a privileged step reads, through the broker and then this machine's owner vault: every privileged service lifecycle step, retirement and GUI automation password-unread
stado.release.source the commit a release or build is made of, read out of its checkout by git, and its committed tree snapshotted as files: release submit, release changes, build git-failed, git-answer-unread, source-dirty, commit-unnamed, source-not-files
stado.release.provenance the released-surface baseline and published diff a source snapshot carries, checked against the tags origin serves baseline-unread, tag-not-served, tag-unresolved, tag-moved, ancestry-unread, tag-commit-absent
stado.release.record the durable records of builds and release runs, the run index and the immutable objects written once for them state-raced, record-unread, immutable-differs, run-object-unread, index-unread
stado.release.run a recorded release run driven through its build, publication, delivery and promotion, by release submit, release resume and the release agent run-uncontinuable, build-gone, platform-failed, platform-unrecorded
stado.release.jobs each platform's build job of a release or build: the saved worker request, the queue, the pinned inputs, the builder chosen and how the job ended request-unread, queue-paused, input-unlike, no-job-returned, job-not-ended, receipt-unread, no-builder, builder-unnamed, secrets-unlisted, secrets-unheld, build-platform-gone, queue-record-unread
stado.release.publication the signing key a release is published under, the rollback compatibility it declares, and each built platform written to its immutable coordinate control-undeclared, signing-key-unread, signing-key-absent, signing-key-invalid, key-untrusted, rollback-undeclared, build-job-failed, job-output-unread, receipt-unlike, coordinate-unread, coordinate-foreign
stado.release.placement where a release delivers, frozen the first time it delivers and read by every later pass and release redeliver, and the deliveries queued there placement-altered, placement-lost, destinations-invalid, predecessor-unknown, platform-unplaced, destination-unused, delivery-name-ambiguous, delivery-not-queued, delivery-failed
stado.release.promotion promoting a published release into the registry's desired state and reading where each rollout target stands policy-gone, desired-other, run-incomplete, service-unplaced, status-unread, target-unreached, target-diverged, receipt-malformed

The layer's own sentence is what the refusal says it observed: a store failure names the object or file and the backend's or the operating system's answer, a registry that does not parse names the store it was read from. A failure no declaration covers yet is said as before, unclassified, and stado errors check keeps naming the functionality that still owes it. stado errors show <functionality> prints every cause with its fix and the test that provokes it.

Source: this website