Skip to content

go.gorm.query_timeout

Stability High

Detects GORM queries without timeout configuration.

Queries without timeouts:

  • Resource blocking - Slow queries hold connections indefinitely
  • Cascading failures - Database issues propagate to application
  • Poor user experience - Requests hang without feedback
// ❌ Before (no query timeout)
func GetUser(id uint) (*User, error) {
var user User
err := db.First(&user, id).Error
return &user, err
}
// ✅ After (with context timeout)
func GetUser(ctx context.Context, id uint) (*User, error) {
ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
defer cancel()
var user User
err := db.WithContext(ctx).First(&user, id).Error
return &user, err
}
  • GORM queries without context
  • Missing WithContext calls
  • Hardcoded long timeout values

Unfault can wrap queries with context timeout patterns.