influxdata/influxdb · error · PluginEnvironmentError
Package manager not available
Error message
Package manager not available: {0} What it means
PluginEnvironmentError::PackageManagerNotFound is thrown by influxdb3's processing engine plugin environment manager when the system package manager (e.g. apt, dnf, brew) needed to provision a plugin's Python environment cannot be found. It carries the name/details of the manager that was probed.
Solutions
- Install the system package manager expected by the host platform (e.g. apt-get in Debian/Ubuntu images)
- Ensure the package manager binary is on the PATH of the influxdb3 process (check systemd Environment=)
- Use a base image that includes a package manager, or pre-install plugin dependencies in the image
- Pre-provision the plugin's virtual environment manually so no package manager call is needed
Example fix
# before (Dockerfile) FROM gcr.io/distroless/cc # after FROM debian:bookworm-slim RUN apt-get update && apt-get install -y python3 python3-venv
Defensive patterns
Strategy: validation
Validate before calling
// shell: verify a package manager before enabling env management for pm in apt-get dnf yum brew apk; do command -v "$pm" >/dev/null 2>&1 && echo "found: $pm" && exit 0 done echo "no package manager found" >&2; exit 1
Try / catch
match env_manager.setup(plugin).await {
Err(PluginEnvironmentError::PackageManagerNotFound(pm)) => {
eprintln!("install {pm} or pre-provision the environment");
Err(anyhow!("package manager {pm} missing"))
}
other => other,
} Prevention
- Use base images that include a package manager (not distroless) when env management is on
- Keep the manager binary on the influxdb3 process PATH
- Pre-provision plugin environments to avoid needing a package manager at all
- Document supported distros for plugin environment management
When it happens
Trigger: Triggering plugin environment setup (installing plugin dependencies) on a system where the expected package manager binary is absent from PATH, or on an unsupported OS/distribution.
Common situations: Running influxdb3 in a minimal/slim container (no apt/yum installed); running as non-root in a distroless image; deploying on Alpine where apt/dnf are absent; PATH stripped in the systemd unit.
Related errors
- External call failed
- Failed to list packages
- Package installation has been disabled. Contact your…
- Plugin environment management is disabled
- Virtual environment error
AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19).
Data as JSON: /api/errors/b16b2709d5bd4950.
Report an issue: GitHub.
Appendix: source
Thrown at influxdb3_processing_engine/src/environment.rs:15
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,
}
View on GitHub (pinned to 06200ef96b)