influxdata/influxdb · error · ProcessingEngineError::PluginError
No plugin directory configured
Error message
No plugin directory configured
What it means
When a plugin is installed (save path in influxdb3_processing_engine), the engine resolves the target directory from its environment manager. If the server was started without --plugin-dir, plugin_dir is None and the install fails with ProcessingEngineError::PluginError('No plugin directory configured'). This is distinct from PluginInstallationDisabled, which is returned when the server runs in plugin-dir-only mode.
Source
Thrown at influxdb3_processing_engine/src/lib.rs:1057
}
pub async fn create_plugin_file(
self: &Arc<Self>,
plugin_filename: &str,
content: &str,
) -> Result<(), ProcessingEngineError> {
if self.environment_manager.plugin_dir_only {
return Err(ProcessingEngineError::PluginError(
PluginError::PluginInstallationDisabled,
));
}
let plugin_dir = self
.environment_manager
.plugin_dir
.as_ref()
.ok_or_else(|| {
ProcessingEngineError::PluginError(plugins::PluginError::AnyhowError(anyhow!(
"No plugin directory configured"
)))
})?;
let plugin_path = validate_path_within_plugin_dir(plugin_dir, plugin_filename)?;
// Create parent directories if they don't exist (for multi-file plugins)
if let Some(parent) = plugin_path.parent() {
async_fs::create_dir_all(parent).await.map_err(|e| {
ProcessingEngineError::PluginError(plugins::PluginError::ReadPluginError(e))
})?;
}
async_fs::write(&plugin_path, content).await.map_err(|e| {
ProcessingEngineError::PluginError(plugins::PluginError::ReadPluginError(e))
})?;
Ok(())View on GitHub (pinned to d28e26e048)
Solutions
- Restart the server with --plugin-dir /path/to/plugins and retry the install
- Make sure the directory exists and the server process has write permission (it creates parent dirs for multi-file plugins)
- Confirm you are not hitting the other error: plugin-dir-only mode yields 'Plugin installation disabled', which needs a different config change
Example fix
# before: no plugin dir -> install fails with 'No plugin directory configured' influxdb3 serve --node-id n1 --object-store file:///data # after influxdb3 serve --node-id n1 --object-store file:///data --plugin-dir /data/plugins
Defensive patterns
Strategy: validation
Validate before calling
# make the plugin dir and confirm writability before the server starts
mkdir -p /var/lib/influxdb3/plugins
test -w /var/lib/influxdb3/plugins || { echo "plugin dir not writable" >&2; exit 1; }
influxdb3 serve --plugin-dir /var/lib/influxdb3/plugins "$@" Prevention
- Always start the server with --plugin-dir if you plan to install processing-engine plugins
- Bake the flag into systemd units / Helm values so it cannot be forgotten
- Distinguish this from 'plugin installation disabled' (plugin-dir-only mode) when diagnosing
When it happens
Trigger: Starting `influxdb3 serve` without --plugin-dir and then creating/uploading a plugin through the HTTP plugin endpoints (e.g. /api/v3/plugins/files) or the equivalent engine save_plugin call.
Common situations: Minimal dev/test server launched without the plugin flag; Kubernetes manifests or Docker compose files missing --plugin-dir; assuming the plugin directory can be set via environment variable after startup.
Related errors
- Plugin not found: {}
- Failed to rename temp directory to target
- You've incorrectly specified a cluster-id for InfluxDB 3 Cor
- request trigger execution cancelled
- invalid database name: {db_name}
AI-assisted analysis of influxdata/influxdb@d28e26e048 (2026-08-16).
Data as JSON: /api/errors/e1e5fb7a0dbb2f52.
Report an issue: GitHub.