{"record":{"id":"89ff482db67009d3","repo":"influxdata/influxdb","slug":"invalid-restore-path-0","errorCode":null,"errorMessage":"invalid restore path: {0}","messagePattern":"invalid restore path: (.+?)","errorType":"error_code","errorClass":"FormatError","httpStatus":null,"severity":"error","filePath":"influxdb3_catalog/src/format/mod.rs","lineNumber":232,"sourceCode":"    /// 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)]\nmod tests;\n","sourceCodeStart":214,"sourceCodeEnd":247,"githubUrl":"https://github.com/influxdata/influxdb/blob/06200ef96ba82c5f6727e5038a83af8e722c6875/influxdb3_catalog/src/format/mod.rs#L214-L247","documentation":"The checkpoint or log path stored inside a RestoreCatalog record could not be parsed as a valid object-store path ({0}). Before the restore can fetch anything, the recorded location must be a well-formed store URL/path; a malformed value indicates the record was written with a bad path or the string was corrupted/altered.","triggerScenarios":"Applying a RestoreCatalog record whose embedded path string does not parse for the configured object store (wrong scheme, malformed prefix, unexpected relative path).","commonSituations":"Restoring a backup taken with a different object-store type than the current configuration (e.g. file-store path replayed against S3); hand-edited or translated catalog records; version skew between writer and reader path formats.","solutions":["Restore using the same object-store type/configuration as the backup was taken with.","Inspect the malformed path in the error and correct or re-create the restore record from a valid source.","Re-take the backup/restore pair with matching InfluxDB versions to ensure path format compatibility."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Validate the recorded path matches the configured store type before apply\nlet parsed = ObjectStorePath::parse(&record.checkpoint_path)\n    .map_err(|e| format!(\"bad restore path {}: {e}\", record.checkpoint_path))?;\nif parsed.store_type() != configured_store.store_type() {\n    return Err(\"restore record from a different object-store type\");\n}","typeGuard":null,"tryCatchPattern":"if let Err(e) = apply_restore(record) {\n    if e.to_string().contains(\"invalid restore path\") {\n        eprintln!(\"path {} unusable with current store config\", record.checkpoint_path);\n    }\n}","preventionTips":["Restore with the same object-store type the backup was written with","Keep writer and reader InfluxDB versions aligned","Never hand-edit paths inside catalog records"],"tags":["restore","path","object-store","parsing"],"backgroundTag":"invalid-url-format","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"}