influxdata/influxdb · error · Error

Plugin error

Error message

Plugin error: {0}

What it means

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.

Solutions

  1. Read the inner PluginError message and fix the plugin code (syntax, exception, missing function).
  2. Confirm the plugin file exists in the configured `--plugin-dir` and matches the trigger's name.
  3. Install missing Python dependencies into the server's plugin environment.
  4. Test the plugin locally with a minimal trigger and a sample write before deploying.

Example fix

// before (trigger referencing a missing plugin)
// influxdb3 create trigger --plugin_filename process_data.py ...
// after: ensure file exists and is importable
// ls $PLUGIN_DIR/process_data.py && influxdb3 create trigger --plugin_filename process_data.py ...
Defensive patterns

Strategy: try-catch

Validate before calling

// Validate plugin file exists and compiles before registering the trigger
const fs = require('fs');
if (!fs.existsSync(`${pluginDir}/process_data.py`)) throw new Error('plugin file missing');
// optionally: spawn `python -m py_compile process_data.py` to check syntax

Try / catch

// surface the inner plugin message to the caller
try {
  await createTrigger(trigger);
} catch (e) {
  if (/Plugin error:/.test(e.message)) {
    throw new Error(`Plugin failed to load/run: ${e.message.replace('Plugin error: ', '')}`);
  }
  throw e;
}

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


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

Appendix: source

Thrown at influxdb3_server/src/http.rs:358

        query string ({query_db}) that do not match, if providing a query \
        that specifies the database, you can omit the 'database' parameter \
        from your request"
    )]
    InfluxqlDatabaseMismatch { param_db: String, query_db: String },

    #[error("Operation with object store failed: {0}")]
    ObjectStore(#[from] object_store::Error),

    #[error("heap dump failed: {0}")]
    HeapPprof(#[from] jemalloc_pprof_http::Error),

    #[error(transparent)]
    Catalog(#[from] CatalogError),

    #[error("Python plugins not enabled on this server")]
    PythonPluginsNotEnabled,

    #[error("Plugin error: {0}")]
    Plugin(#[from] influxdb3_processing_engine::plugins::PluginError),

    #[error("Processing engine error: {0}")]
    ProcessingEngine(#[from] influxdb3_processing_engine::manager::ProcessingEngineError),

    #[error(transparent)]
    Influxdb3TypesHttp(#[from] influxdb3_types::http::Error),

    #[error("Authorization error: {0}")]
    ResourceAuthorization(#[from] ResourceAuthorizationError),

    #[error("Authentication error: {0}")]
    Authentication(#[from] AuthenticatorError),

    #[error("The following Database does not exist: {0}")]
    MissingDb(String),

    #[error("The following Database Table does not exist: {0}")]

View on GitHub (pinned to 06200ef96b)