diff --git a/src/agent/onefuzz/src/monitor.rs b/src/agent/onefuzz/src/monitor.rs index 5715b8bdf7..32938a46ec 100644 --- a/src/agent/onefuzz/src/monitor.rs +++ b/src/agent/onefuzz/src/monitor.rs @@ -3,7 +3,7 @@ use std::path::{Path, PathBuf}; -use anyhow::{format_err, Context, Result}; +use anyhow::{format_err, Result}; use notify::{ event::{CreateKind, ModifyKind, RenameMode}, Event, EventKind, Watcher, @@ -132,17 +132,21 @@ impl DirectoryMonitor { } } CreateKind::Any | CreateKind::Other => { + // Short-circuit and report this path if we're reporting everything. if self.report_directories { return Ok(Some(path)); } - // check if it is a file - let metadata = fs::metadata(&path) - .await - .context("checking metadata for file")?; - - if metadata.is_file() { - return Ok(Some(path)); + match fs::metadata(&path).await { + Ok(metadata) => { + // We're only reporting files, so make sure this is a file first. + if metadata.is_file() { + return Ok(Some(path)); + } + } + Err(e) => { + warn!("failed to get metadata for {}: {:?}", path.display(), e); + } } } }