Revert temporary dedicated plan exclusion from usage billing access cut-off

Summary

This issue tracks the revert of the temporary fix implemented in !14561 (merged), which excluded dedicated plan customers from usage billing eligibility.

Background

!14561 (merged) was merged as a temporary workaround to prevent dedicated customers on older versions (18.6, 18.7) from experiencing "No Credits Error" and potential service cutoffs. The change added an early return in BillingEligibilityService#billable? that skips billing checks when subscription.dedicated_plan? returns true.

This was necessary because dedicated customers were waiting for a patch fix, and their upgrade schedules vary significantly. Without this temporary exclusion, these customers would have required a Self-Managed patch resulting in multiday outages.

Related incident: https://gitlab.com/gitlab-com/gl-infra/production/-/work_items/21119

What needs to be done

Once dedicated customers have updated to the patch fix, we need to:

  1. Confirm with the appropriate teams that all affected dedicated customers have successfully applied the patch and are no longer at risk of service disruption
  2. Verify that events received from these customers have the appropriate attributes that were added in the backport MRs to ensure proper billing eligibility checks
  3. Revert the changes from !14561 (merged) to restore normal billing eligibility checks for dedicated plan customers
  4. Implement the revert behind a feature flag to allow quick rollback if any issues arise, preventing customer escalations

Implementation approach

The revert should be implemented with a feature flag (e.g., enable_dedicated_billing_eligibility) that:

  • When enabled (default after rollout): Dedicated customers are subject to normal billing eligibility checks
  • When disabled (rollback scenario): Dedicated customers are excluded from billing eligibility (current behavior)

This approach ensures we can quickly disable the feature flag if unexpected issues occur, without requiring an emergency code revert.

Files affected

  • app/services/billing/usage/billing_eligibility_service.rb - Remove the early return for dedicated plans (or gate it behind feature flag)
  • spec/services/billing/usage/billing_eligibility_service_spec.rb - Update tests accordingly

Acceptance criteria

  • Confirmation received from relevant teams that dedicated customers have applied the patch
  • Feature flag created for controlling dedicated plan billing eligibility
  • Changes from !14561 (merged) reverted behind the feature flag
  • Tests updated to reflect the revert
  • Feature flag gradually rolled out with monitoring for any customer issues
  • No customer escalations or service disruptions reported after full rollout
Edited Feb 12, 2026 by Sharmad Nachnolkar
Assignee Loading
Time tracking Loading