#URGENTSubscription expired for prod user

1 messages · Page 1 of 1 (latest)

grand oracle
#

Hi, subscription sub_0NaYfHVzrsGjeZxKmwdRy expired today instead of renewing. We got subscription.updated + subscription.expired back to back but no payment.failed event. Previous renewal (Mar 15) worked fine.
Was there a failed payment attempt? Does Dodo retry before expiring? Thanks!

twin pendantBOT
# grand oracle Hi, subscription sub_0NaYfHVzrsGjeZxKmwdRy expired today instead of renewing. We...

This usually means no successful charge was created at renewal time, not necessarily a failed one.

  • If a payment attempt is made and fails → you’ll see payment.failed
  • If no charge is attempted (e.g. payment method missing/invalid, or auto-charge not possible) → subscription can go straight to expired
  • subscription.updated → status transition
  • subscription.expired → final state after no successful renewal

Retries:

  • Dodo does not retry indefinitely by default
  • Retry behavior depends on your billing/retry settings (if configured)

What to check:

  • Whether the subscription had a valid default payment method at renewal
  • If an invoice/charge object was created for this cycle
  • Webhook logs around the same timestamp for any skipped payment creation

If you want, share the subscription config and I can help pinpoint exactly why no attempt was made.

grand oracle
#

We did not receive any payment.failed event before the expiry. The previous renewal on Mar 15 worked fine (payment.succeeded + subscription.renewed).

Could you help me understand:

  1. Why did this subscription expire instead of renewing?
  2. Was there a payment attempt that failed? If so, why didn't we receive a payment.failed webhook?
  3. Does Dodo retry failed payments before expiring, or does it expire immediately on first failure?

we only received this

#

msg_3CP1JL4LJPRfblWeCB0iWhfs6Yh | subscription.expired | 2026-04-15 16:58:38
msg_3CP1JL3ljalCzJigIjxq8LcwTlv | subscription.updated | 2026-04-15 16:58:38

polar trout
#

@grand oracle What's your product's subscription period?

grand oracle
#

1 month

polar trout
#

You need to set it to a higher amount like 10/20 years

#

That is about when the subscription will auto-expire

grand oracle
#

can you charge the current customer again. i will fix that bug in my portal, I dont want their experience to break. these are our initial customers.

polar trout
#

@bitter shadow please help with this query. Please check if anything can be done.

polar trout
grand oracle
#

can i just update the time instead of duolicating. I can increase it to 10 years by editing?

polar trout
grand oracle
#

how can we fix the older customers. The payment will fail for all my 22 customers.

#

can dodo team handle it formt he backend?

polar trout
# grand oracle how can we fix the older customers. The payment will fail for all my 22 customer...

You should change the plan for each subscription.

For that,

  1. Duplicate the current plan.
  2. Update the subscription period to 20 years on the newly duplicated subscription plan.
  3. Go to Sales > Subscriptions.
  4. Open the subscription and then click on "Update".
  5. On the modal, select choose another plan.
  6. Select the newly created plan with extended subscription period.
  7. Select the billing mode to "do not bill" and then proceed.

Repeat from step 4 for all 22 subscriptions and you're good to go!

#

You can do this with the API too but that would require some testing before proceeding

grand oracle
#

thank you for this. What do you mean by plan? the dodo product?

polar trout
#

Subscription Plan = Dodo Product

grand oracle
#

does this mean the existing customers will be continued to be charged with the same subscription? Also I will need to update the new product ids in my app for new customers?

#

The new customers can be charged on older product ids where the tenure can be updated to 20 years. My understanding is this duplicate product is only for existing 22 customers.

polar trout
polar trout
#

Otherwise, it will be like you have 2 subscriptions doing the exact same thing for no obvious reason.

whole osprey
#

will the futur recurring subscription payments go through?

#

one small feedback, can you add a small highlight of what this field means, setting 20 years of higher, i set to 1 month because the wording isn't clear

whole osprey
#

@polar trout can we have a huddle today?

#

how does it differ from an existing subscription getting modified the existing product vs cloning one?

#

@polar trout when you say the update the product id, how can we attach that to existing subscriptions, i don't get it

whole osprey
#

@grand oracle can we do it ?

polar trout
whole osprey
#

why cant we do it by modifying the existing product id, can you elaborate?

polar trout
polar trout
#

What I suggested is he duplicate the product, increase the subscription period, and migrate existing subscriptions to that new product.

whole osprey
#

ah got it

#

you are definitely sure, this would work?

#

@grand oracle

polar trout
whole osprey
#

for some customers, we don't see the update subscription is not visuble

polar trout
whole osprey
#

no we dont see, we also dont see an option to chage the customer in the next billing cycle

grand oracle
#

FOUND THESE TWO SUBSCRIPTIONS WHERE WE CANNOT SEE THE UPDATE BUTTON

polar trout
#

They are scheduled to be cancelled i.e. will cancel at end of billing period

grand oracle
whole osprey
#

why does it show status show as active then ?

polar trout
#

they will cancel at end of billing period

polar trout
#

Also you should remove the "(Copy)" since it may show up in the invoice. Instead what you do is rename the older one to "(Old)" and remove "(Copy)" from the new one.

#

But this is optional

grand oracle
#

HI, I JUST DID THIS FOR ONE CUSTOMER, however I still see the validity date is valid till 24/04/2026

whole osprey
#

can we come on a quick huddle @polar trout ?

polar trout
#

@grand oracle @whole osprey I asked about this to my team and they said it wouldn't be possible to change the subscription for existing users since that's handled at mandate creation. Really sorry for my earlier responses. Additionally, we're working on removing that field completely. As for the active subscriptions, they will need to resubscribe unfortunately.

Apologies once again for my earlier responses.

whole osprey
#

we have updated the subscriptiom duration in existing products to 20 years. Will our new subwcribers not face this issue

#

you should improve the wording not to confuse the users

#

10/20 years seem to be a magic number and appropiate doc should be used to not land into this trouble

polar trout
#

unfortunately

#

I was incorrect earlier

whole osprey
#

i meant not being incorect, my concern is more about the user experience

polar trout
grand oracle
#

No worries. It seems we will lose our existing customers. We will try reaching out to them. Thanks for the prompt respopnse.

#

@polar trout Can you confirm this with your team?

I am removing the duplicate products that we created.
I will update our existing products with duration set to 20 years.
My question is: Will the new customers who subscribe with us in the future not see this issue? They will be subscribed for 20 years.

This means we dont have to do any code change to uopdate the product ids. We just have to handle the exisitng customers via email communication. Please give a verified answer here.

#

Thanks

bitter shadow
whole osprey
#

is anyone online ?

burnt osprey
whole osprey
#

@burnt osprey can you reset our business verification online, not able to submit our llp docs?

polar trout
whole osprey
polar trout
tribal quiver
#

What can we do here now? We have opened a ticket, can dodopayment team help fixing this from their end or only option is to contact customer? Also why did subscription still expired despite switching to new product with renewal set for 20 year?

polar trout
whole osprey
#

has this been fixed? this is a P0 wonder many will run into the same issue