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

  1. Retry the operation; catalog updates can fail transiently under contention.
  2. Inspect the inner CatalogError message for the root cause (e.g. instance not found, serializer error).
  3. Avoid concurrent modifications to the same trigger/db metadata.
  4. 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

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)