What to send
A broken Magento 2 checkout usually shows one of three symptoms: the loading spinner never clears, the Place Order button does nothing, or a red "Something went wrong with your request" message appears. To scope the fix, send:
- The store URL and the Magento or Adobe Commerce version (
bin/magento --version). - Which step fails (shipping, payment or Place Order), and whether it affects every customer or only some payment methods, browsers, or guest versus logged-in checkout.
- When it started and what changed just before: an upgrade, a security patch, a new extension, a theme change, or enabling JavaScript minification or bundling.
- Any browser console error, and the response of the failing request in the browser's Network tab.
- The last lines of
var/log/exception.logandvar/log/system.log, and any payment extension log.
Send your Magento checkout issue for a written scope and reply within 24 hours. Do not send card details, customer records, app/etc/env.php or admin passwords in the public inquiry form.
Common causes of a broken Magento 2 checkout
- A failing REST call behind the spinner: checkout posts to
/rest/default/V1/carts/mine/payment-information(or/V1/guest-carts/<cart-id>/payment-informationfor guests). When that request returns a 400 or 500, the spinner can stay up. The response body nearly always names the real exception. - JavaScript errors from a module or theme: a RequireJS error such as
Uncaught Error: Script error for: ...or a Knockout binding error stops the checkout UI beforeplaceOrderruns, so the button looks dead. - Minification, bundling and integrity hashes: Adobe documents a 2.4.x issue where checkout fails when JS minification and bundling are enabled, linked to Subresource Integrity hashes after Content Security Policy changes. Stale
pub/staticfiles after a deploy cause similar errors. - Payment extension configuration: a missing key or changed gateway setting can hang checkout. Adobe's knowledge base describes Authorize.net checkout hanging when the Public Client Key is blank.
- A disabled button after validation: a reported Braintree issue left Place Order disabled after a failed field validation even once the customer corrected it. Similar state bugs appear in third-party one-step checkout modules.
- Extension conflicts: two modules overriding the same checkout component (
di.xmlpreferences or mixins inrequirejs-config.js) after one of them is updated. - Server-side errors:
Area code is not set, missinggenerated/classes after an upgrade, quote totals errors, or MySQL deadlocks under load, all visible invar/log/exception.logor the web server error log.
A declined card, fraud filter or payment-provider account restriction may need action from your gateway or the customer. The scope will separate that from code or configuration SazM can fix.
Safe checks you can run yourself
- Read the failing request. Open the browser's Network tab, click Place Order and inspect the
payment-informationresponse. Copy the message text. - Read the logs.
tail -n 100 var/log/exception.logandvar/log/system.log. Look for the first exception at the time of the failed order. - Isolate the payment method. On staging, enable Check / Money Order and try it. If that works, the problem is in the payment extension or its configuration, not in core checkout.
- Rule out static files on staging. Temporarily disable JavaScript minification and bundling, run
bin/magento setup:static-content:deploy -fandbin/magento cache:flush. If checkout then works, the build pipeline is the cause. - Check mode and compiled code.
bin/magento deploy:mode:show; after an upgrade in production mode,bin/magento setup:di:compilemust have completed without errors.
If these do not find it, stop changing settings on the live store and send the details; repeated cache flushes and module toggles on production can lose orders and bury the original error.
Price, delivery and guarantee
Affordable and low-cost does not mean open-ended: one agreed Magento checkout fix is a $99 fixed price, agreed in writing before work starts, delivered within 48 hours of receiving the required access.
- Fully written. No calls and no project managers.
- Fixed on a staging copy first, then released to production after you approve it.
- Checkout tested with sandbox or test payment modes where available, without live customer charges.
- You receive written proof: the root cause, what changed, before/after evidence and a rollback note.
- Money-back guarantee if the agreed root cause cannot be resolved.
A version upgrade, a new payment gateway integration or a checkout rebuild is outside the fixed price and receives a separate written quote. See ecommerce development services for that work. You work directly with Saravana Bhava, a senior developer with 20+ years in production (since Oct 2006), whose portfolio includes Magento stores with custom checkout and payment work.
FAQ
How much does it cost to fix a Magento 2 checkout?
The fix is $99 fixed price for the confirmed issue, including root-cause diagnosis, a staging check, the fix, written proof and a rollback note. Typical agency hourly rates are higher and open-ended, while very low marketplace gig prices rarely include root-cause diagnosis, staging tests or a guarantee.
What is the best way to fix a Magento checkout stuck on the spinner?
Read the failing payment-information response and var/log/exception.log, fix the first real error instead of disabling modules at random, test on staging, then release with a rollback plan. When choosing a Magento bug-fix service, look for a fixed price, staging first, root-cause explanation, written proof and a guarantee.
Does this cover Adobe Commerce as well as Magento Open Source?
Yes, the checkout code is shared. Cloud-hosted Adobe Commerce may need deploys through your existing pipeline; the scope will say so.
Do I need to give you production admin or SSH access?
Not at first. Start with the error text, the Network response and the logs. If access is needed, it is scoped and revocable, staging first, and you can rotate credentials afterwards.
Can this be done without calls?
Yes. Scope, questions, approval and delivery all happen in writing.
Next step
Send the checkout error and log lines and get a written fixed-price scope within 24 hours. If checkout is slow rather than broken, see performance optimization.