influxdata/influxdb · error · ProcessingEngineError
catalog update error
Error message
catalog update error: {0} What it means
ProcessingEngineError::CatalogUpdateError with #[from] CatalogError — an automatic conversion of catalog write failures into the processing-engine error type. It means an underlying catalog (metadata store) update failed while persisting trigger/plugin configuration changes.
Solutions
- Retry the operation; catalog updates can fail transiently under contention.
- Inspect the inner CatalogError message for the root cause (e.g. instance not found, serializer error).
- Avoid concurrent modifications to the same trigger/db metadata.
- Verify the server's catalog storage backend is healthy and writable.
Defensive patterns
Strategy: retry
Try / catch
try {
await createTrigger(cfg);
} catch (e) {
if (String(e).startsWith('catalog update error')) {
await delay(500); await createTrigger(cfg); // retry transient catalog contention
} else { throw e; }
} Prevention
- Avoid concurrent mutations of the same trigger/database metadata.
- Keep the catalog storage backend healthy (disk space, permissions).
- Inspect the inner CatalogError for root cause before retrying blindly.
When it happens
Trigger: Any processing-engine operation that must persist metadata (create/delete trigger, update trigger relationships) when the underlying CatalogExt/catalog write returns CatalogError.
Common situations: Catalog writer contention or serialization failures; concurrent trigger modifications; catalog store backend (memory/disk) unavailable during shutdown or crash.
Related errors
AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19).
Data as JSON: /api/errors/7ea648d3fa5a86c0.
Report an issue: GitHub.
Appendix: source
Thrown at influxdb3_processing_engine/src/manager.rs:12
use crate::environment::PluginEnvironmentError;
use influxdb3_catalog::CatalogError;
use influxdb3_id::{DbId, TriggerId};
use std::fmt::Debug;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum ProcessingEngineError {
#[error("database not found: {0}")]
DatabaseNotFound(String),
#[error("catalog update error: {0}")]
CatalogUpdateError(#[from] CatalogError),
#[error("write buffer error: {0}")]
WriteBufferError(#[from] influxdb3_write::write_buffer::Error),
#[error("wal error: {0}")]
WalError(#[from] influxdb3_wal::Error),
#[error("plugin error: {0}")]
PluginError(#[from] crate::plugins::PluginError),
#[error("processing engine trigger {trigger_id} not found in database {db_id}")]
TriggerNotFound { db_id: DbId, trigger_id: TriggerId },
#[error("request trigger not found")]
RequestTriggerNotFound,
#[error("request handler for trigger down")]View on GitHub (pinned to 06200ef96b)