influxdata/influxdb · error · CatalogError
invalid configuration provided
Error message
invalid configuration provided: {message} What it means
CatalogError::InvalidConfiguration { message } is thrown when a user-supplied configuration for a catalog resource is invalid, with message describing why. The library validates cache, trigger, retention, and other resource options at creation time and rejects impossible or contradictory values. The Box<str> message carries the precise violation.
Solutions
- Read the message field — it names the exact invalid parameter
- Validate sizes/TTLs/column names against the target table schema before calling
- Fix the client/config payload and resubmit
- Match on CatalogError::InvalidConfiguration and propagate message to the caller
Example fix
// before
LastCacheCreate { size: 0, .. } // invalid size
// after
LastCacheCreate { size: 10, ttl: Some(3600), .. } Defensive patterns
Strategy: validation
Validate before calling
// Rust: validate cache config before creation assert!(cache.size > 0, "last cache size must be positive"); assert!(cache.ttl.map(|t| t > 0).unwrap_or(true), "ttl must be positive");
Try / catch
match db.create_last_cache(cfg).await {
Err(CatalogError::InvalidConfiguration { message }) => {
return Err(HttpError::bad_request(format!("invalid cache config: {message}")));
}
other => other?,
} Prevention
- Validate sizes/TTLs are positive before API calls
- Check option names against the current API schema
- Reuse vetted config builders instead of raw structs
- Surface the message field to end users
When it happens
Trigger: Creating a last-cache/distinct-cache with invalid size, TTL, or key/column combos; configuring a plugin trigger with bad options; supplying mutually inconsistent cache parameters via /api/v3/configure/last_cache or distinct_cache endpoints.
Common situations: Typos in config field names so defaults/invalid values slip through; copy-pasted cache configs exceeding table cardinality; setting zero/negative max size or TTL.
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
- invalid cache size
- Node doesn't have proper mode, expect
- number of buckets in partition template must be in range
- prune percent must be between 0 and 1
- {0}
AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19).
Data as JSON: /api/errors/70a569649d6a7986.
Report an issue: GitHub.
Appendix: source
Thrown at influxdb3_catalog/src/error.rs:75
AlreadyDeleted(String),
/// Request is idempotent: no catalog state would change.
#[error("no catalog changes to apply: {details}")]
NoCatalogChange { details: String },
/// Request is invalid.
#[error("catalog internal error: {details}")]
Internal { details: String },
#[error(
"persisted catalog checkpoint sequence {checkpoint_sequence} is ahead of live catalog sequence {live_sequence}"
)]
BackupCheckpointAhead {
checkpoint_sequence: u64,
live_sequence: u64,
},
#[error("invalid configuration provided: {message}")]
InvalidConfiguration { message: Box<str> },
#[error("only tag and string columns are supported in the distinct cache")]
InvalidDistinctCacheColumnType,
#[error("only uint64, int64, bool, tag, and string columns are supported in the last cache")]
InvalidLastCacheKeyColumnType,
#[error("plugin trigger is already enabled")]
TriggerAlreadyEnabled,
#[error("plugin trigger is already disabled")]
TriggerAlreadyDisabled,
#[error("invalid column type for column '{column_name}', expected {expected}, got {got}")]
InvalidColumnType {
column_name: Arc<str>,
expected: InfluxColumnType,View on GitHub (pinned to 06200ef96b)