go-gorm/gorm · error
invalid embedded struct for %s's field %s, should be struct,
Error message
invalid embedded struct for %s's field %s, should be struct, but got %v
What it means
Error "invalid embedded struct for %s's field %s, should be struct, but got %v" thrown in go-gorm/gorm.
Source
Thrown at schema/field.go:443
ef.PrimaryKey = false
if val, ok := ef.TagSettings["AUTOINCREMENT"]; !ok || !utils.CheckTruth(val) {
ef.AutoIncrement = false
}
if !ef.AutoIncrement && ef.DefaultValue == "" {
ef.HasDefaultValue = false
}
}
}
for k, v := range field.TagSettings {
ef.TagSettings[k] = v
}
}
case reflect.Invalid, reflect.Uintptr, reflect.Array, reflect.Chan, reflect.Func, reflect.Interface,
reflect.Map, reflect.Ptr, reflect.Slice, reflect.UnsafePointer, reflect.Complex64, reflect.Complex128:
schema.err = fmt.Errorf("invalid embedded struct for %s's field %s, should be struct, but got %v", field.Schema.Name, field.Name, field.FieldType)
}
}
return field
}
// create valuer, setter when parse struct
func (field *Field) setupValuerAndSetter(modelType reflect.Type) {
// Setup NewValuePool
field.setupNewValuePool()
// ValueOf returns field's value and if it is zero
fieldIndex := field.StructField.Index[0]
switch {
case len(field.StructField.Index) == 1 && fieldIndex >= 0:
field.ValueOf = func(ctx context.Context, v reflect.Value) (interface{}, bool) {
v = reflect.Indirect(v)
fieldValue := v.Field(fieldIndex)View on GitHub (pinned to 1d6ce99528)
Solutions
- Ensure the field marked with `gorm:"embedded"` is a struct or pointer to struct.
- Remove the embedded tag from non-struct fields.
- Check for typo'd field types in the embedded field declaration.
Example fix
Make the embedded field a struct (not pointer to non-struct): `gorm:"embedded"` on a struct type field.
When it happens
Trigger: Thrown at schema/field.go:443 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/4b0c068f2df11e33.
Report an issue: GitHub.