Checkout is failing: how to diagnose it

A failing checkout is the most urgent fault a shop can have. Narrow it down before changing anything.

Establish where it fails

Place a test order yourself and note the exact point: adding to the basket, reaching checkout, submitting the form, at the payment provider, or on return. Each points somewhere different.

Fails before payment

  • A caching problem. If the checkout page is cached, it will misbehave in exactly this way. Confirm cart, checkout and account pages are excluded.
  • A JavaScript error. Press F12, open the Console, and reload. A single script error from a plugin or theme can stop the form submitting, with no message shown to the customer.
  • A validation rule rejecting an address or postcode format, particularly for overseas customers.

Fails at the payment provider

Check the gateway dashboard and the WooCommerce logs under Status, Logs. Test versus live mode mismatches and expired API keys are the usual answers.

Fails on return

See Orders stuck on pending payment – almost always a webhook or callback problem.

Intermittent failures

If it works sometimes, suspect resources. Check Resource Usage for entry process or memory limits being hit at the times it fails. Checkout is the heaviest page on the site, so it fails first when the account is under pressure.

What not to do

Do not start deactivating plugins on a live shop at random. Reproduce it on a staging copy and test there. If you must test on live, do it at the quietest hour and change one thing at a time.

  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

WooCommerce on shared hosting: what to expect

WooCommerce runs perfectly well on shared hosting for the great majority of shops. It is,...

Caching WooCommerce correctly, and what must never be cached

Caching is the biggest performance win available to a shop, and the fastest way to break one. The...

Order emails are not arriving

Missing order emails are among the most damaging faults a shop can have, because neither you nor...

Action Scheduler: why background jobs stop running

WooCommerce queues work to run in the background – sending some emails, syncing stock,...

Orders stuck on pending payment

An order sitting at Pending Payment means WooCommerce created it and never heard that the payment...