Admin Tooling: Extending trial over paid plan does not extend Duo Enterprise Addon
Bug
Summary
When using the admin tooling to modify an existing SaaS trial, in the event that the plan is set to Ultimate Saas Trial Paid Customer W Duo Enterprise Trial Plan (ultimate-saas-trial-paid-customer-w-duo-enterprise-trial-plan-id), the Duo addon product does not appear to be extended in any way, leaving the original expiration date in place for Duo. The trial itself is extended.
Some slack discussion: https://gitlab.slack.com/archives/C037WQ2BUGK/p1749143070525569
mainly confirming that this is bug behavior. @aish.sub mentions that perhaps this is necessary:
I think we also need to invoke the Gitlab::AddOnPurchases::BulkSyncService
Steps to reproduce
- Start a standard Ultimate trial w/ Duo enterprise on a free group
- Modify the trial thru admin tooling
/admin/saas_trialto modify the end date and set the plan type toultimate-saas-trial-paid-customer-w-duo-enterprise-trial-plan-id - The trial end date and plan are both updated on Gitlab, but the original Duo end date remains
Relevant logs and/or screenshots
Using this trial in both real world tests: https://customers.gitlab.com/admin/saas_trial/975819
For this trial order: https://customers.gitlab.com/admin/order/975819
When setting the trial to ultimate-saas-trial-paid-customer-w-duo-enterprise-trial-plan-id
Example events: https://cloudlogging.app.goo.gl/gz1x5cSfRhM12CbS9
We can see observe that during class: "Provisions::Gitlab::Namespaces::SyncRequestService", the only params supplied for duo enterprise and pro are start/end dates, inexplicably both set to 2025-06-04 (today is 2025-06-05)
duo_enterprise: [
0: {
expires_on: "2025-06-04"
started_on: "2025-06-04"
}
]
duo_pro: [
0: {
expires_on: "2025-06-04"
started_on: "2025-06-04"
}
]
}
When setting the trial to ultimate-saas-trial-w-duo-enterprise-trial-plan-id,
Example events: https://cloudlogging.app.goo.gl/jRkHf3P2nXX45shp7
Enterprise params include order, updated end date, quantity, etc
duo_enterprise: [
0: {
expires_on: "2025-07-16"
purchase_xid: "trial-object-975819-order"
quantity: 100
started_on: "2025-02-13"
trial: true
}
]
duo_pro: [
0: {
expires_on: "2025-06-04"
started_on: "2025-06-04"
}
]
}
Workarounds
- Remain on standard trial, not "trial over paid plan"
- $0 sales quoted "trial" subscription
Reported examples
- https://gitlab.zendesk.com/agent/tickets/632323
- https://gitlab.zendesk.com/agent/tickets/648899
- https://gitlab.zendesk.com/agent/tickets/644101
- https://gitlab.zendesk.com/agent/tickets/672705
Support Priority Score: (1, -, -, -, -, -, 3, -, 2, 2, 2) => 10