{"record":{"id":"8e46fcbe0c481eb2","repo":"influxdata/influxdb","slug":"failed-to-parse-trigger-from-trigger-spec","errorCode":null,"errorMessage":"failed to parse trigger from {trigger_spec}{}","messagePattern":"failed to parse trigger from (.+?)(.+?)","errorType":"error_code","errorClass":"CatalogError","httpStatus":null,"severity":"error","filePath":"influxdb3_catalog/src/error.rs","lineNumber":270,"sourceCode":"    ProcessingEngineUnimplemented { feature_description: String },\n\n    #[error(\n        \"Processing Engine Trigger {} not in DB {}\",\n        trigger_name,\n        database_name\n    )]\n    ProcessingEngineTriggerNotFound {\n        database_name: String,\n        trigger_name: String,\n    },\n\n    #[error(\"failed to parse trigger from {}\", trigger_spec)]\n    ProcessingEngineTriggerSpecParseError { trigger_spec: String },\n\n    #[error(\"last cache size must be greater than 0\")]\n    InvalidLastCacheSize,\n\n    #[error(\"failed to parse trigger from {trigger_spec}{}\", .context.as_ref().map(|context| format!(\": {context}\")).unwrap_or_default())]\n    TriggerSpecificationParseError {\n        trigger_spec: String,\n        context: Option<String>,\n    },\n\n    #[error(\"invalid error behavior {0}\")]\n    InvalidErrorBehavior(String),\n\n    #[error(\"cannot parse token permission, {0}\")]\n    CannotParsePermissionForToken(String),\n\n    #[error(\"token name already exists, {0}\")]\n    TokenNameAlreadyExists(String),\n\n    #[error(\"token hash already exists\")]\n    TokenHashAlreadyExists,\n\n    #[error(\"missing admin token, cannot update\")]","sourceCodeStart":252,"sourceCodeEnd":288,"githubUrl":"https://github.com/influxdata/influxdb/blob/06200ef96ba82c5f6727e5038a83af8e722c6875/influxdb3_catalog/src/error.rs#L252-L288","documentation":"This error is thrown by the influxdb3 catalog when a processing-engine trigger specification string cannot be parsed. The `trigger_spec` is a formatted string like `plugin:trigger_arguments` that the processing engine splits into plugin name and arguments; if the format is wrong, parsing fails. An optional context message is appended after a colon when the parser knows what was wrong.","triggerScenarios":"Calling catalog APIs that create a processing engine trigger (e.g. `CreateTrigger` / processing-engine trigger creation) with a malformed trigger specification string, such as missing the plugin identifier or having wrongly encoded/missing trigger arguments.","commonSituations":"Hand-writing trigger specs in `influxdb3 create trigger` commands; shell quoting or braces mangling the spec (a literal unformatted `{trigger_spec}{}` in the message indicates a bad Display/format call site or empty spec); upgrading InfluxDB 3 where the spec grammar changed.","solutions":["Check the trigger_spec string matches the expected `plugin_name:trigger_settings:trigger_arguments` format","Ensure the plugin name is valid and the trigger arguments are correctly encoded for the trigger type (cron, every, table, all tables)","Use the influxdb3 CLI to create the trigger instead of hand-building the spec","Check the appended `: context` part of the message for the specific parse failure reason"],"exampleFix":"// before\nlet spec = \"my_plugin\"; // missing trigger settings/arguments\ncreate_trigger(spec, ...);\n// after\nlet spec = \"my_plugin:every:1s:my_plugin_args\"; // full spec format\ncreate_trigger(spec, ...);","handlingStrategy":"validation","validationCode":"fn is_valid_trigger_spec(spec: &str) -> bool {\n    let parts: Vec<&str> = spec.split(':').collect();\n    parts.len() >= 3 && !parts[0].is_empty()\n}","typeGuard":null,"tryCatchPattern":"match create_trigger(spec) {\n    Err(CatalogError::TriggerSpecificationParseError { context, .. }) => eprintln!(\"bad trigger spec: {context:?}\"),\n    Err(e) => return Err(e.into()),\n    Ok(t) => t,\n}","preventionTips":["Build trigger specs with the CLI or builder APIs instead of string concatenation","Validate spec format (plugin:settings:args) before submitting","Watch shell quoting when passing specs on the command line"],"tags":["catalog","processing-engine","parsing"],"backgroundTag":"invalid-argument-format","analyzedSha":"06200ef96ba82c5f6727e5038a83af8e722c6875","analyzedAt":"2026-09-19T12:55:30.003Z","contentChangedAt":"2026-09-19T12:55:30.003Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}