Skip to main content
Version: v0.1.0

Status and failure vocabulary

Every stable string an API consumer or a monitoring rule is allowed to branch on. Branch on these, never on a message.

Four states

StateMeaning
healthyall required evidence in the stated scope was collected, and no structural problem was found
warningevidence is complete enough to identify a non-fatal or provisional problem
unhealthycomplete evidence identifies a definite structural failure
unknownevidence is missing, unsupported, incomplete, truncated, stale beyond policy, or failed to load

Rollup rules are in the evidence model.

Completeness

ValueMeaning
completediscovery and every required listing finished
incompletea listing did not finish, or a safety ceiling was reached
no-completed-scanno complete generation exists yet

Failure categories

The redacted vocabulary shared by logs, HTTP output, and the evidence API. An absent failure is null, never unknown.

CategoryTypical cause
canceledshutdown or a canceled request context
timeoutSTORE_REQUEST_TIMEOUT elapsed
invalid_configurationconfiguration rejected at or after startup
authenticationthe credential was not accepted
authorizationthe credential is valid but not permitted on the prefix
throttledprovider rate limiting
unavailableendpoint unreachable, wrong region, transport failure
not_foundthe prefix or object was absent
incompatible_formatthe repository does not match the selected format
safety_limita bounded ceiling was reached
unknownnothing safe could be established

No category ever carries an upstream message.

Backup classifications

ClassificationStateAnchor?
metadata missingunknownnever
metadata unreadableunknownnever
in progresswarningnever
failedunhealthynever
unsupported status / type / capabilityunknownnot until supported
missing dependency backupunhealthy if absence is proven, else unknownnever
structurally usablehealthy contributioncandidate anchor

WAL classes

segment (ordinary complete), partial, history, backup-history, duplicate, unknown. Partial WALs never fill a required complete-segment position, and unknown files never contribute to continuity.

Gap lifecycle states

StateMeaningEffect
candidateseen in one complete scanwarning
confirmedseen in two consecutive complete scansunhealthy when required by a selected path
historicalentirely before the path's anchordoes not make that path unhealthy; still makes the WAL-continuity capability unhealthy

Confirmation is process-local: after a restart, gaps begin as candidates again.

Recovery-path stop reasons

A path stops conservatively at the first of:

  • missing timeline ancestry;
  • unknown evidence on the path;
  • a candidate gap;
  • a confirmed gap; or
  • the current observed archive frontier.

The frontier time is the provider receipt/modification time of the latest contiguous archived WAL. It is not transaction time and not a PITR endpoint.

Size vocabulary

TermSource
logical sizedeclared by supported format metadata
changed / deduplicated sizeformat-declared, labeled with its format-native meaning
stored bytessum of visible object sizes in a complete, bounded scope
unknown totallisting was incomplete, or a relevant size was unavailable

These are never substituted for one another.

Prohibited claims

The following never appear, in any surface, for any input:

  • "restore verified"
  • "restore guaranteed"
  • "exact PITR window"
  • "restorable until"

"Structurally usable" is the strongest available statement about a backup, and it is deliberately weaker than "valid" or "restorable".