influxdata/influxdb · error · CatalogError

missing object store for restore operation

Error message

missing object store for restore operation

What it means

Thrown when a restore operation is invoked without an object store configured. Restores read snapshot/backup data from object storage, so a missing ObjectStore reference makes the operation impossible; the API requires it explicitly.

Solutions

  1. Provide the object store configuration (bucket, endpoint, credentials) to the restore builder before invoking restore.
  2. Set the required environment variables / config fields for the object store backend.
  3. Use the same object store the backup was taken from.
  4. If the restore API offers a local-path alternative, switch to the file-based restore flow.

Example fix

// before
let catalog = Catalog::restore(backup_id).await?;
// after
let store = get_object_store_from_config(&cfg)?; // panics earlier if unconfigured
let catalog = Catalog::builder()
    .object_store(store)
    .restore(backup_id).await?;
Defensive patterns

Strategy: validation

Validate before calling

let store = object_store_config
    .as_ref()
    .ok_or("object store must be configured for restore")?;

Try / catch

match result {
    Err(CatalogError::MissingObjectStoreForRestore) => {
        log::error!("restore called without object store; configure bucket/credentials");
    }
    other => other?,
}

Prevention

When it happens

Trigger: Calling the catalog/instance restore API on a builder or client that was never given an ObjectStore (e.g. built for local-only mode); restore invoked in an environment where object-store config was omitted.

Common situations: Disaster-recovery drill where the restore tool is instantiated without cloud credentials; config file lacking the object-store section; running restore on a node intended only for local operation.

Understand the failure class

Background: "X is required", "must be set", "cannot be empty": the missing-required-config error family, from Vertex AI project/location to WeChat keys — this error's family across 18 libraries.

Related errors


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

Appendix: source

Thrown at influxdb3_catalog/src/error.rs:368

    )]
    RecordExceedsCommittedFeatureLevel {
        record_id: u16,
        committed: FeatureLevel,
    },

    #[error(
        "this node's feature level (core={}, enterprise={}) is below the cluster's committed level (core={}, enterprise={}); upgrade required",
        local.core,
        local.enterprise,
        committed.core,
        committed.enterprise,
    )]
    NodeBelowCommittedFeatureLevel {
        committed: FeatureLevel,
        local: FeatureLevel,
    },

    #[error("missing object store for restore operation")]
    MissingObjectStoreForRestore,

    #[error(
        "cannot remove node '{node_id}' because it is a member of query group '{query_group_name}' (id {query_group_id})"
    )]
    NodeInQueryGroup {
        node_id: Arc<str>,
        query_group_name: Arc<str>,
        query_group_id: QueryGroupId,
    },

    #[error(
        "cannot place node '{node_id}' in this query group because it already belongs to query group '{query_group_name}' (id {query_group_id})"
    )]
    NodeAlreadyInQueryGroup {
        node_id: Arc<str>,
        query_group_name: Arc<str>,
        query_group_id: QueryGroupId,

View on GitHub (pinned to 06200ef96b)