From 188ffacf415f95152b904c40ac48fa9980b05bf4 Mon Sep 17 00:00:00 2001 From: rustbasic <127506429+rustbasic@users.noreply.github.com> Date: Tue, 7 Apr 2026 17:38:57 +0900 Subject: [PATCH] Log `localStorage` write failures in `local_storage_set` (#8062) Log `localStorage` write failures in `local_storage_set` **Description** This PR improves `local_storage_set()` logging in `eframe/src/web/storage.rs`. It logs: - write failures with key and browser error - unavailable local storage This helps diagnose web persistence issues such as `QuotaExceededError` when `localStorage.setItem()` fails. --------- Co-authored-by: Emil Ernerfeldt --- crates/eframe/src/web/storage.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/crates/eframe/src/web/storage.rs b/crates/eframe/src/web/storage.rs index 170798dc6..baa3ad83b 100644 --- a/crates/eframe/src/web/storage.rs +++ b/crates/eframe/src/web/storage.rs @@ -9,7 +9,19 @@ pub fn local_storage_get(key: &str) -> Option { /// Write data to local storage. pub fn local_storage_set(key: &str, value: &str) { - local_storage().map(|storage| storage.set_item(key, value)); + match local_storage() { + Some(storage) => { + if let Err(err) = storage.set_item(key, value) { + log::warn!( + "local_storage_set failed: key={key}, err={}", + crate::web::string_from_js_value(&err) + ); + } + } + None => { + log::warn!("local_storage unavailable"); + } + } } #[cfg(feature = "persistence")]