From 6ec3534d202b99d46310d90032e36c3980f66e40 Mon Sep 17 00:00:00 2001 From: overtrue Date: Tue, 8 Sep 2026 13:00:41 +0800 Subject: [PATCH] fix(kms): preserve directory availability errors on main (cherry picked from commit c2a8e476f77e89f4b0a708c5cc9f0f8c7a0b14da) --- crates/kms/src/backends/local.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crates/kms/src/backends/local.rs b/crates/kms/src/backends/local.rs index 1e7764f36..38c486484 100644 --- a/crates/kms/src/backends/local.rs +++ b/crates/kms/src/backends/local.rs @@ -1233,6 +1233,9 @@ impl LocalKmsClient { async fn decode_stored_key(&self, key_id: &str) -> Result<(StoredMasterKey, Vec)> { let key_path = self.master_key_path(key_id)?; if !fs::try_exists(&key_path).await? { + // Only an accessible key store can establish that a single key is + // missing; a directory outage must retain its filesystem error. + let _ = fs::read_dir(&self.config.key_dir).await?; return Err(KmsError::key_not_found(key_id)); }