influxdata/influxdb · error · CatalogError

failed to parse trigger from

Error message

failed to parse trigger from {}

What it means

The catalog failed to parse a trigger specification string (trigger_spec) into a valid trigger definition. Trigger specs encode how/when a trigger runs, and this error means the supplied string did not match any recognized specification format.

Solutions

  1. Check the exact trigger spec grammar for your version and correct the string (e.g. 'every 1m' or a valid cron expression).
  2. Quote the spec properly in your shell so spaces are preserved.
  3. Test the spec with a minimal trigger creation call before deploying in scripts.
  4. If the error came with a context variant (TriggerSpecificationParseError with context), read the appended context for the specific parse failure.

Example fix

// before
CREATE TRIGGER t ON DATABASE mydb EVERY 5x ...
// after (valid spec syntax)
CREATE TRIGGER t ON DATABASE mydb EVERY 5 minutes ...
Defensive patterns

Strategy: validation

Validate before calling

// Validate trigger spec shape before sending
function isValidTriggerSpec(spec) {
  return /^(every \d+\s*(s|m|h|d)(\s+\d+\s*(s|m|h|d))*|cron .+|at .+)$/i.test(spec.trim());
}
if (!isValidTriggerSpec(triggerSpec)) {
  throw new Error(`bad trigger spec: ${triggerSpec}`);
}

Type guard

function isTriggerSpec(value) {
  return typeof value === 'string' && value.trim().length > 0 && /^(every|cron|at)\s/i.test(value.trim());
}

Try / catch

try {
  await createTrigger(db, { triggerSpec });
} catch (e) {
  if (String(e).includes('failed to parse trigger')) {
    console.error(`Invalid spec '${triggerSpec}'; expected 'every <duration>' or 'cron <expr>'`);
  } else throw e;
}

Prevention

When it happens

Trigger: Creating a Processing Engine trigger with a malformed spec string (e.g. a cron or every-duration spec with invalid syntax) passed to CREATE TRIGGER or the trigger-creation catalog API.

Common situations: Typos in cron expressions or 'every' durations (e.g. 'every: 1m' vs 'every 1m'); quoting/whitespace issues in shell commands; copying specs from docs of a different version with a changed spec grammar.

Understand the failure class

Background: "Invalid ... format", "must be in format X", "does not look like a ..." — invalid argument format errors across CLI tools and libraries — this error's family across 17 libraries.

Related errors


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

Appendix: source

Thrown at influxdb3_catalog/src/error.rs:264

    ProcessingEnginePluginNotFound {
        plugin_name: String,
        database_name: String,
    },

    #[error("Processing Engine Unimplemented: {}", feature_description)]
    ProcessingEngineUnimplemented { feature_description: String },

    #[error(
        "Processing Engine Trigger {} not in DB {}",
        trigger_name,
        database_name
    )]
    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}")]

View on GitHub (pinned to 06200ef96b)