{"record":{"id":"7ea648d3fa5a86c0","repo":"influxdata/influxdb","slug":"catalog-update-error-0","errorCode":null,"errorMessage":"catalog update error: {0}","messagePattern":"catalog update error: (.+?)","errorType":"exception","errorClass":"ProcessingEngineError","httpStatus":null,"severity":"error","filePath":"influxdb3_processing_engine/src/manager.rs","lineNumber":12,"sourceCode":"use crate::environment::PluginEnvironmentError;\nuse influxdb3_catalog::CatalogError;\nuse influxdb3_id::{DbId, TriggerId};\nuse std::fmt::Debug;\nuse thiserror::Error;\n\n#[derive(Debug, Error)]\npub enum ProcessingEngineError {\n    #[error(\"database not found: {0}\")]\n    DatabaseNotFound(String),\n\n    #[error(\"catalog update error: {0}\")]\n    CatalogUpdateError(#[from] CatalogError),\n\n    #[error(\"write buffer error: {0}\")]\n    WriteBufferError(#[from] influxdb3_write::write_buffer::Error),\n\n    #[error(\"wal error: {0}\")]\n    WalError(#[from] influxdb3_wal::Error),\n\n    #[error(\"plugin error: {0}\")]\n    PluginError(#[from] crate::plugins::PluginError),\n\n    #[error(\"processing engine trigger {trigger_id} not found in database {db_id}\")]\n    TriggerNotFound { db_id: DbId, trigger_id: TriggerId },\n\n    #[error(\"request trigger not found\")]\n    RequestTriggerNotFound,\n\n    #[error(\"request handler for trigger down\")]","sourceCodeStart":1,"sourceCodeEnd":30,"githubUrl":"https://github.com/influxdata/influxdb/blob/06200ef96ba82c5f6727e5038a83af8e722c6875/influxdb3_processing_engine/src/manager.rs#L1-L30","documentation":"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.","triggerScenarios":"Any processing-engine operation that must persist metadata (create/delete trigger, update trigger relationships) when the underlying CatalogExt/catalog write returns CatalogError.","commonSituations":"Catalog writer contention or serialization failures; concurrent trigger modifications; catalog store backend (memory/disk) unavailable during shutdown or crash.","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."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  await createTrigger(cfg);\n} catch (e) {\n  if (String(e).startsWith('catalog update error')) {\n    await delay(500); await createTrigger(cfg); // retry transient catalog contention\n  } else { throw e; }\n}","preventionTips":["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."],"tags":["processing-engine","catalog","thiserror"],"backgroundTag":"database-write-failed","analyzedSha":"06200ef96ba82c5f6727e5038a83af8e722c6875","analyzedAt":"2026-09-19T12:55:30.003Z","contentChangedAt":"2026-09-19T12:55:30.003Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}