ENCLAVR DOCS

DNS checkpoint recovery

Scheduled DNS fetches retain a failed container rollback checkpoint and report the activation failure. Inspect the resolver's current accepted manifest and served UDP/TCP answers before attempting recovery. Do not delete the checkpoint or create a replacement OpenBao publication or identity.

When an obsolete rollback can no longer pass acceptance, explicitly recover against the existing scoped, approved DNS source. Make a private 0600 copy of the host's .state/enclavr-dns/openbao/fetch.json and add "recover_dns_checkpoint": true to that copy. Keep the scheduled request unchanged. Run:

./enclavr internal openbao-ops --request-file /absolute/private/recovery.json --apply

Recovery holds the normal fetch lock and preserves the original checkpoint byte-for-byte in a private dns-container-rollback-preserved-*.json file before changing the resolver. It accepts only the approved source, verifies answers over UDP and TCP, rechecks source generation and identity, and updates host acceptance state before removing the blocking checkpoint. Any failure retains the checkpoint for investigation and retry. Repeating successful recovery is a no-op.

Restart the existing DNS-fetch service and confirm its normal timer succeeds. Keep the preserved checkpoint as incident evidence; remove the temporary recovery request after verification.