From 2b076cb7f70fdd0eac4e9ff2f7c193a38e3d7f7a Mon Sep 17 00:00:00 2001 From: kolaente Date: Thu, 5 Mar 2026 11:22:11 +0100 Subject: [PATCH] fix(migration): propagate specific CSV parse errors Previously all parseCSV errors were mapped to ErrNotACSVFile, hiding the actual cause. Now ErrFileIsEmpty is propagated correctly instead of being misreported as an invalid CSV file. --- pkg/modules/migration/csv/csv.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pkg/modules/migration/csv/csv.go b/pkg/modules/migration/csv/csv.go index 5d34dd6dd..7818b3ced 100644 --- a/pkg/modules/migration/csv/csv.go +++ b/pkg/modules/migration/csv/csv.go @@ -336,6 +336,10 @@ func DetectCSVStructure(file io.ReaderAt, size int64) (*DetectionResult, error) // Parse CSV headers, rows, err := parseCSV(data, delimiter, quoteChar) if err != nil { + var emptyErr *migration.ErrFileIsEmpty + if errors.As(err, &emptyErr) { + return nil, err + } return nil, &migration.ErrNotACSVFile{} } @@ -389,6 +393,10 @@ func PreviewImport(file io.ReaderAt, size int64, config ImportConfig) (*PreviewR _, rows, err := parseCSV(data, config.Delimiter, config.QuoteChar) if err != nil { + var emptyErr *migration.ErrFileIsEmpty + if errors.As(err, &emptyErr) { + return nil, err + } return nil, &migration.ErrNotACSVFile{} } @@ -554,6 +562,10 @@ func MigrateWithConfig(u *user.User, file io.ReaderAt, size int64, config Import _, rows, err := parseCSV(data, config.Delimiter, config.QuoteChar) if err != nil { + var emptyErr *migration.ErrFileIsEmpty + if errors.As(err, &emptyErr) { + return err + } return &migration.ErrNotACSVFile{} }