{"record":{"id":"ede15c39be26bf3c","repo":"risingwavelabs/risingwave","slug":"hummock-error-0","errorCode":null,"errorMessage":"Hummock error: {0}","messagePattern":"Hummock error: (.+?)","errorType":"error_code","errorClass":"MetaError","httpStatus":null,"severity":"error","filePath":"src/meta/src/error.rs","lineNumber":52,"sourceCode":"    thiserror::Error,\n    thiserror_ext::ReportDebug,\n    thiserror_ext::Arc,\n    thiserror_ext::Construct,\n    thiserror_ext::Macro,\n)]\n#[thiserror_ext(\n    newtype(name = MetaError, backtrace, extra_provide = Self::provide_postgres_error_code),\n    macro(path = \"crate::error\")\n)]\npub enum MetaErrorInner {\n    #[error(\"Metadata model error: {0}\")]\n    MetadataModelError(\n        #[from]\n        #[backtrace]\n        MetadataModelError,\n    ),\n\n    #[error(\"Hummock error: {0}\")]\n    HummockError(\n        #[from]\n        #[backtrace]\n        HummockError,\n    ),\n\n    #[error(transparent)]\n    RpcError(\n        #[from]\n        #[backtrace]\n        RpcError,\n    ),\n\n    #[error(\"{0}\")]\n    PermissionDenied(String),\n\n    #[error(\"Invalid worker: {0}, {1}\")]\n    InvalidWorker(WorkerId, String),","sourceCodeStart":34,"sourceCodeEnd":70,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/meta/src/error.rs#L34-L70","documentation":"MetaError::HummockError wraps the Hummock (RisingWave's cloud-native storage engine) error type into the meta error enum, displayed as 'Hummock error: {inner}'. Any failure in the state-store layer touched from the meta service (SST operations, version management, remote storage) surfaces through this wrapper.","triggerScenarios":"Meta-side Hummock operations failing via #[from] HummockError — e.g. committing new Hummock versions, GC/compaction scheduling, or reading object metadata — typically due to S3/object-store issues or version conflicts.","commonSituations":"Misconfigured or unreachable object storage (wrong S3 credentials/bucket); network problems to the object store; Hummock version conflicts after node restarts; full or throttled storage backends.","solutions":["Inspect the wrapped inner Hummock error for the concrete cause (IO, credentials, timeout).","Verify object-store configuration (endpoint, bucket, credentials) and connectivity from the meta/worker nodes.","Retry transient failures; for persistent GC/version errors, check hummock state in the meta catalog.","Consult storage logs on both meta and compute nodes to localize which component failed."],"exampleFix":null,"handlingStrategy":"retry","validationCode":"// Verify object-store reachability before Hummock-heavy operations\nlet ok = s3_client.head_bucket(BucketName).await.is_ok();\nassert!(ok, \"object store must be reachable before meta operations\");","typeGuard":"fn is_hummock_error(e: &MetaError) -> bool {\n    matches!(e, MetaError::HummockError(_))\n}","tryCatchPattern":"match commit_hummock_version().await {\n    Err(e @ MetaError::HummockError(inner)) if is_transient(&inner) => {\n        retry_with_backoff(3, || commit_hummock_version()).await?\n    }\n    other => other?,\n}","preventionTips":["Validate object-store credentials/bucket config at startup with a smoke test.","Set up monitoring on S3/object-store error rates and latency.","Distinguish transient (network/timeout) from permanent (config) inner errors before retrying."],"tags":["storage","hummock","error-wrapper","risingwave"],"backgroundTag":"database-write-failed","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}