New Order Status “Expired” Appearing for Failed Subscription Payments

Subject: New Order Status “Expired” Appearing for Failed Subscription Payments

Hey everyone,

We’ve started seeing a new behavior in Shopify that we haven’t encountered before, and I wanted to check if anyone else has noticed this or if there’s documentation we’re missing.

Sometimes now when a subscription billing attempt fails (in the cases we’ve seen its with a Stripe payment method), Shopify seems to now be creating an order with a status of “expired.” Previously, these kinds of failed payment attempts would just register as a billing failure, and no order was created.

What’s odd is that from the billing attempt perspective:

  • No error code is returned.

  • ready is set to true.

  • An order is linked to the billing attempt.

So in many ways, the attempt looks just like a successful one — yet the resulting order is marked as expired.

This is confusing for both us and our customers because:

  • “Expired” isn’t a status they (or we) have seen before.

  • Failed subscription billing attempts historically haven’t generated orders at all.

  • Customers may be left wondering why they see an order appear and then “expire,” even though nothing was successfully billed. Now they have to think about whether an order should be fulfilled or not

We’re trying to understand:

  1. Is this new status intentional or a bug? We were under the assumption (and its been this way in our experience for 4y) that if the payment failed that no order would be generated and there’d be an error code in the billing attempt

  2. Should we be proactively explaining to our merchants that they can expect some orders that should not be fulfilled because no payment was captured, or is Shopify planning to address it?

  3. Do we need to update our dunning flows, which used to rely on error codes in billing attempts, to now also confirm that the order is not expired. And if its expired we should start the dunning process (ie retry the payment)? Are there other payment-failure statuses we need to be looking out for?

If anyone from Shopify (or other partners) has context on this, it would be super helpful.

Thanks in advance!

Hey @Brian_Singer :waving_hand:

Looking over your post. To make sure I’m understanding this correctly, you are noticing that when a billing attempt where the contract has an expired state, the order is still being created? That would be troublesome as the billing attempt itself should be blocked in this case.

Or are you seeing expired in a different field like the financial status? If so, that could mean that the merchant has failed to capture the payment in time.

Troublesome for sure. Here’s the UI with personal information blurred that I think paints the picture:

That’s ^ for this order: gid://shopify/Order/6435801464931

which was a result of this billing attempt: gid://shopify/SubscriptionBillingAttempt/90718011491

billing attempt details:

{
    "id":"gid://shopify/SubscriptionBillingAttempt/90718011491",
    "createdAt":"2025-09-10T17:00:40Z",
    "completedAt":"2025-09-10T17:00:50Z",
    "processingError":null,
    "ready":true,
    "nextActionUrl":null,
    "order":{
      "id":"gid://shopify/Order/6435801464931",
      "name":"#320553",
      "displayFinancialStatus":"EXPIRED",
      "displayFulfillmentStatus":"UNFULFILLED",
      "cancelledAt":null
    }
}

Thanks for sharing that Brian.

In this case, this doesn’t look like the subscription contract was expired, but instead it was the capture of the payment on Stripe that expired. The order would be expected to be created in this case since the payment did enter a pending state, not a rejection or failure.

More on that here: https://help.shopify.com/en/manual/payments/payment-authorization

If you’re noticing this with multiple merchants, the next steps would be to see if it’s specific to Stripe or other gateways as that may point to some changes there. I would suggest as well that the affected merchants reach out to our support teams to have them look closer at the orders to better determine what is causing the payments to expire instead of being captured.

Yea - its not related to subscription status – just orders. It’s a new thing we saw on merchants who recently migrated on to Shopify (with payment methods in Stripe).

It did happen on multiple shops and is suspiciously close to the timing of the Stripe update that Shopify’s making merchants go through right now (and has caused other issues that have been / are being dealt with). We hadn’t ever seen this happen before and then saw it on a few shops in a matter of a couple days so it had a bit of a smell to it.

Ok - I can share this post with merchants and let them know that the recommendation is to reach out to Shopify Support. Thanks

Ah - I did get an email from one of our merchants who had this issue and reached out to Shopify Support. They had a sever case of this issue where literally any transaction with a stripe payment method involved hit this case (expired order status).

They said that Shopify support “did something” and all of their subscription billing attempts started to correctly create orders in a “paid” financial status. They couldn’t provide any more detail but - there is some button somewhere that Shopify can push to make this stop happening :man_shrugging: