influxdata/influxdb · error · ExecutePluginError
the process_scheduled_call function is not present in the…
Error message
the process_scheduled_call function is not present in the plugin. Should be defined as: process_scheduled_call(influxdb3_local, call_time, args=None)
What it means
Scheduled-call (cron/every) trigger plugins must define a module-level process_scheduled_call function with the signature process_scheduled_call(influxdb3_local, call_time, args=None). This error is raised when the host loads the plugin for a scheduled trigger and cannot find that function on the module.
Solutions
- Define the module-level function: def process_scheduled_call(influxdb3_local, call_time, args=None): ...
- Confirm spelling and that it is not nested inside a class or other function.
- If the module is meant for write or request triggers, use separate entry-point files per trigger type and re-register the trigger accordingly.
- Recreate/reload the trigger after fixing the module.
Example fix
# before
def process_writes(influxdb3_local, table_batches, args=None):
...
# after
def process_scheduled_call(influxdb3_local, call_time, args=None):
influxdb3_local.info(f"running at {call_time}")
def process_writes(influxdb3_local, table_batches, args=None):
... Defensive patterns
Strategy: validation
Validate before calling
import inspect
def has_process_scheduled_call(module) -> bool:
fn = getattr(module, "process_scheduled_call", None)
return callable(fn) and len(inspect.signature(fn).parameters) >= 2 Type guard
def has_scheduled_entry(mod) -> bool:
return callable(getattr(mod, "process_scheduled_call", None)) Try / catch
try:
run_scheduled_plugin(path)
except ExecutePluginError as e:
if "process_scheduled_call" in str(e):
log.error(f"plugin {path} lacks a scheduled-call entry point") Prevention
- Register scheduled triggers only against modules defining process_scheduled_call
- Accept (influxdb3_local, call_time, args=None) signature
- Separate files per trigger kind to avoid entry-point mixups
- Test scheduled plugins with a scheduler dry-run before creating triggers
When it happens
Trigger: A trigger created with an 'every' specification points at a plugin module that lacks process_scheduled_call — for instance the file only defines process_writes or process_request, or the function name is misspelled.
Common situations: Reusing an HTTP or write plugin file for a scheduled trigger; typos like scheduled_process or process_schedule; the function is nested inside a class; refactors renamed the entry point after the trigger was created.
Understand the failure class
Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.
Related errors
- the process_request function is not present in the plugin…
- the process_writes function is not present in the plugin…
- {0}
- CA certificate PEM should be valid
- call site contains null bytes
AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19).
Data as JSON: /api/errors/b4d801a0507574bb.
Report an issue: GitHub.
Appendix: source
Thrown at influxdb3_py_api/src/error.rs:15
use thiserror::Error;
#[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)