{"record":{"id":"3756e6a88beb7482","repo":"risingwavelabs/risingwave","slug":"foyer-error-0","errorCode":null,"errorMessage":"Foyer error: {0}","messagePattern":"Foyer error: (.+?)","errorType":"exception","errorClass":"HummockError","httpStatus":null,"severity":"error","filePath":"src/storage/src/hummock/error.rs","lineNumber":77,"sourceCode":"        table_id: TableId,\n        committed_epoch: u64,\n        read_epoch: u64,\n    },\n    #[error(\"Barrier read is unavailable for now. Likely the cluster is recovering\")]\n    ReadCurrentEpoch,\n    #[error(\"CompactionExecutor error: {0}\")]\n    CompactionExecutor(String),\n    #[error(\"FileCache error: {0}\")]\n    FileCache(String),\n    #[error(\"SstObjectIdTracker error: {0}\")]\n    SstObjectIdTrackerError(String),\n    #[error(\"CompactionGroup error: {0}\")]\n    CompactionGroupError(String),\n    #[error(\"SstableUpload error: {0}\")]\n    SstableUploadError(String),\n    #[error(\"Read backup error: {0}\")]\n    ReadBackupError(String),\n    #[error(\"Foyer error: {0}\")]\n    FoyerError(#[from] foyer::Error),\n    #[error(\"Other error: {0}\")]\n    Other(String),\n}\n\nimpl HummockError {\n    pub fn invalid_format_version(v: u32) -> HummockError {\n        HummockErrorInner::InvalidFormatVersion(v).into()\n    }\n\n    pub fn invalid_block() -> HummockError {\n        HummockErrorInner::InvalidBlock.into()\n    }\n\n    pub fn encode_error(error: impl ToString) -> HummockError {\n        HummockErrorInner::EncodeError(error.to_string()).into()\n    }\n","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/storage/src/hummock/error.rs#L59-L95","documentation":"A Hummock (RisingWave storage engine) error wrapping a foyer (cache) library failure via #[from]. It is converted automatically whenever any foyer cache operation fails, e.g. cache lookups, insertions, or reinsertions.","triggerScenarios":"Any code path that interacts with the foyer cache (read/write through the block or meta cache) surfaces an underlying foyer::Error, which is auto-converted into HummockError::FoyerError.","commonSituations":"Disk or memory cache backend misconfiguration, I/O failures on the cache directory, cache eviction/internal foyer invariants violated, or incompatible foyer versions after dependency upgrades.","solutions":["Inspect the inner foyer::Error message (the {0} payload) for the root cause","Check the foyer cache directory permissions, disk space, and configuration (capacity, path)","Update or pin foyer to a compatible version matching RisingWave's dependency tree","If reproducible, file an issue with the wrapped foyer error details"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// No pre-call validation possible for internal cache failures.\n// Ensure cache dir exists and is writable at startup:\n// std::fs::create_dir_all(&cache_dir)?;","typeGuard":null,"tryCatchPattern":"match result {\n    Err(e) if matches!(e.as_ref(), HummockError::FoyerError(_)) => {\n        tracing::warn!(error = ?e, \"foyer cache failure\");\n        // fall back to non-cached read path\n    }\n    other => other?,\n}","preventionTips":["Verify foyer cache configuration (path, capacity) before startup","Monitor disk space and permissions on cache directories","Pin foyer dependency versions to those tested with your RisingWave build"],"tags":["storage","cache","hummock"],"backgroundTag":"cache-io-failed","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}