influxdata/influxdb · error · FormatError

restore checkpoint not found at

Error message

restore checkpoint not found at {checkpoint_path}

What it means

The backup snapshot referenced by a RestoreCatalog record was not found at the recorded checkpoint path ({checkpoint_path}). The restore machinery resolved and parsed the path but the object simply does not exist, so there is no snapshot to load backup state from.

Solutions

  1. Verify the checkpoint_path exists in the configured object store (list the prefix via the store CLI/console).
  2. Point the instance at the correct bucket/prefix for the backup.
  3. Re-run the restore from an available, intact snapshot if the referenced one is unrecoverable.
  4. Disable/adjust lifecycle expiry rules that could delete catalog checkpoints.

Example fix

// before: aws s3 ls s3://wrong-bucket/catalog-checkpoints/...
// after: use the bucket the backup was taken from
// aws s3 ls s3://original-backup-bucket/influxdb3/catalog-checkpoints/...
Defensive patterns

Strategy: validation

Validate before calling

// Confirm the checkpoint exists before attempting restore
let exists = store.head_object(&checkpoint_path).await.is_ok();
if !exists {
    return Err(format!("checkpoint missing: {}", checkpoint_path));
}

Try / catch

match apply_restore(record).await {
    Err(e) if e.to_string().contains("checkpoint not found") => pick_alternative_snapshot()?,
    r => r,
}

Prevention

When it happens

Trigger: Applying a RestoreCatalog record whose checkpoint snapshot was deleted, expired by a lifecycle rule, or never fully uploaded; pointing at the wrong bucket/prefix so the recorded path does not resolve.

Common situations: Object-store lifecycle policies deleting old snapshots; someone cleaned the backup prefix; bucket misconfiguration; restoring into a different environment than the backup came from.

Understand the failure class

Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.

Related errors


AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19). Data as JSON: /api/errors/2d322282e0cede17. Report an issue: GitHub.

Appendix: source

Thrown at influxdb3_catalog/src/format/mod.rs:237

        "RestoreCatalog record encountered without object-store access \
         (sync apply path): the catalog cannot reload backup state from \
         here — use the async apply path"
    )]
    RestoreRequiresStore,

    /// Loading the backup snapshot/log files referenced by a `RestoreCatalog`
    /// record failed.
    #[error("failed to load restore source: {0}")]
    RestoreLoadFailed(String),

    /// The checkpoint or log path in a `RestoreCatalog` record could not be
    /// parsed as an object-store path.
    #[error("invalid restore path: {0}")]
    InvalidRestorePath(String),

    /// The backup snapshot referenced by a `RestoreCatalog` record was not
    /// found at the recorded checkpoint path.
    #[error("restore checkpoint not found at {checkpoint_path}")]
    RestoreCheckpointMissing { checkpoint_path: String },

    /// A decoded record could not be serialized to a value for inspection.
    #[error("failed to serialize record id {record_id} to value: {reason}")]
    RecordToValue { record_id: u16, reason: String },
}

#[cfg(test)]
mod tests;

View on GitHub (pinned to 06200ef96b)