influxdata/influxdb · error · ExecutePluginError

{0}

Error message

{0}

What it means

ExecutePluginError::PluginError wraps any anyhow::Error propagated out of Python plugin execution (e.g. an exception raised inside the plugin or a helper failure), displayed via its Display message ('{0}'). The message seen is therefore the underlying plugin/host error string, not a fixed text.

Solutions

  1. Read the wrapped message after 'PluginError' — it contains the actual root cause.
  2. Wrap plugin bodies in try/except and log via influxdb3_local.error with context, or fix the underlying bug the message names.
  3. Test the plugin locally (e.g. via the test harness) to reproduce the exception and get a full traceback.
  4. Check arguments passed via the trigger's args string for type/value mistakes.

Example fix

# before
def process_writes(influxdb3_local, table_batches, args=None):
    influxdb3_local.query("SELEC * FROM t")  # raises
# after
def process_writes(influxdb3_local, table_batches, args=None):
    try:
        influxdb3_local.query("SELECT * FROM t")
    except Exception as e:
        influxdb3_local.error(f"query failed: {e}")
Defensive patterns

Strategy: try-catch

Try / catch

# Inside the plugin, guard every fallible operation and surface context:
def process_writes(influxdb3_local, table_batches, args=None):
    try:
        do_work(table_batches, args)
    except Exception as e:
        influxdb3_local.error(f"process_writes failed: {e}")
        raise  # or handle, to avoid a bare PluginError upstream

Prevention

When it happens

Trigger: Any failure during plugin execution that is converted into an anyhow error and returned through ExecutePluginResult — most commonly an uncaught Python exception inside process_writes/process_request/process_scheduled_call, or failures from influxdb3_local helper calls.

Common situations: Plugin code raises NameError/TypeError/KeyError at runtime; helper API calls fail (invalid query, bad write); the plugin author's own raise statements bubble up.

Related errors


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

Appendix: source

Thrown at influxdb3_py_api/src/error.rs:20

#[derive(Debug, Error)]
pub enum ExecutePluginError {
    #[error(
        "the process_writes function is not present in the plugin. Should be defined as: process_writes(influxdb3_local, table_batches, args=None)"
    )]
    MissingProcessWritesFunction,

    #[error(
        "the process_request function is not present in the plugin. Should be defined as: process_request(influxdb3_local, query_parameters, request_headers, request_body, args=None) -> Tuple[str, Optional[Dict[str, str]]]"
    )]
    MissingProcessRequestFunction,

    #[error(
        "the process_scheduled_call function is not present in the plugin. Should be defined as: process_scheduled_call(influxdb3_local, call_time, args=None)"
    )]
    MissingProcessScheduledCallFunction,

    #[error("{0}")]
    PluginError(#[from] anyhow::Error),
}

pub type ExecutePluginResult<T> = Result<T, ExecutePluginError>;

View on GitHub (pinned to 06200ef96b)