influxdata/influxdb · error · CatalogError

invalid error behavior

Error message

invalid error behavior {0}

What it means

This error is thrown when an error-behavior value supplied for a processing engine trigger is not one of the recognized variants (e.g. `retry`, `log`, `panic`). The offending string is embedded in the message. The catalog validates the behavior string before persisting the trigger definition.

Solutions

  1. Use one of the supported error behaviors exactly: `retry`, `log`, or `panic`
  2. Check for typos and case (the parser is case-sensitive)
  3. Omit the flag to use the default error behavior if unsure
  4. Check the version's docs for the exact accepted values

Example fix

// before
CreateTriggerBuilder::new().error_behavior("Retry").build();
// after
CreateTriggerBuilder::new().error_behavior("retry").build();
Defensive patterns

Strategy: validation

Validate before calling

const VALID: [&str; 3] = ["retry", "log", "panic"];
fn valid_error_behavior(b: &str) -> bool { VALID.contains(&b) }

Try / catch

match result {
    Err(CatalogError::InvalidErrorBehavior(b)) => eprintln!("unsupported error behavior: {b} — use retry|log|panic"),
    r => r,
}

Prevention

When it happens

Trigger: Creating or updating a processing engine trigger with an `error_behavior` string that is not a recognized enum value (valid values are typically `retry`, `log`, `panic`).

Common situations: Typos in the error behavior when using `influxdb3 create trigger --error-behavior`; passing a behavior string from config or environment variables with wrong casing; version drift where a behavior name was renamed.

Understand the failure class

Background: Invalid enum value errors: "Unknown type", "Invalid scope", "must be one of" — when a string is not on the library's allowed list — this error's family across 23 libraries.

Related errors


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

Appendix: source

Thrown at influxdb3_catalog/src/error.rs:276

    )]
    ProcessingEngineTriggerNotFound {
        database_name: String,
        trigger_name: String,
    },

    #[error("failed to parse trigger from {}", trigger_spec)]
    ProcessingEngineTriggerSpecParseError { trigger_spec: String },

    #[error("last cache size must be greater than 0")]
    InvalidLastCacheSize,

    #[error("failed to parse trigger from {trigger_spec}{}", .context.as_ref().map(|context| format!(": {context}")).unwrap_or_default())]
    TriggerSpecificationParseError {
        trigger_spec: String,
        context: Option<String>,
    },

    #[error("invalid error behavior {0}")]
    InvalidErrorBehavior(String),

    #[error("cannot parse token permission, {0}")]
    CannotParsePermissionForToken(String),

    #[error("token name already exists, {0}")]
    TokenNameAlreadyExists(String),

    #[error("token hash already exists")]
    TokenHashAlreadyExists,

    #[error("missing admin token, cannot update")]
    MissingAdminTokenToUpdate,

    #[error("cannot delete internal db")]
    CannotDeleteInternalDatabase,

    #[error("cannot modify internal db")]

View on GitHub (pinned to 06200ef96b)