How the resolver's commands refuse
How the resolver's commands refuse
stado resolver resolve, status, snapshot, channels, accept,
remembered show|forget, relay, follow and api reassign refuse with
the causes of stado.resolver (stado errors show stado.resolver prints
each with its fix), beside the registry read's and write's, the service
directory's and the file operations'. A registry read through the authority
that is held, standing or unanswered is registry-unreachable; an authority
that answers with a refusal is registry-authority-refused.
| cause | when | exit |
|---|---|---|
service-invalid |
SERVICE is not one logical name or stado://service/<name> |
2 |
host-unregistered |
no target carries this host's name, or more than one does | 1 |
directory-undeclared |
no service directory, one that does not read, or an authority this host cannot read it from | 1 |
resolver-undeclared |
status --target or api reassign --target names a target that declares no resolver |
1 |
snapshot-invalid |
the registry fails its validation or declares no directory | 1 |
state-unlocated |
no home and no STADO_RESOLVER_STATE_FILE |
1 |
not-published |
no resolver runs here, or none published its state | 69 |
publisher-stale |
the resolver that published has stopped, or holds a generation past max-stale | 69 |
no-api |
the running resolver is an older Stado without an API address | 1 |
silent |
the resolver's API did not answer, or answered with an error | 69 |
not-authority |
snapshot asked of a host whose resolver holds a copy |
1 |
channels-unlocated |
no place to read the channel publication from | 1 |
channels-malformed |
the channel publication is not the resolver's list | 1 |
accept-unlocated |
no place beside the resolver's state to keep an acceptance | 1 |
copy-unreadable |
the last-known-good registry copy cannot be read or is not JSON | 1 |
relay-bind-invalid |
relay --bind is off loopback or no host:port; refused before anything is read |
2 |
relay-endpoint-invalid |
the directory declares the service's endpoint without a host or a port | 1 |
relay-no-path |
the service's host carries no SSH connection path to relay over | 1 |
relay-host-unreached |
the fleet channel could not open an SSH session to the service's host | 69 |
relay-bind-taken |
this host does not let the relay bind --bind |
1 |
relay-listener-failed |
the system failed the relay's listener | 69 |
relay-owner-unwatched |
the relay's standard input cannot be read, so its owner cannot be watched | 69 |
target-mismatch |
the release agent asked for a target the registry does not name as this host | 1 |
follow-not-listening |
follow of a resolver still starting, binding no listener |
69 |
follow-pid-invalid |
the resolver published a pid this host cannot signal | 1 |
follow-signal-refused |
the system refused to deliver the read request to the resolver | 69 |
follow-watch-failed |
the change notification on the resolver's state file failed | 69 |
follow-not-held |
the resolver read the registry at the request and does not hold what was asked | 69 |
follow-wait-ended |
the wait for the resolver ended without its answer | 69 |
follow-upstream-refused |
the resolver this host reads from did not follow its own registry | 69 |
tests/resolver/causes.rs provokes seven of them through the real binary in a
home and store of its own, follow with no resolver running among them;
tests/resolver/relay.rs refuses a --bind off loopback with no registry at
all, and an address already held.
Source: this website