{"record":{"id":"8636083000dcb885","repo":"risingwavelabs/risingwave","slug":"hummock-error-0-863608","errorCode":null,"errorMessage":"Hummock error: {0}","messagePattern":"Hummock error: (.+?)","errorType":"error_code","errorClass":"StorageError","httpStatus":null,"severity":"error","filePath":"src/storage/src/error.rs","lineNumber":24,"sourceCode":"//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nuse risingwave_common::util::value_encoding::error::ValueEncodingError;\nuse thiserror::Error;\n\nuse crate::hummock::HummockError;\nuse crate::mem_table::MemTableError;\n\n#[derive(Error, thiserror_ext::ReportDebug, thiserror_ext::Box)]\n#[thiserror_ext(newtype(name = StorageError, backtrace))]\npub enum ErrorKind {\n    #[error(\"Hummock error: {0}\")]\n    Hummock(\n        #[backtrace]\n        #[from]\n        HummockError,\n    ),\n\n    #[error(\"Deserialize row error: {0}\")]\n    DeserializeRow(\n        #[from]\n        #[backtrace]\n        ValueEncodingError,\n    ),\n\n    #[error(\"Serialize/deserialize error: {0}\")]\n    SerdeError(\n        #[from]\n        #[backtrace]\n        memcomparable::Error,","sourceCodeStart":6,"sourceCodeEnd":42,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/storage/src/error.rs#L6-L42","documentation":"A StorageError variant wrapping a HummockError via #[from]. Hummock is RisingWave's state-store layer; any failure inside it (S3/GCS I/O, checksum mismatch, compaction, version errors) surfaces through this display wrapper when propagated to storage-level callers.","triggerScenarios":"Any storage operation that internally returns a HummockResult::Err — e.g. get/put to object store failures, hummock version not found, checksum mismatches during read, compaction executor errors (see error 1969) — converted automatically into StorageError by the ? operator.","commonSituations":"Object store outages or expired cloud credentials, network partitions to S3, corrupt SST files, concurrent version bumps causing stale-version reads.","solutions":["Inspect the inner HummockError source (ReportDebug/backtrace) for the root cause","Fix the underlying cause: restore cloud credentials, retry transient network failures, or re-ingest corrupted data","If it stems from a stale hummock version, retry the operation after the version sync advances"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"match op().await {\n    Err(e) if matches!(e.kind(), StorageErrorKind::Hummock(_)) => {\n        // inspect inner HummockError; retry only if transient (network/throttle)\n        if is_transient(&e) { retry_with_backoff(op) } else { propagate(e) }\n    }\n    other => other,\n}","preventionTips":["Monitor object-store connectivity and credentials proactively","Set up retries with backoff for transient hummock/object-store failures","Keep hummock versions in sync across nodes to avoid stale-version errors"],"tags":["rust","storage","hummock","error-wrapping"],"backgroundTag":"internal-invariant-violation","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"}