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
- Check the exact trigger spec grammar for your version and correct the string (e.g. 'every 1m' or a valid cron expression).
- Quote the spec properly in your shell so spaces are preserved.
- Test the spec with a minimal trigger creation call before deploying in scripts.
- 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
- Quote trigger specs in shell so spaces survive
- Keep a small table of valid spec examples per server version in your runbooks
- Unit-test spec strings used in deployment templates
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.
- Parsing and encoding errors: unexpected token, malformed input — why parsers reject input and how to find the real culprit.
Related errors
- Cannot overwrite Processing Engine Trigger
- Processing Engine Trigger
- Cannot delete plugin
- Cannot delete running plugin
- Invalid endpoint
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)