{"record":{"id":"bb03231bb1994155","repo":"bevyengine/bevy","slug":"failed-to-create-file-watcher-from-path-path","errorCode":null,"errorMessage":"Failed to create file watcher from path {path:?}, {e:?}","messagePattern":"Failed to create file watcher from path (.+?), (.+?)","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/bevy_asset/src/io/source.rs","lineNumber":561,"sourceCode":"    ) -> impl FnMut(async_channel::Sender<AssetSourceEvent>) -> Option<Box<dyn AssetWatcher>> + Send + Sync\n    {\n        move |sender: async_channel::Sender<AssetSourceEvent>| {\n            #[cfg(all(\n                feature = \"file_watcher\",\n                not(target_arch = \"wasm32\"),\n                not(target_os = \"android\")\n            ))]\n            {\n                let path = super::file::get_base_path().join(path.clone());\n                if path.exists() {\n                    Some(Box::new(\n                        super::file::FileWatcher::new(\n                            path.clone(),\n                            sender,\n                            file_debounce_wait_time,\n                        )\n                        .unwrap_or_else(|e| {\n                            panic!(\"Failed to create file watcher from path {path:?}, {e:?}\")\n                        }),\n                    ))\n                } else {\n                    warn!(\"Skip creating file watcher because path {path:?} does not exist.\");\n                    None\n                }\n            }\n            #[cfg(any(\n                not(feature = \"file_watcher\"),\n                target_arch = \"wasm32\",\n                target_os = \"android\"\n            ))]\n            return None;\n        }\n    }\n\n    /// This will cause processed [`AssetReader`](crate::io::AssetReader) futures (such as [`AssetReader::read`](crate::io::AssetReader::read)) to wait until\n    /// the [`AssetProcessor`](crate::AssetProcessor) has finished processing the requested asset.","sourceCodeStart":543,"sourceCodeEnd":579,"githubUrl":"https://github.com/bevyengine/bevy/blob/396ca727080776bd313bb892423b7d94e03b81b4/crates/bevy_asset/src/io/source.rs#L543-L579","documentation":"Logged/produced in AssetSourceBuilders watcher construction: creating the FileWatcher for the given directory path failed (notify crate error). Hot-reloading for that asset source is unavailable; the error reports the path and underlying cause `e`.","triggerScenarios":"Thrown at crates/bevy_asset/src/io/source.rs:561 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the watcher error kind: path may be missing, permissions insufficient, or inotify/fs event limits exhausted (Linux)","Ensure the asset source directory exists and is watchable","Run without hot-reloading (disable the file_watcher feature) if watching is not required"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"396ca727080776bd313bb892423b7d94e03b81b4","analyzedAt":"2026-08-20T16:12:39.808Z","contentChangedAt":"2026-08-20T16:12:39.808Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}