From 397faa9a86a0f2833b60d73832ce550f17bc393f Mon Sep 17 00:00:00 2001 From: James Ko Date: Wed, 2 Sep 2026 17:01:33 +0200 Subject: [PATCH] Close branch rows on early return and surface iteration errors in DeleteProject --- internal/envcfg/envcfg.go | 3 +-- services/projects/store/sqlstore/store_sql.go | 5 ++++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/internal/envcfg/envcfg.go b/internal/envcfg/envcfg.go index f714ae7e..44c34943 100644 --- a/internal/envcfg/envcfg.go +++ b/internal/envcfg/envcfg.go @@ -55,9 +55,8 @@ func initEnv() { loadErr = fmt.Errorf("load env: file '%v': %w", filename, err) break } - defer f.Close() - m, err := godotenv.Parse(f) + f.Close() if err != nil { loadErr = fmt.Errorf("read env: file '%v': %w", filename, err) break diff --git a/services/projects/store/sqlstore/store_sql.go b/services/projects/store/sqlstore/store_sql.go index cace657e..32476513 100644 --- a/services/projects/store/sqlstore/store_sql.go +++ b/services/projects/store/sqlstore/store_sql.go @@ -411,12 +411,15 @@ func (s *sqlProjectStore) DeleteProject(ctx context.Context, organizationID stri if err != nil { return err } + defer branches.Close() // there is at least one branch in the project if branches.Next() { return store.ErrProjectNotEmpty{ID: projectID} } - defer branches.Close() + if err := branches.Err(); err != nil { + return err + } // clean up any remaining backup entries for this project _, err = tx.ExecContext(ctx, "DELETE FROM backups WHERE project_id = $1", projectID)