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
“HTTP/1.1 403 Permission Denied” or “403 Forbidden” on every storefront page, in any browser, after browsing or searching quicklyStorefront rate limit exceeded for the shopper’s IP address; the block is temporaryWait a while, then continue at a normal pace. Restarting the browser or computer does not clear it.Send UltraCart support the shopper’s public IP address and the approximate time of the block. Support can confirm which rule triggered it and clear it if it is still active.

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
“Permission denied” when uploading a file, then 403 Forbidden on every page, even after closing the browser or clearing cookiesThe file name contains a character the firewall rejects (=, ;, ", or \), and your IP address is temporarily blockedWait for the block to clear, rename the file using only letters, numbers, hyphens, and underscores, and upload it againFollow the file naming guidance before uploading

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 is a customer blocked from my whole store?​

If a shopper gets a 403 on every page of the storefront, in more than one browser, the most likely cause is the storefront rate limit. It applies to all traffic from an IP address and trips when that address loads a large number of pages in a few minutes (by default, 100 pages in 5 minutes). It protects the store from bot and attack traffic, and a shopper who opens or searches many pages quickly can trip it too. The block is temporary and clears on its own.

There is no allowlist that exempts individual shoppers from the rate limit.

Send UltraCart support:

  • The shopper’s public IP address. The shopper can find it by searching “what is my IP” in a browser on the same network.
  • The approximate date and time of the block, with time zone.
  • The page or search they were on when it started, if known.

When you reply to the shopper, tell them their access was paused after a lot of fast page loads and will work again shortly. Screenshots are not needed.

Why did uploading a file lock me out of UltraCart?​

UltraCart’s firewall rejects uploads whose file name contains an equals sign, semicolon, double quote, or backslash, because those characters can be used to tamper with how an upload is read. When it rejects one, it also blocks your IP address for a short time, so every page returns 403 Forbidden until the block clears. Clearing cookies or restarting the browser does not help.

Rename the file using only letters, numbers, hyphens, and underscores, then upload it again. The file contents do not need to change. See Naming your upload file.

If the 403 continues after renaming, send UltraCart support your public IP address (search “what is my IP” on the same network), the time of the upload with time zone, the file name, and which upload tool you used.

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?