influxdata/influxdb · error · PluginError
plugin installation is disabled; plugins must already exist…
Error message
plugin installation is disabled; plugins must already exist in the configured plugin directory
What it means
PluginError::PluginInstallationDisabled is thrown when a plugin install/download is requested but the node was started with plugin installation disabled; plugins must already exist in the configured plugin directory. It enforces the server configuration that disallows runtime fetching.
Solutions
- Restart the node with plugin installation enabled (enable the corresponding server option/env).
- Manually place the plugin file in the configured plugin directory on the node's filesystem.
- Use a deployment pipeline to distribute plugin files instead of runtime installs.
Example fix
// before influxdb3 serve --plugin-dir /plugins // after influxdb3 serve --plugin-dir /plugins --plugin-installation-enabled
Defensive patterns
Strategy: fallback
Validate before calling
// check server config before attempting install const installsEnabled = serverConfig.plugin_installation_enabled === true; if (!installsEnabled) provisionPluginManually(name);
Try / catch
if let Err(PluginError::PluginInstallationDisabled) = result {
copy_plugin_into_plugin_dir(name)?;
} Prevention
- Start the node with plugin installation enabled if runtime installs are needed.
- Otherwise ship plugin files via deployment automation.
- Keep staging/production install policies consistent.
When it happens
Trigger: Calling the plugin installation/download API while the server runs without plugin-installation enabled (e.g. started without the flag/env that enables downloading from the repository).
Common situations: Production deployments hardened by disabling remote installs; operators try to install a new plugin at runtime and hit this; config drifted from staging where installs were allowed.
Related errors
- cannot change the configured generation duration for level
- cron schedule never triggers
- Custom partition template must have at least one part
- error fetching plugin from repository
- invalid gen1 duration
AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19).
Data as JSON: /api/errors/475dd8a01c0c9215.
Report an issue: GitHub.
Appendix: source
Thrown at influxdb3_processing_engine/src/plugins.rs:68
#[error("reading plugin file: {0}")]
ReadPluginError(#[from] std::io::Error),
#[error("error executing plugin: {0}")]
PluginExecutionError(#[from] influxdb3_py_api::error::ExecutePluginError),
#[error("invalid cron syntax: {0}")]
InvalidCronSyntax(#[from] cron::error::Error),
#[error("cron schedule never triggers: {0}")]
CronScheduleNeverTriggers(String),
#[error("non-schedule plugin with schedule trigger: {0}")]
NonSchedulePluginWithScheduleTrigger(String),
#[error("error fetching plugin from repository: {0} {1}")]
FetchingFromRepository(reqwest::StatusCode, String),
#[error(
"plugin installation is disabled; plugins must already exist in the configured plugin directory"
)]
PluginInstallationDisabled,
#[error("Join error, please report: {0}")]
JoinError(#[from] tokio::task::JoinError),
#[error("Node not configured with plugin directory")]
NoPluginDir,
#[error(
"Path traversal detected: plugin filename '{0}' attempts to access files outside the plugin directory"
)]
PathTraversal(String),
}
#[derive(Debug, Clone)]
pub struct ProcessingEngineEnvironmentManager {View on GitHub (pinned to 06200ef96b)