influxdata/influxdb · warning · CatalogError
plugin trigger is already enabled
Error message
plugin trigger is already enabled
What it means
CatalogError::TriggerAlreadyEnabled is thrown when enabling a plugin trigger that is already in the enabled state. The catalog checks the trigger's current status during the enable operation and rejects the redundant state transition (raised from trigger enable ops, e.g. influxdb3_catalog/src/catalog/versions/v3/ops/trigger.rs:178).
Solutions
- Check the trigger's current status before enabling (query the trigger list/status) and skip the call if it is already enabled.
- Treat this error as success in idempotent automation: catch it and continue when the intent was 'ensure enabled'.
- Use the disable API first if you truly need to re-enable the trigger fresh.
Example fix
// before
client.post("/api/v3/configure/triggers/enable", {"trigger": "my_trigger"}); // fails on re-run
// after
let status = client.get("/api/v3/configure/triggers/my_trigger").status;
if (status !== "enabled") {
client.post("/api/v3/configure/triggers/enable", {"trigger": "my_trigger"});
} Defensive patterns
Strategy: try-catch
Validate before calling
const trig = await client.get(`/api/v3/configure/triggers/${name}`);
if (trig.status === "enabled") return; // already enabled Try / catch
try {
await enableTrigger(name);
} catch (e) {
if (e.message.includes("already enabled")) return; // treat as success
throw e;
} Prevention
- Make enable calls idempotent: check status first.
- Serialize trigger management through a single control plane/lock.
- Never blindly retry enable requests after ambiguous failures.
When it happens
Trigger: POSTing to the trigger enable API (/api/v3/configure/... enable trigger) for a trigger whose status is already 'enabled', or calling catalog enable_trigger twice without an intervening disable.
Common situations: Idempotency problems in deployment scripts that re-run enable commands; racing API calls where two clients enable the same trigger concurrently; retrying a request whose first attempt actually succeeded.
Understand the failure class
Background: "Invalid state transition" errors: "status must be X, actually Y", "already rejected/charging/uninstalled", "cannot ... while running" — what they mean when a library rejects your call — this error's family across 31 libraries.
Related errors
- plugin trigger is already disabled
- Cannot delete plugin
- Cannot delete running plugin
- Invalid endpoint
- {0}
AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19).
Data as JSON: /api/errors/e3ec3b01f97892d5.
Report an issue: GitHub.
Appendix: source
Thrown at influxdb3_catalog/src/error.rs:84
#[error(
"persisted catalog checkpoint sequence {checkpoint_sequence} is ahead of live catalog sequence {live_sequence}"
)]
BackupCheckpointAhead {
checkpoint_sequence: u64,
live_sequence: u64,
},
#[error("invalid configuration provided: {message}")]
InvalidConfiguration { message: Box<str> },
#[error("only tag and string columns are supported in the distinct cache")]
InvalidDistinctCacheColumnType,
#[error("only uint64, int64, bool, tag, and string columns are supported in the last cache")]
InvalidLastCacheKeyColumnType,
#[error("plugin trigger is already enabled")]
TriggerAlreadyEnabled,
#[error("plugin trigger is already disabled")]
TriggerAlreadyDisabled,
#[error("invalid column type for column '{column_name}', expected {expected}, got {got}")]
InvalidColumnType {
column_name: Arc<str>,
expected: InfluxColumnType,
got: InfluxColumnType,
},
#[error("'{0}' is a reserved column")]
ReservedColumn(Arc<str>),
#[error(
"table '{table_name}' is not defined in database '{db_name}', which uses explicit schemas; \
create the table with the /api/v3/configure/table API before writing to it"View on GitHub (pinned to 06200ef96b)