{"record":{"id":"b9e9e3a2f98508ec","repo":"zed-industries/zed","slug":"credential-storage-is-not-available-on-the-web","errorCode":null,"errorMessage":"credential storage is not available on the web","messagePattern":"credential storage is not available on the web","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/gpui_web/src/platform.rs","lineNumber":641,"sourceCode":"                    // other web apps routinely carry `text/html` and\n                    // `web application/...` custom formats whose `getType`\n                    // fetches would be wasted or rejected.\n                    if mime_type == \"text/plain\" {\n                        match read_clipboard_item_text(&item, &mime_type).await {\n                            Ok(text) if !text.is_empty() => {\n                                entries.push(ClipboardEntry::String(ClipboardString::new(text)));\n                            }\n                            Ok(_) => {}\n                            Err(error) => log_clipboard_entry_error(&mime_type, &error),\n                        }\n                    } else if let Some(format) = ImageFormat::from_mime_type(&mime_type) {\n                        match read_clipboard_item_bytes(&item, &mime_type).await {\n                            Ok(bytes) => {\n                                entries\n                                    .push(ClipboardEntry::Image(Image::from_bytes(format, bytes)));\n                            }\n                            Err(error) => log_clipboard_entry_error(&mime_type, &error),\n                        }\n                    } else {\n                        saw_unsupported_type = true;\n                    }\n                }\n            }\n            if !entries.is_empty() {\n                Ok(Some(ClipboardItem { entries }))\n            } else if saw_unsupported_type {\n                Err(ClipboardReadError::UnsupportedContent)\n            } else {\n                Ok(None)\n            }\n        })\n    }\n\n    fn write_to_clipboard(&self, item: ClipboardItem) {\n        if let Some(text) = item.text()\n            && let Some(window) = web_sys::window()","sourceCodeStart":623,"sourceCodeEnd":659,"githubUrl":"https://github.com/zed-industries/zed/blob/9d272b036335401f339d024ea94968fd51016c40/crates/gpui_web/src/platform.rs#L623-L659","documentation":"Raised in the gpui web platform's credential handling: write/read credentials is invoked, but browser environments provide no secure credential-storage backend, so the platform stub rejects the operation. It is a capability guard, not an authentication failure.","triggerScenarios":"Thrown at crates/gpui_web/src/platform.rs:631 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use the Web Authentication / Credential Management APIs or server-side storage on the web","Detect the platform and skip secret-storage features in web builds","Handle the sentinel so auth flows fall back to in-memory or session-only credentials"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9d272b036335401f339d024ea94968fd51016c40","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}