@@ -19,6 +19,7 @@ import (
19
19
"github.com/ovh/cds/engine/api/authentication"
20
20
"github.com/ovh/cds/engine/api/database/gorpmapping"
21
21
"github.com/ovh/cds/engine/api/services"
22
+ "github.com/ovh/cds/engine/gorpmapper"
22
23
"github.com/ovh/cds/sdk"
23
24
"github.com/ovh/cds/sdk/telemetry"
24
25
)
@@ -84,7 +85,12 @@ func UpdateWorkflowRun(ctx context.Context, db gorp.SqlExecutor, wr *sdk.Workflo
84
85
85
86
runDB := Run (* wr )
86
87
if _ , err := db .Update (& runDB ); err != nil {
87
- return sdk .WrapError (err , "Unable to update workflow run" )
88
+ if e , ok := err .(* pq.Error ); ok {
89
+ if e .Code == gorpmapper .ViolateUniqueKeyPGCode {
90
+ return sdk .NewError (sdk .ErrConflictData , e )
91
+ }
92
+ }
93
+ return sdk .WrapError (err , "unable to update workflow run" )
88
94
}
89
95
wr .ID = runDB .ID
90
96
return nil
@@ -284,7 +290,7 @@ func LoadRunsIDsToDelete(db gorp.SqlExecutor, offset int64, limit int64) ([]int6
284
290
}
285
291
286
292
var ids []int64
287
- querySelect := `SELECT id FROM workflow_run
293
+ querySelect := `SELECT id FROM workflow_run
288
294
WHERE to_delete = true
289
295
ORDER BY workflow_run.start ASC limit $1 offset $2`
290
296
_ , err = db .Select (& ids , querySelect , limit , offset )
0 commit comments