# Connection errors

> What each error shown while connecting Magento, WooCommerce or PrestaShop means, and how to fix it.

Source: https://shopassist.coec.dk/docs/troubleshooting/connection-errors · Updated 2026-10-01

When you connect a plugin store, ShopAssist calls your store back to prove it can reach it. If that fails, the plugin and the dashboard show a short message with a link to the matching section below. Every section has a stable anchor (for example `#waf_blocked`), so links from the plugin always land on the right answer.

> **Codes are single-use:** Pairing codes and redirect codes are valid for 15 minutes and can be used once. ShopAssist never says which check
> failed for an invalid code, so a new code is always the first thing to try.

## The connection code is not valid [#code_invalid]

- Reason: `code_invalid` (401 unauthenticated)
- Platforms: Magento 2, WooCommerce, PrestaShop
- Cause: The pairing code is unknown, expired (codes are valid for 15 minutes) or already used, or the redirect flow could not be verified (PKCE or platform mismatch). ShopAssist never says which check failed.
- Fix: Create a new code in the dashboard and paste it within 15 minutes, or start the redirect flow again from the plugin page.

## This site is already connected [#store_already_connected]

- Reason: `store_already_connected` (409 conflict)
- Platforms: Magento 2, WooCommerce, PrestaShop
- Cause: The site is connected to another ShopAssist store.
- Fix: Reconnect that store instead, or disconnect it in the dashboard first.

## The store is connected to a different site [#site_mismatch]

- Reason: `site_mismatch` (422 validation_error)
- Platforms: Magento 2, WooCommerce, PrestaShop
- Cause: The ShopAssist store you chose is already linked to another site address.
- Fix: Disconnect it in the dashboard first, or choose another store.

## Install Shopify stores from the App Store [#use_shopify_app_store]

- Reason: `use_shopify_app_store` (422 validation_error)
- Platforms: Shopify
- Cause: Shopify stores are connected through the ShopAssist app in the Shopify App Store, not with a code.
- Fix: Install ShopAssist from the Shopify App Store.

## HTTPS is required [#https_required]

- Reason: `https_required` (plugin preflight)
- Platforms: Magento 2, WooCommerce, PrestaShop
- Cause: Your store is not served over HTTPS.
- Fix: Serve the store over HTTPS (a valid certificate) and connect again.

## Magento could not verify our requests [#signature_invalid_check_offloader_header]

- Reason: `signature_invalid_check_offloader_header` (422 validation_error)
- Platforms: Magento 2
- Cause: A load balancer or TLS offloader hides the original protocol, so the OAuth signature does not match.
- Fix: Set Stores › Configuration › General › Web › Default Pages › Offloader header (usually X-Forwarded-Proto) and connect again.

## A firewall blocked ShopAssist [#waf_blocked]

- Reason: `waf_blocked` (422 validation_error)
- Platforms: Magento 2, WooCommerce, PrestaShop, Generic
- Cause: A web application firewall or bot protection answered our request with a challenge page.
- Fix: Allow the ShopAssist egress IP addresses listed on /docs/security/egress-ips.

## The store is password-protected [#basic_auth]

- Reason: `basic_auth` (422 validation_error)
- Platforms: Magento 2
- Cause: The site is protected by HTTP Basic authentication.
- Fix: Remove the password protection for the ShopAssist routes, or connect a production site.

## The integration lacks permissions [#acl_missing]

- Reason: `acl_missing` (422 validation_error)
- Platforms: Magento 2
- Cause: The Magento integration created during pairing does not have the required resources.
- Fix: Create a new pairing code and click Connect again.

## The WordPress REST API is blocked [#rest_blocked]

- Reason: `rest_blocked` (422 validation_error)
- Platforms: WooCommerce
- Cause: A security plugin or server rule blocks the REST route for our requests.
- Fix: Allow the route /shopassist/v1/rpc in your security plugin or server configuration.

## The shop answered with its maintenance page [#maintenance_mode]

- Reason: `maintenance_mode` (422 validation_error (unreachable, hint maintenance))
- Platforms: PrestaShop, Magento 2
- Cause: The store is in maintenance mode for our requests.
- Fix: Update the ShopAssist module or allow our IP addresses in the maintenance settings.

## The connection could not be verified [#signature_invalid]

- Reason: `signature_invalid` (422 validation_error)
- Platforms: WooCommerce, PrestaShop
- Cause: The signed requests between ShopAssist and your store did not verify, usually because the server clock is wrong.
- Fix: Make sure the server clock is synchronised (NTP) and try again.

## ShopAssist could not reach your store [#unreachable]

- Reason: `unreachable` (422 validation_error)
- Platforms: Magento 2, WooCommerce, PrestaShop, Generic
- Cause: DNS, a firewall, or a server that handles only one request at a time prevented our request.
- Fix: Check that the store is reachable from the internet and not limited to a single worker, then try again.

## The shop sent incomplete connection data [#invalid_request]

- Reason: `invalid_request` (422 validation_error (details.fields))
- Platforms: Magento 2, WooCommerce, PrestaShop
- Cause: The plugin sent a connection request that did not pass validation.
- Fix: Update the ShopAssist plugin to the latest version and try again.

## Too many attempts [#rate_limited]

- Reason: `rate_limited` (429 rate_limited)
- Platforms: Magento 2, WooCommerce, PrestaShop, Generic, Shopify
- Cause: Too many connection attempts in a short time.
- Fix: Wait for the number of minutes shown and try again.

## ShopAssist is temporarily unavailable [#service_unavailable]

- Reason: `service_unavailable` (network error, timeout or 5xx)
- Platforms: Magento 2, WooCommerce, PrestaShop, Generic, Shopify
- Cause: ShopAssist could not answer (maintenance or a temporary fault).
- Fix: Try again in a few minutes. Check the status page if it persists.

## Still stuck? [#still-stuck]

Contact support from **Help** in the dashboard and include the request id shown with the error (`req_…`). It lets us find the exact attempt without you sending any store credentials.
