influxdata/influxdb · error · Error
Cannot parse object store config
Error message
Cannot parse object store config: {0} What it means
An `Error` variant of the `influxdb3 serve` command (`ObjectStoreParsing`) created via `#[from] influxdb3_clap_blocks::object_store::ParseError`. It means the object-store configuration derived from CLI arguments/env could not be parsed into a valid object store config (e.g. malformed URL, unknown store type, invalid bucket settings). The serve process aborts before starting the server.
Solutions
- Inspect the inner ParseError message for the offending field and correct the flag/env value.
- Validate the object store URL/bucket/endpoint syntax before launching.
- Check `influxdb3 serve --help` for required params per store type and provide all of them.
Example fix
// before influxdb3 serve --object-store s3 --bucket my_bucket --aws-endpoint "not a url" // after influxdb3 serve --object-store s3 --bucket my_bucket \ --aws-endpoint http://127.0.0.1:9000 --aws-access-key-id ... --aws-secret-key ...
Defensive patterns
Strategy: validation
Validate before calling
let url = url::Url::parse(&endpoint).expect("object store endpoint must be a valid URL");
assert!(!bucket.is_empty(), "--bucket is required for s3/gcs object stores"); Try / catch
match serve(config) {
Err(serve::Error::ObjectStoreParsing(e)) => eprintln!("fix object store flags: {}", e),
Err(e) => eprintln!("serve failed: {}", e),
Ok(_) => {}
} Prevention
- Validate object-store URL, bucket and credentials before launching serve
- Copy flag values from docs for the chosen --object-store type
- Test the store config with a minimal serve invocation first
When it happens
Trigger: Running `influxdb3 serve` with `--object-store` values or accompanying params (bucket, endpoint, URL) that fail `ParseError` validation in influxdb3_clap_blocks.
Common situations: Typo in store type (e.g. `--object-store=s3` with a malformed endpoint URL), missing/malformed connection string, invalid file path for the `file` store, incompatible flag combinations for the chosen store type.
Understand the failure class
Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.
Related errors
- Tracing config error
- is not a valid data type, values are int64, uint64…
- An unexpected error occurred in the client library
- another process has written to the WAL ahead of this one
- Could not find user's home directory
AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19).
Data as JSON: /api/errors/6e423611b070ea40.
Report an issue: GitHub.
Appendix: source
Thrown at influxdb3/src/commands/serve.rs:117
pub const DEFAULT_DATA_DIRECTORY_NAME: &str = ".influxdb3";
/// The default bind address for the HTTP API.
pub const DEFAULT_HTTP_BIND_ADDR: &str = "0.0.0.0:8181";
/// The default bind address for admin token recovery HTTP API.
pub const DEFAULT_ADMIN_TOKEN_RECOVERY_BIND_ADDR: &str = "127.0.0.1:8182";
pub const DEFAULT_TELEMETRY_ENDPOINT: &str = "https://telemetry.v3.influxdata.com";
const MIN_SNAPSHOTS_TO_LOAD_ON_START: u64 = 100;
mod cli_params;
#[cfg(test)]
mod tests;
#[derive(Debug, Error)]
pub enum Error {
#[error("Cannot parse object store config: {0}")]
ObjectStoreParsing(#[from] influxdb3_clap_blocks::object_store::ParseError),
#[error("Tracing config error: {0}")]
TracingConfig(#[from] trace_exporters::Error),
#[error("Error initializing tokio runtime: {0}")]
TokioRuntime(#[source] std::io::Error),
#[error("Failed to bind address")]
BindAddress(#[source] std::io::Error),
#[error("Server error: {0}")]
Server(#[source] influxdb3_server::Error),
#[error("Token error: {0}")]
TokenError(CatalogError),
#[error("Write buffer error: {0}")]View on GitHub (pinned to 06200ef96b)