Skip to main content
How-to

UltraCart HTTP 403 Error Troubleshooting Guide

Introduction​

An HTTP 403 occurs when a server understands the request but refuses to authorize it. In UltraCart environments they fall into four groups:

  • StoreFront and checkout customer issues
  • Merchant Portal access issues
  • API and integration errors
  • Firewall and Web Application Firewall (WAF) blocks, including automation and AI tools
note

Application-level 403 errors and firewall blocks have different causes and different fixes. Classify which one you have before you start troubleshooting.

Quick-reference troubleshooting matrices​

Find the row matching your symptom, then read across for the cause and the fix.

Customer-facing: StoreFront and checkout​

Symptom / Error MessageMost Likely CauseImmediate Customer FixMerchant Prevention / Fix
“This site can’t be reached” during custom domain setupDNS/SSL mismatchUse temporary ultrastore domainComplete SSL setup and allow propagation
“Access Denied” mid-checkoutCheckout session timeoutRefresh and restart checkoutAdd session timeout UX guidance
“HTTP/1.1 403 - Your customer profile does not have permission”Missing pricing tierLog in with correct accountAssign proper pricing tier

Merchant-facing: portal and integrations​

Symptom / Error MessageMost Likely CauseImmediate FixPrevention / Best Practice
Intermittent 403 resolved in incognitoCached session or extensionsClear cache; disable extensionsReduce reliance on browser extensions
403 on embedded checkout / mixed domainHost/origin validation failureUse primary domainAvoid mixed-domain embeds
403 after repeated attemptsRate limiting / bot protectionWait and retryImplement CAPTCHA / reduce retries

Automation and bot detection​

Symptom / BehaviorMost Likely CauseImmediate FixPrevention / Best Practice
Temporary lockout after multiple requestsRate limit exceededWait for block to clearReduce request frequency
403 across all pages for several minutesIP temporarily blockedWait and retrySpace out automated requests
Works in browser, fails in automation toolNon-browser clientRun the task in a real browserDrive an actual browser session rather than a scripted client
Works after a few minutesTemporary block expiredRetry laterStay within rate limits
Only fails from one IPIP flaggedChange network or waitReduce request volume from a single address
Triggered after using a non-browser automation clientRaw HTTP, Python, or headless client rather than a real browser sessionSwitch to a browser-based automation toolUse a tool that drives an actual browser instead of a raw HTTP client or headless script
Triggered immediately on script executionKnown non-browser client signatureSwitch to browser-based automationDo not point raw HTTP clients or header-spoofed headless scripts at the merchant UI

FAQ​

Why do customers get a 403 during checkout?​

Usually a session timeout, an account restriction, or stale checkout state. Have the customer refresh and restart checkout, then confirm their account has the pricing tier the items require.

Why am I getting 401 or 403 API errors?​

Usually missing permissions or invalid API credentials. Confirm the API key is current and that its permissions cover the endpoint you are calling.

Why does my automation tool get blocked?​

Two separate controls can block it, and they have different fixes.

The first identifies clients that are not real browsers, such as generic HTTP libraries and headless scripts, and blocks them. The second applies rate limits to all traffic. A tool can pass the first and still trip the second.

What triggers an automation block?​

  • Raw HTTP clients
  • Headless instances that do not present as a standard browser
  • Non-browser user agents
  • Request rates above the limit, whatever the client

How do I fix an automation block?​

  • Use a browser-based automation tool that drives an actual browser, such as Claude in Chrome or another tool operating through a real Chrome or Chromium session, instead of scripting raw HTTP requests or a headless client with spoofed headers.
  • Slow down request frequency. A real browser session is still subject to rate limits, so an automation tool that drives Chrome can earn a temporary block by exceeding them.
  • Prefer the UltraCart REST API for programmatic integrations. Reserve browser automation for tasks that require the merchant UI itself.

What is the correct approach for automation?​

Use:

  • The UltraCart REST API for programmatic and integration work. It is the supported path and is not subject to the non-browser client block.
  • A genuine browser-based automation tool when the task requires operating the merchant UI itself, kept within rate limits.

Avoid:

  • Raw HTTP or Python clients, and headless scripts that spoof headers to impersonate a browser.
  • Scraping the merchant portal UI outside a real browser session.

Conclusion​

UltraCart HTTP 403 errors fall into four categories:

  1. Customer session and eligibility issues
  2. Merchant permissions and authentication
  3. Integration and configuration issues
  4. Firewall and bot detection, including automation and AI tools

Classifying the error first is what makes the rest of the troubleshooting fast.

Was this page helpful?