{"record":{"id":"a26381c7966aeb22","repo":"influxdata/influxdb","slug":"plugin-error-0-http","errorCode":null,"errorMessage":"Plugin error: {0}","messagePattern":"Plugin error: (.+?)","errorType":"http","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"influxdb3_server/src/http.rs","lineNumber":358,"sourceCode":"        query string ({query_db}) that do not match, if providing a query \\\n        that specifies the database, you can omit the 'database' parameter \\\n        from your request\"\n    )]\n    InfluxqlDatabaseMismatch { param_db: String, query_db: String },\n\n    #[error(\"Operation with object store failed: {0}\")]\n    ObjectStore(#[from] object_store::Error),\n\n    #[error(\"heap dump failed: {0}\")]\n    HeapPprof(#[from] jemalloc_pprof_http::Error),\n\n    #[error(transparent)]\n    Catalog(#[from] CatalogError),\n\n    #[error(\"Python plugins not enabled on this server\")]\n    PythonPluginsNotEnabled,\n\n    #[error(\"Plugin error: {0}\")]\n    Plugin(#[from] influxdb3_processing_engine::plugins::PluginError),\n\n    #[error(\"Processing engine error: {0}\")]\n    ProcessingEngine(#[from] influxdb3_processing_engine::manager::ProcessingEngineError),\n\n    #[error(transparent)]\n    Influxdb3TypesHttp(#[from] influxdb3_types::http::Error),\n\n    #[error(\"Authorization error: {0}\")]\n    ResourceAuthorization(#[from] ResourceAuthorizationError),\n\n    #[error(\"Authentication error: {0}\")]\n    Authentication(#[from] AuthenticatorError),\n\n    #[error(\"The following Database does not exist: {0}\")]\n    MissingDb(String),\n\n    #[error(\"The following Database Table does not exist: {0}\")]","sourceCodeStart":340,"sourceCodeEnd":376,"githubUrl":"https://github.com/influxdata/influxdb/blob/06200ef96ba82c5f6727e5038a83af8e722c6875/influxdb3_server/src/http.rs#L340-L376","documentation":"Wraps a `influxdb3_processing_engine::plugins::PluginError` into the server's HTTP error enum via `#[from]`. It means the Python/WAL-trigger plugin itself failed — a load, parse, or execution error inside the plugin code — not a problem with the HTTP request plumbing. The inner message (`{0}`) carries the plugin-level detail.","triggerScenarios":"HTTP requests that load, configure, or execute a processing-engine plugin where the plugin file is missing/unreadable, has invalid code, defines a bad trigger, or raises an exception at runtime.","commonSituations":"Typo in the plugin filename in a trigger definition; plugin depends on a Python package not installed in the server environment; plugin raises an unhandled exception while processing a write; plugin API changed between InfluxDB 3 versions.","solutions":["Read the inner PluginError message and fix the plugin code (syntax, exception, missing function).","Confirm the plugin file exists in the configured `--plugin-dir` and matches the trigger's name.","Install missing Python dependencies into the server's plugin environment.","Test the plugin locally with a minimal trigger and a sample write before deploying."],"exampleFix":"// before (trigger referencing a missing plugin)\n// influxdb3 create trigger --plugin_filename process_data.py ...\n// after: ensure file exists and is importable\n// ls $PLUGIN_DIR/process_data.py && influxdb3 create trigger --plugin_filename process_data.py ...","handlingStrategy":"try-catch","validationCode":"// Validate plugin file exists and compiles before registering the trigger\nconst fs = require('fs');\nif (!fs.existsSync(`${pluginDir}/process_data.py`)) throw new Error('plugin file missing');\n// optionally: spawn `python -m py_compile process_data.py` to check syntax","typeGuard":null,"tryCatchPattern":"// surface the inner plugin message to the caller\ntry {\n  await createTrigger(trigger);\n} catch (e) {\n  if (/Plugin error:/.test(e.message)) {\n    throw new Error(`Plugin failed to load/run: ${e.message.replace('Plugin error: ', '')}`);\n  }\n  throw e;\n}","preventionTips":["Run plugins through a linter/syntax check in CI before deployment","Pin plugin Python dependencies in the server's plugin environment","Keep plugin filenames and trigger definitions in one source of truth"],"tags":["plugins","python","processing-engine","http-api"],"backgroundTag":"plugin-execution-failed","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"}