From eade68d4a378b703ad1ca63898f900acd0baf81d Mon Sep 17 00:00:00 2001 From: Gani Georgiev Date: Sat, 22 Aug 2026 19:25:40 +0300 Subject: [PATCH] check for isdir error before logging --- core/backup_create.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/core/backup_create.go b/core/backup_create.go index 47825a39..7b1037cf 100644 --- a/core/backup_create.go +++ b/core/backup_create.go @@ -22,6 +22,8 @@ import ( "github.com/pocketbase/pocketbase/tools/store" ) +var errIsDir = errors.New("the specified path is a directory and not a regular file") + // CreateBackup creates a new backup of the current app pb_data directory. // // If name is empty, it will be autogenerated. @@ -192,11 +194,14 @@ func createZip(be *BackupEvent, tempZipPath string) error { // copy to zip before delete err := copyFileToZip(zw, localPath, zipPath) if err != nil { - be.App.Logger().Warn( - logPrefix+"failed to copy file in backup zip before delete", - slog.Any("error", err), - slog.String("file", e.FileKey), - ) + // it is ok to ignore directories + if !errors.Is(err, errIsDir) { + be.App.Logger().Warn( + logPrefix+"failed to copy file in backup zip before delete", + slog.Any("error", err), + slog.String("file", e.FileKey), + ) + } } else { // mark that it was already copied excluded.Set(normalizePathExclude(zipPath), struct{}{}) @@ -301,7 +306,6 @@ func normalizePathExclude(filePath string) string { return path.Clean(filePath) + "/" } -// note: directories are ignored func copyFileToZip(w *zip.Writer, localPath string, zipPath string) error { info, err := os.Stat(localPath) if err != nil { @@ -309,7 +313,7 @@ func copyFileToZip(w *zip.Writer, localPath string, zipPath string) error { } if info.IsDir() { - return nil + return errIsDir } h, err := zip.FileInfoHeader(info)