{"record":{"id":"b4d801a0507574bb","repo":"influxdata/influxdb","slug":"the-process-scheduled-call-function-is-not-present-in-the","errorCode":null,"errorMessage":"the process_scheduled_call function is not present in the plugin. Should be defined as: process_scheduled_call(influxdb3_local, call_time, args=None)","messagePattern":"the process_scheduled_call function is not present in the plugin\\. Should be defined as: process_scheduled_call\\(influxdb3_local, call_time, args=None\\)","errorType":"exception","errorClass":"ExecutePluginError","httpStatus":null,"severity":"error","filePath":"influxdb3_py_api/src/error.rs","lineNumber":15,"sourceCode":"use thiserror::Error;\n\n#[derive(Debug, Error)]\npub enum ExecutePluginError {\n    #[error(\n        \"the process_writes function is not present in the plugin. Should be defined as: process_writes(influxdb3_local, table_batches, args=None)\"\n    )]\n    MissingProcessWritesFunction,\n\n    #[error(\n        \"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]]]\"\n    )]\n    MissingProcessRequestFunction,\n\n    #[error(\n        \"the process_scheduled_call function is not present in the plugin. Should be defined as: process_scheduled_call(influxdb3_local, call_time, args=None)\"\n    )]\n    MissingProcessScheduledCallFunction,\n\n    #[error(\"{0}\")]\n    PluginError(#[from] anyhow::Error),\n}\n\npub type ExecutePluginResult<T> = Result<T, ExecutePluginError>;\n","sourceCodeStart":1,"sourceCodeEnd":25,"githubUrl":"https://github.com/influxdata/influxdb/blob/06200ef96ba82c5f6727e5038a83af8e722c6875/influxdb3_py_api/src/error.rs#L1-L25","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"# before\ndef process_writes(influxdb3_local, table_batches, args=None):\n    ...\n# after\ndef process_scheduled_call(influxdb3_local, call_time, args=None):\n    influxdb3_local.info(f\"running at {call_time}\")\n\ndef process_writes(influxdb3_local, table_batches, args=None):\n    ...","handlingStrategy":"validation","validationCode":"import inspect\ndef has_process_scheduled_call(module) -> bool:\n    fn = getattr(module, \"process_scheduled_call\", None)\n    return callable(fn) and len(inspect.signature(fn).parameters) >= 2","typeGuard":"def has_scheduled_entry(mod) -> bool:\n    return callable(getattr(mod, \"process_scheduled_call\", None))","tryCatchPattern":"try:\n    run_scheduled_plugin(path)\nexcept ExecutePluginError as e:\n    if \"process_scheduled_call\" in str(e):\n        log.error(f\"plugin {path} lacks a scheduled-call entry point\")","preventionTips":["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"],"tags":["python","plugin","processing-engine","missing-function","scheduled-trigger"],"backgroundTag":"missing-required-argument","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"}