Ryan Cobb activity https://gitlab.com/rcobb 2026-03-17T16:09:31Z tag:gitlab.com,2026-03-13:5203069717 Ryan Cobb commented on issue #5143 at GitLab.org / customers-gitlab-com 2026-03-13T22:09:35Z rcobb Ryan Cobb

Ah, good call @tgolubeva!

My guess is that the reference in ReconciliationEligibilityService is being overly defensive or it's code that was superseded by the last_quarter check. https://gitlab.com/gitlab-org/customers-gitlab-com/-/merge_requests/3973 shows that it used to be checked before last_quarter and was moved after in https://gitlab.com/gitlab-org/customers-gitlab-com/-/merge_requests/4123. This makes me think the risk of changing from 45 days -> 15 days is minimal for the eligibilty check (we could possibly even remove the reference here, but that's outside the scope of this issue).

For CreateReconciliationService, this reference is about not creating reconciliations after the subscription end_date so the reference is correct behavior and what we want.

tag:gitlab.com,2026-03-13:5202992441 Ryan Cobb commented on issue #5143 at GitLab.org / customers-gitlab-com 2026-03-13T21:24:23Z rcobb Ryan Cobb

Refinement / Weighting

  • Ready for development
  • Weight is assigned
  • Number of MRs listed — 1 MR
  • Needs testing considerations
  • Needs documentation updates

Reasoning:

This will likely require the code changes similar to the following:

  • Change Subscription::GRACE_PERIOD_AFTER_EXPIRATION from 45.days to 15.days
  • Deprecate SubscriptionHelper::GRACE_PERIOD_AFTER_EXPIRATION (30 days) and replace its single usage in has_active_reseller_subscription? with Subscription::GRACE_PERIOD_AFTER_EXPIRATION
  • Update not_valid_for_renewal? to account for active temporary extensions — when one exists, the subscription should remain renewable until the extension's end_date
  • Update renewal_expiration_date in both Subscriptions::OverviewPresenter and Subscriptions::ActionPresenter to use the extension's end_date when present
  • Update specs across subscription_spec.rb, presenter specs, reconciliation service specs, and subscription_helper specs

Testing considerations:

  • Day 14 post-expiration renewal (should succeed)
  • Day 16 post-expiration renewal (should fail)
  • Renewal with active temporary extension past day 15 (should succeed until extension end date)
  • Reseller subscription check uses the new 15-day value