go-gorm/gorm · error
preload is not allowed when count is used
Error message
preload is not allowed when count is used
What it means
Error "preload is not allowed when count is used" thrown in go-gorm/gorm.
Source
Thrown at errors.go:47
ErrInvalidData = errors.New("unsupported data")
// ErrUnsupportedDriver unsupported driver
ErrUnsupportedDriver = errors.New("unsupported driver")
// ErrRegistered registered
ErrRegistered = errors.New("registered")
// ErrInvalidField invalid field
ErrInvalidField = errors.New("invalid field")
// ErrEmptySlice empty slice found
ErrEmptySlice = errors.New("empty slice found")
// ErrDryRunModeUnsupported dry run mode unsupported
ErrDryRunModeUnsupported = errors.New("dry run mode unsupported")
// ErrInvalidDB invalid db
ErrInvalidDB = errors.New("invalid db")
// ErrInvalidValue invalid value
ErrInvalidValue = errors.New("invalid value, should be pointer to struct or slice")
// ErrInvalidValueOfLength invalid values do not match length
ErrInvalidValueOfLength = errors.New("invalid association values, length doesn't match")
// ErrPreloadNotAllowed preload is not allowed when count is used
ErrPreloadNotAllowed = errors.New("preload is not allowed when count is used")
// ErrDuplicatedKey occurs when there is a unique key constraint violation
ErrDuplicatedKey = errors.New("duplicated key not allowed")
// ErrForeignKeyViolated occurs when there is a foreign key constraint violation
ErrForeignKeyViolated = errors.New("violates foreign key constraint")
// ErrCheckConstraintViolated occurs when there is a check constraint violation
ErrCheckConstraintViolated = errors.New("violates check constraint")
)
View on GitHub (pinned to 1d6ce99528)
Solutions
- Remove Preload calls when chaining Count, e.g. db.Model(&User{}).Where(...).Count(&n).
- Run the Count query separately from the preloading query.
- Use Select with subqueries instead of Preload when you also need counts.
Example fix
Do not combine Preload with Count; run the count on a separate session: db.Session(&gorm.Session{}).Count(&n) When it happens
Trigger: Thrown at errors.go:47 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/4927c66e9c33f1bb.
Report an issue: GitHub.