{"record":{"id":"2157037d7d226200","repo":"influxdata/influxdb","slug":"failed-to-load-restore-source-0","errorCode":null,"errorMessage":"failed to load restore source: {0}","messagePattern":"failed to load restore source: (.+?)","errorType":"error_code","errorClass":"FormatError","httpStatus":null,"severity":"error","filePath":"influxdb3_catalog/src/format/mod.rs","lineNumber":227,"sourceCode":"    /// nonzero).\n    #[error(\"invalid header: {reason}\")]\n    InvalidHeader { reason: &'static str },\n\n    /// A `RestoreCatalog` record was encountered during sync apply with an\n    /// empty preload. Callers on a persistence path must first load the\n    /// backup state off-lock via `preload_restore_for_records` /\n    /// `preload_restore_for_file` and pass the resulting `RestorePreload`\n    /// into the apply call.\n    #[error(\n        \"RestoreCatalog record encountered without object-store access \\\n         (sync apply path): the catalog cannot reload backup state from \\\n         here — use the async apply path\"\n    )]\n    RestoreRequiresStore,\n\n    /// Loading the backup snapshot/log files referenced by a `RestoreCatalog`\n    /// record failed.\n    #[error(\"failed to load restore source: {0}\")]\n    RestoreLoadFailed(String),\n\n    /// The checkpoint or log path in a `RestoreCatalog` record could not be\n    /// parsed as an object-store path.\n    #[error(\"invalid restore path: {0}\")]\n    InvalidRestorePath(String),\n\n    /// The backup snapshot referenced by a `RestoreCatalog` record was not\n    /// found at the recorded checkpoint path.\n    #[error(\"restore checkpoint not found at {checkpoint_path}\")]\n    RestoreCheckpointMissing { checkpoint_path: String },\n\n    /// A decoded record could not be serialized to a value for inspection.\n    #[error(\"failed to serialize record id {record_id} to value: {reason}\")]\n    RecordToValue { record_id: u16, reason: String },\n}\n\n#[cfg(test)]","sourceCodeStart":209,"sourceCodeEnd":245,"githubUrl":"https://github.com/influxdata/influxdb/blob/06200ef96ba82c5f6727e5038a83af8e722c6875/influxdb3_catalog/src/format/mod.rs#L209-L245","documentation":"A RestoreCatalog record referenced backup snapshot/log files, but loading them from the object store failed; the underlying error message is embedded ({0}). The restore cannot proceed because the source of the backup state is unreadable. This wraps store/network/decode failures behind a single restore-specific error.","triggerScenarios":"Applying a RestoreCatalog record whose checkpoint or log files are missing, unreadable, or fail to decode; transient object-store (S3/GCS/Azure/HTTP) errors during restore preload.","commonSituations":"Deleted or expired backup snapshots; wrong bucket/prefix configuration; object-store credentials revoked; network outage mid-restore.","solutions":["Read the wrapped source error to identify whether it is auth, network, or missing-object, and fix that first.","Verify the checkpoint/log files referenced by the RestoreCatalog record still exist in the object store.","Check object-store credentials and bucket/endpoint configuration.","Retry the restore if the failure was transient (network)."],"exampleFix":null,"handlingStrategy":"retry","validationCode":"// Precheck: confirm the restore source objects exist and are readable before applying\nfor obj in restore_source_paths {\n    if !store.object_exists(&obj).await? {\n        return Err(format!(\"restore source missing: {}\", obj));\n    }\n}","typeGuard":null,"tryCatchPattern":"match preload_restore(...) {\n    Err(e) if is_transient(&e) => backoff_retry(|| preload_restore(...), 3),\n    Err(e) => return Err(e),\n    ok => ok,\n}","preventionTips":["Keep backup snapshots until restores are confirmed complete","Verify object-store credentials and bucket config before starting a restore","Retry transient network errors with backoff during restore preload"],"tags":["restore","object-store","io","catalog"],"backgroundTag":"file-not-found","analyzedSha":"06200ef96ba82c5f6727e5038a83af8e722c6875","analyzedAt":"2026-09-19T12:55:30.003Z","contentChangedAt":"2026-09-19T12:55:30.003Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}