diff --git a/lib/utils/fs.go b/lib/utils/fs.go index 3317292da901e..1d5a323765a9b 100644 --- a/lib/utils/fs.go +++ b/lib/utils/fs.go @@ -302,7 +302,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 {