diff --git a/lib/utils/fs.go b/lib/utils/fs.go index 773af7f7001ca..c8c97279208a1 100644 --- a/lib/utils/fs.go +++ b/lib/utils/fs.go @@ -284,7 +284,10 @@ func removeSecure(filePath string, fi os.FileInfo) error { } } } - return trace.ConvertSystemError(os.Remove(filePath)) + // The file should be closed before removing it on Windows. + closeErr := trace.ConvertSystemError(f.Close()) + removeErr := trace.ConvertSystemError(os.Remove(filePath)) + return trace.NewAggregate(closeErr, removeErr) } else { removeErr := os.Remove(filePath) if f != nil {