{"record":{"id":"a3d3e9c467d4c6fa","repo":"sxyazi/yazi","slug":"unsupported-a3d3e9","errorCode":"Unsupported","errorMessage":"Unsupported filesystem","messagePattern":"Unsupported filesystem","errorType":"exception","errorClass":"io::Error","httpStatus":null,"severity":"error","filePath":"yazi-vfs/src/engine/engine.rs","lineNumber":144,"sourceCode":"\tV: AsUrl,\n{\n\tlet (original, link) = (original.as_url(), link.as_url());\n\tif original.auth().same_service(link.auth()) {\n\t\tEngines::new(original).await?.hard_link(link.loc()).await\n\t} else {\n\t\tErr(io::ErrorKind::CrossesDevices.into())\n\t}\n}\n\nasync fn identical<U, V>(a: U, b: V) -> io::Result<bool>\nwhere\n\tU: AsUrl,\n\tV: AsUrl,\n{\n\tif let (Some(a), Some(b)) = (a.as_url().as_local(), b.as_url().as_local()) {\n\t\tyazi_fs::engine::local::identical(a, b).await\n\t} else {\n\t\tErr(io::Error::new(io::ErrorKind::Unsupported, \"Unsupported filesystem\"))\n\t}\n}\n\npub async fn metadata<U>(url: U) -> io::Result<Cha>\nwhere\n\tU: AsUrl,\n{\n\tEngines::new(url.as_url()).await?.metadata().await\n}\n\npub async fn must_identical<U, V>(a: U, b: V) -> bool\nwhere\n\tU: AsUrl,\n\tV: AsUrl,\n{\n\tidentical(a, b).await.unwrap_or(false)\n}\n","sourceCodeStart":126,"sourceCodeEnd":162,"githubUrl":"https://github.com/sxyazi/yazi/blob/5f901b886b14de1f17460b6e52e9de5d67f8aba9/yazi-vfs/src/engine/engine.rs#L126-L162","documentation":"Guard in `engine::identical`: the comparison is only implemented for local paths, and at least one of the two URLs is not local (no local path representation). The engine returns `Unsupported` rather than a hard I/O error; the caller `must_identical` propagates it. The faulting inputs are the non-local URL(s).","triggerScenarios":"Thrown at yazi-vfs/src/engine/engine.rs:144 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Compare local paths only; for remote services, implement a service-specific identity check.","Skip the identity optimization when either side is remote instead of relying on this function."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5f901b886b14de1f17460b6e52e9de5d67f8aba9","analyzedAt":"2026-09-02T18:38:25.566Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}