influxdata/influxdb · error · PluginEnvironmentError

Plugin environment management is disabled

Error message

Plugin environment management is disabled

What it means

PluginEnvironmentError::PluginEnvironmentDisabled is thrown when plugin environment management operations are requested while the processing engine's environment management feature is explicitly disabled in configuration. It carries no payload; it is a pure configuration/state guard.

Solutions

  1. Enable plugin environment management in the influxdb3 processing engine configuration
  2. Pre-install the plugin's dependencies manually and skip environment setup for that plugin
  3. Bake dependencies into a custom image and keep management disabled
  4. Confirm with the administrator whether the feature is intentionally off

Example fix

# before
tomlq -i '.processing_engine.environment_management = false' influxdb3.conf
# after
tomlq -i '.processing_engine.environment_management = true' influxdb3.conf
Defensive patterns

Strategy: validation

Validate before calling

# check the flag before deploying a plugin that needs env setup
enabled=$(tomlq -r '.processing_engine.environment_management // false' influxdb3.conf)
[ "$enabled" = "true" ] || { echo 'env management disabled'; exit 1; }

Try / catch

match env_manager.setup(plugin).await {
    Err(PluginEnvironmentError::PluginEnvironmentDisabled) => {
        eprintln!("env management disabled; pre-install deps for this plugin");
        use_preinstalled_env(plugin)
    }
    other => other,
}

Prevention

When it happens

Trigger: A plugin requests environment setup (installing packages, creating a venv) while the server was started with environment management disabled (e.g. a config flag like plugin-env-management off).

Common situations: Operators disable environment management in production for security (no arbitrary package installs); a plugin that needs dependencies is deployed to a locked-down instance; config differs between staging (enabled) and prod (disabled).

Related errors


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

Appendix: source

Thrown at influxdb3_processing_engine/src/environment.rs:19

use crate::environment::PluginEnvironmentError::PluginEnvironmentDisabled;

use crate::virtualenv::{VenvError, find_python, initialize_venv};
use observability_deps::tracing::debug;
use pyo3::prelude::PyAnyMethods;
use pyo3::{PyResult, Python};
use std::fmt::Debug;
use std::path::{Path, PathBuf};
use std::process::Command;
use std::sync::{Arc, OnceLock};
use thiserror::Error;

#[derive(Error, Debug)]
pub enum PluginEnvironmentError {
    #[error("Package manager not available: {0}")]
    PackageManagerNotFound(String),
    #[error("External call failed: {0}")]
    InstallationFailed(#[from] std::io::Error),
    #[error("Plugin environment management is disabled")]
    PluginEnvironmentDisabled,

    #[error("Virtual environment error: {0}")]
    VenvError(#[from] VenvError),

    #[error("Failed to list packages: {0}")]
    PackageListFailed(String),

    #[error(
        "Package installation has been disabled. Contact your administrator for more information."
    )]
    PackageInstallationDisabled,
}

pub trait PythonEnvironmentManager: Debug + Send + Sync + 'static {
    fn init_pyenv(
        &self,
        plugin_dir: Option<&Path>,

View on GitHub (pinned to 06200ef96b)