{"record":{"id":"74a45429d710819d","repo":"biomejs/biome","slug":"memory-fs-doesn-t-support-symlinks","errorCode":null,"errorMessage":"memory FS doesn't support symlinks","messagePattern":"memory FS doesn't support symlinks","errorType":"exception","errorClass":"io::Error","httpStatus":null,"severity":"error","filePath":"crates/biome_fs/src/fs/memory.rs","lineNumber":249,"sourceCode":"        let mut cb_guard = cb_arc.lock();\n\n        let cb = cb_guard.take().unwrap();\n\n        Ok(cb())\n    }\n\n    fn get_staged_files(&self) -> io::Result<Vec<String>> {\n        let cb_arc = self.on_get_staged_files.as_ref().unwrap().clone();\n\n        let mut cb_guard = cb_arc.lock();\n\n        let cb = cb_guard.take().unwrap();\n\n        Ok(cb())\n    }\n\n    fn read_link(&self, _path: &Utf8Path) -> io::Result<Utf8PathBuf> {\n        Err(io::Error::new(\n            io::ErrorKind::Unsupported,\n            \"memory FS doesn't support symlinks\",\n        ))\n    }\n}\n\nstruct MemoryFile {\n    inner: ArcMutexGuard<RawMutex, Vec<u8>>,\n    can_read: bool,\n    can_write: bool,\n    version: i32,\n}\n\nimpl File for MemoryFile {\n    fn read_to_string(&mut self, buffer: &mut String) -> io::Result<()> {\n        if !self.can_read {\n            return Err(io::Error::new(\n                io::ErrorKind::PermissionDenied,","sourceCodeStart":231,"sourceCodeEnd":267,"githubUrl":"https://github.com/biomejs/biome/blob/405dedb0ff65dd29927faf587f6542e3c29db248/crates/biome_fs/src/fs/memory.rs#L231-L267","documentation":"Error \"memory FS doesn't support symlinks\" thrown in biomejs/biome.","triggerScenarios":"Thrown at crates/biome_fs/src/fs/memory.rs:249 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Avoid calling `read_link` on a memory filesystem; use the on-disk filesystem for symlink operations.","Gate the symlink code path so it is only reached for filesystems that support links."],"exampleFix":"match fs.read_link(path) { Ok(target) => ..., Err(_) => /* treat as unsupported */ }","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"405dedb0ff65dd29927faf587f6542e3c29db248","analyzedAt":"2026-08-20T00:25:09.682Z","contentChangedAt":"2026-08-20T00:25:09.682Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}