{"record":{"id":"f8fdbc8c3de243df","repo":"influxdata/influxdb","slug":"object-store-error-0","errorCode":null,"errorMessage":"object store error: {0:?}","messagePattern":"object store error: (.+?)","errorType":"error_code","errorClass":"CatalogError","httpStatus":null,"severity":"critical","filePath":"influxdb3_catalog/src/error.rs","lineNumber":44,"sourceCode":"}\n\nimpl Display for TruncatedTableName {\n    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {\n        write!(f, \"{}\", self.inner())\n    }\n}\n\nuse crate::{\n    channel::SubscriptionError, format::FeatureLevel, format::FormatError,\n    log::versions::v4::StorageMode, object_store::ObjectStoreCatalogError,\n};\n\n#[derive(Debug, thiserror::Error)]\npub enum CatalogError {\n    #[error(transparent)]\n    Enterprise(#[from] EnterpriseCatalogError),\n\n    #[error(\"object store error: {0:?}\")]\n    ObjectStore(#[from] ObjectStoreCatalogError),\n\n    #[error(\"catalog format error: {0}\")]\n    Format(#[from] FormatError),\n\n    #[error(\"attempted to create a resource that already exists\")]\n    AlreadyExists,\n\n    #[error(\"the requested resource was not found: {0}\")]\n    NotFound(String),\n\n    #[error(\"attempted to modify resource that was already deleted: {0}\")]\n    AlreadyDeleted(String),\n\n    /// Request is idempotent: no catalog state would change.\n    #[error(\"no catalog changes to apply: {details}\")]\n    NoCatalogChange { details: String },\n","sourceCodeStart":26,"sourceCodeEnd":62,"githubUrl":"https://github.com/influxdata/influxdb/blob/06200ef96ba82c5f6727e5038a83af8e722c6875/influxdb3_catalog/src/error.rs#L26-L62","documentation":"CatalogError::ObjectStore wraps an ObjectStoreCatalogError raised while reading or writing catalog data through the underlying object store (in-memory, file, or S3-compatible backend). The library throws it whenever catalog persistence I/O fails, and the message renders the wrapped error with Debug formatting ({0:?}) so nested causes are visible. It indicates a storage-layer problem, not a problem with the catalog contents themselves.","triggerScenarios":"Any catalog read/write that goes through ObjectStore: loading the catalog at startup, persisting a new catalog batch/checkpoint, compaction or snapshot upload; the wrapped store returns an I/O error, permission error, throttling, or a connection failure.","commonSituations":"Misconfigured S3 credentials or bucket name; network outage or S3 throttling (503 SlowDown); a disk full or permission-denied on a file-backed store; bucket deleted or region changed under a running server.","solutions":["Check object-store configuration (endpoint, bucket, credentials) and fix the underlying ObjectStoreCatalogError shown by the Debug output","Test connectivity to the store (aws s3 ls or equivalent) from the same host","Verify the store backend is healthy and has free space/quota","Retry after transient network issues; the catalog write path is transactional"],"exampleFix":"// before\nlet store = AmazonS3Builder::new(\"wrong-bucket\").build()?;\n// after\nlet store = AmazonS3Builder::from_env().with_bucket_name(\"my-catalog-bucket\").build()?;","handlingStrategy":"retry","validationCode":"// Rust: verify store reachability before catalog ops\nlet store = ObjectStoreBuilder::build()?;\nstore.list(None).limit(1).next().await.transpose()?;","typeGuard":null,"tryCatchPattern":"match result {\n    Err(CatalogError::ObjectStore(e)) => {\n        tracing::error!(error = ?e, \"catalog object store I/O failed\");\n        // retry with backoff if transient\n    }\n    Err(e) => return Err(e.into()),\n    Ok(v) => v,\n}","preventionTips":["Validate object-store env vars/credentials at startup","Set up store health checks and alerts","Keep ample disk/quota headroom","Use retry with exponential backoff for transient store errors"],"tags":["object-store","storage","io","catalog"],"backgroundTag":"database-write-failed","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"}