go-gorm/gorm · error
failed to set value %#v to field %s
Error message
failed to set value %#v to field %s
What it means
Error "failed to set value %#v to field %s" thrown in go-gorm/gorm.
Source
Thrown at schema/field.go:588
return
}
}
if reflectV.Kind() == reflect.Ptr {
if reflectV.IsNil() {
field.ReflectValueOf(ctx, value).Set(reflect.New(field.FieldType).Elem())
} else if reflectV.Type().Elem().AssignableTo(field.FieldType) {
field.ReflectValueOf(ctx, value).Set(reflectV.Elem())
return
} else {
err = setter(ctx, value, reflectV.Elem().Interface())
}
} else if valuer, ok := v.(driver.Valuer); ok {
if v, err = valuer.Value(); err == nil {
err = setter(ctx, value, v)
}
} else if _, ok := v.(clause.Expr); !ok {
return fmt.Errorf("failed to set value %#v to field %s", v, field.Name)
}
}
return
}
// Set
switch field.FieldType.Kind() {
case reflect.Bool:
field.Set = func(ctx context.Context, value reflect.Value, v interface{}) error {
switch data := v.(type) {
case **bool:
if data != nil && *data != nil {
field.ReflectValueOf(ctx, value).SetBool(**data)
}
case bool:
field.ReflectValueOf(ctx, value).SetBool(data)
case int64:View on GitHub (pinned to 1d6ce99528)
Solutions
- Check the value type is assignable to the field type or convertible via reflection.
- Implement sql.Scanner/driver.Valuer on the field type for custom conversions.
- Ensure the field is exported and addressable (destination passed as pointer).
Example fix
Match the assigned value's type to the field type or implement sql.Scanner/driver.Valuer on the field type.
When it happens
Trigger: Thrown at schema/field.go:588 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of go-gorm/gorm@1d6ce99528 (2026-08-15).
Data as JSON: /api/errors/706f3650464df73f.
Report an issue: GitHub.