diff --git a/gorm.go b/gorm.go index 1445e40b..d67d6685 100644 --- a/gorm.go +++ b/gorm.go @@ -347,13 +347,15 @@ func (db *DB) Callback() *callbacks { // AddError add error to db func (db *DB) AddError(err error) error { - if db.Error == nil { - db.Error = err - } else if err != nil { + if err != nil { if errTranslator, ok := db.Dialector.(ErrorTranslator); ok { err = errTranslator.Translate(err) } + } + if db.Error == nil { + db.Error = err + } else if err != nil { db.Error = fmt.Errorf("%v; %w", db.Error, err) } return db.Error