{"record":{"id":"26e1c4166a5353d5","repo":"influxdata/influxdb","slug":"processing-engine-plugin-not-in-db-schema-for","errorCode":null,"errorMessage":"Processing Engine Plugin {} not in DB schema for {}","messagePattern":"Processing Engine Plugin (.+?) not in DB schema for (.+?)","errorType":"error_code","errorClass":"CatalogError","httpStatus":null,"severity":"error","filePath":"influxdb3_catalog/src/error.rs","lineNumber":241,"sourceCode":"    #[error(\n        \"Cannot delete running plugin {}. Disable it first or use --force.\",\n        trigger_name\n    )]\n    ProcessingEngineTriggerRunning { trigger_name: String },\n\n    #[error(\n        \"Cannot delete plugin {} in database {} because it is used by trigger {}\",\n        plugin_name,\n        database_name,\n        trigger_name\n    )]\n    ProcessingEnginePluginInUse {\n        database_name: String,\n        plugin_name: String,\n        trigger_name: String,\n    },\n\n    #[error(\n        \"Processing Engine Plugin {} not in DB schema for {}\",\n        plugin_name,\n        database_name\n    )]\n    ProcessingEnginePluginNotFound {\n        plugin_name: String,\n        database_name: String,\n    },\n\n    #[error(\"Processing Engine Unimplemented: {}\", feature_description)]\n    ProcessingEngineUnimplemented { feature_description: String },\n\n    #[error(\n        \"Processing Engine Trigger {} not in DB {}\",\n        trigger_name,\n        database_name\n    )]\n    ProcessingEngineTriggerNotFound {","sourceCodeStart":223,"sourceCodeEnd":259,"githubUrl":"https://github.com/influxdata/influxdb/blob/06200ef96ba82c5f6727e5038a83af8e722c6875/influxdb3_catalog/src/error.rs#L223-L259","documentation":"A Processing Engine operation referenced a plugin by name, but no such plugin exists in the database's schema (DB schema holds the installed plugin definitions). The catalog throws this when the plugin name cannot be resolved against the schema for the given database.","triggerScenarios":"Creating/updating a trigger that references plugin_name which was never installed into database_name, or looking up a plugin (get plugin by name) with a name not present in the DB schema.","commonSituations":"Typo in the plugin name when defining a trigger; installing the plugin in a different database than the trigger's; the plugin package was deleted before the trigger referencing it was recreated; environment restore where plugin packages were lost.","solutions":["Install/upload the plugin into the target database first (influxdb3 package upload / plugin install API), then retry the operation.","Verify the exact plugin name against the database's plugin list (SHOW plugins or catalog query).","Check you are operating on the correct database; plugins are scoped per database."],"exampleFix":"// before\nCREATE TRIGGER t ON DATABASE mydb ... USING plugin 'wrong_name';\n// after: install the plugin first\ninfluxdb3 package upload my_plugin.py --database mydb\nCREATE TRIGGER t ON DATABASE mydb ... USING plugin 'my_plugin';","handlingStrategy":"validation","validationCode":"// Ensure the plugin exists in the DB schema before creating a trigger\nconst plugins = await client.listPlugins(db);\nif (!plugins.some(p => p.pluginName === pluginName)) {\n  await client.uploadPlugin(db, pluginName, pluginCode);\n}\nawait client.createTrigger(db, { pluginName, /* ... */ });","typeGuard":"function pluginInstalled(plugins, name) {\n  return Array.isArray(plugins) && plugins.some(p => p?.pluginName === name);\n}","tryCatchPattern":"try {\n  await createTrigger(db, spec);\n} catch (e) {\n  if (String(e).includes('not in DB schema')) {\n    await uploadPlugin(db, spec.pluginName, spec.pluginCode);\n    await createTrigger(db, spec);\n  } else throw e;\n}","preventionTips":["Install plugins into the same database as their triggers as one deployment step","Keep plugin names in versioned config, not hand-typed strings","Verify plugin presence after any database restore or migration"],"tags":["processing-engine","plugin","not-found","influxdb"],"backgroundTag":"entity-not-found","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"}