Applying boosts or coupon codes should not overwrite higher-tier entitlements
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
No repository files, tests, or entry points are named. Start by locating the entitlement, boost, coupon, and billing-transition paths, then trace how overlapping grants are resolved across purchase platforms. Done means the acceptance criteria are covered by tests, including preservation of access, value, expiry, idempotency, and transition history.
Written by the indexing model from the issue text.
Description
BLUF
Applying an additional subscription, boost or promotional code must not silently reduce active access or destroy existing value.
This is a public report, so account-specific details are omitted.
Problem
Applying a lower-tier Plus boost while a Pro 20x boost is active can replace or remove the higher-tier entitlement.
The same class of failure could affect:
- paid or promotional boosts;
- coupon, offer or redemption codes;
- gifted or support-issued access;
- overlapping subscription periods.
Consumable usage credits should remain separate from plan entitlements and should not change or replace the underlying plan.
Expected behaviour
Adding an entitlement should never reduce effective access unless the user explicitly agrees to a clearly explained replacement.
When entitlements overlap, the system should:
- Keep the best applicable access active for the overlapping period.
- Preserve the valid value and original expiry of each entitlement.
- Resolve access by capability where plans provide different benefits.
- Avoid removing unrelated features, credits or subscription time.
- If an offer cannot be combined, defer it, prorate or credit its value, or reject it without consuming the code.
Examples
Lower-tier offer applied during a higher-tier boost
- Pro 20x: 1–31 July
- Plus offer: 15 July–15 August
Expected:
- 1–31 July: Pro 20x remains active
- 1–15 August: Plus applies
Redeeming the Plus offer must not downgrade Pro during July or cause the offer to disappear.
Higher-tier boost applied during a lower-tier subscription
- Plus: 1 July–31 August
- Pro 20x boost: 15 July–15 August
Expected:
- 1–14 July: Plus
- 15 July–15 August: Pro 20x
- 16–31 August: Plus resumes
Incompatible offer
If an offer cannot be stacked or scheduled, the product should explain that before redemption and leave the code unused.
Acceptance criteria
- An additive grant never reduces current effective access.
- Existing paid or promotional value is not silently discarded.
- Expiry dates and transition behaviour are shown before confirmation.
- Repeated or delayed billing events do not apply the same change twice.
- Web, iOS and Android purchases resolve to consistent account access.
- Support can view the entitlement source, dates, status and transition history.
Distinction from the suggested duplicate
#34918 reports a Pro account appearing as Pro Lite and asks for entitlement resynchronisation. This issue concerns a different trigger: applying a new boost or offer changes or replaces an already valid entitlement.
Supporting documentation and implementation context
These references illustrate established ways to keep plan access, credits and subscription transitions separate. They are supporting context, not a request for a specific internal implementation.
- OpenAI documents purchased credits as an add-on used after included limits are reached and states that buying credits does not change the underlying plan: https://help.openai.com/en/articles/12642688-using-credits-for-flexible-usage-in-chatgpt-free-go-plus-pro-sora
- Google Play Billing supports deferred subscription replacement, where the existing entitlement remains active until expiry and the new entitlement begins afterwards. It also supports proration and preserving remaining value during plan changes: https://developer.android.com/google/play/billing/subscriptions
- Apple supports subscription offer codes for new, active and expired subscribers, with eligibility and duration configured before redemption: https://developer.apple.com/help/app-store-connect/manage-subscriptions/set-up-subscription-offer-codes/
- Stripe separates subscription products from active feature entitlements and supports proration or scheduled subscription changes: https://docs.stripe.com/billing/entitlements and https://docs.stripe.com/billing/subscriptions/change-price
Why this matters
Redeeming another valid benefit should not leave the user worse off. If two entitlements cannot coexist, the system should preserve their value or refuse the change before consuming the offer rather than silently downgrading the account.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- Avg merge
- 1m
- Merged PRs (30d)
- 1k
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openai/codex
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug CLI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
macOS sandbox blocks hw.optional.arm64 sysctl, causing Flutter to misdetect Apple Silicon as x64 Openbug CLI sandbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug CLI TUI
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
CLI config enhancement skills
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
oxc-project/oxc#26863 ·