---
title: Troubleshooting - iOS
description: Need help? We share probable causes and recommended fixes
lastUpdated: 01 December 2025
source_url:
  html: https://docs.contentsquare.com/en/csq-sdk-ios/experience-analytics/troubleshooting/
  md: https://docs.contentsquare.com/en/csq-sdk-ios/experience-analytics/troubleshooting/index.md
---

## Requests are failing

In order for Contentsquare to work, you need to make sure the following endpoints are not blocked by your network (VPN):

| Request | Endpoint | Detail |
| - | - | - |
| Config file | `https://mobile-production.content-square.net` | See [Configuration](../data-collection/#configuration) |
| Experience Analytics data (EU) | `https://m.csqtrk.net` `https://m.ba.contentsquare.net` `https://m.aa.contentsquare.net` | See [Sending data](../data-collection/#sending-data) |
| Experience Analytics data (US) | `https://m-aus1.contentsquare.net` `https://m.bf.contentsquare.net` `https://m.af.contentsquare.net` | See [Sending data](../data-collection/#sending-data) |
| Product Analytics data | `https://mh.bf.contentsquare.net` | See [Product Analytics](../../product-analytics/) |
| Monitoring | `https://l.contentsquare.net` | Used by the SDK to send SDK monitoring analysis in JSON format over HTTPS. |
| Session Replay data (EU) | `https://ka-aeu1.contentsquare.net` `https://ka.ba.contentsquare.net` `https://ka.aa.contentsquare.net` | See [Session Replay requests](../session-replay/#requests) |
| Session Replay data (US) | `https://ka-aus1.contentsquare.net` `https://ka.bf.contentsquare.net` `https://ka.af.contentsquare.net` | See [Session Replay requests](../session-replay/#requests) |
| Screenshot (EU) | `https://s.contentsquare.net` `https://b.ba.contentsquare.net` `https://b.aa.contentsquare.net` | See [Screenshot capture](../in-app-features/#screenshot-capture) |
| Screenshot (US) | `https://s-aus1.contentsquare.net` `https://b.bf.contentsquare.net` `https://b.af.contentsquare.net` | See [Screenshot capture](../in-app-features/#screenshot-capture) |
| Resources manager (EU) | `https://srm.ba.contentsquare.net` `https://srm.aa.contentsquare.net` | See [Session Replay requests](../session-replay/#requests) |
| Resources manager (US) | `https://srm.bf.contentsquare.net` `https://srm.af.contentsquare.net` | See [Session Replay requests](../session-replay/#requests) |

## Error message "Contentsquare SDK cannot execute operation"

If the following message appears in the logs:

```plaintext
CSLIB ℹ️ Info:⚠️ Contentsquare SDK cannot execute operation because it hasn't been started.
```

It means SDK API calls were done incorrectly.

In this case: **gestures and lifecycle events won't be tracked by the SDK.**

Two possible explanations exist for this issue:

* The SDK is manually started and API calls were made before call to `start`.
* The SDK is automatically started and API calls were made before the `AppDelegate.willFinishLaunchingWithOptions`. Ensure that it doesn’t happen or contact our support team if you have a specific need.

## Providing a debug build for investigation

1. Build your app for iOS device (not simulator)
2. Open the product folder for your app ![](https://docs.contentsquare.com/_astro/open-the-product-folder.D0VuPfkw_q18YU.webp)
3. Copy the .app from Debug-iphoneos and send it to the Contentsquare team ![](https://docs.contentsquare.com/_astro/copy-the-app-from-debug-iphoneos.B0O5Tu07_hRBKa.webp)

## Wrong tag loaded in WebView

When using Manual tag injection for dual context (WebView and Browser tracking on the same webpage), the SDK injects a script that may load after the page, causing the wrong tag to load in the WebView. Use one of the following solutions:

* Add your own user script before the webview loads the page:

  ```swift
  let userScript = WKUserScript(
     source: "window.isWebView = true;",
     injectionTime: .atDocumentStart,
     forMainFrameOnly: false
  )


  webView.configuration.userContentController.addUserScript(userScript)
  ```

  Then make sure to include the added script variable in the webview check on the page itself:

  ```javascript
  function isWebView() {
     return navigator.userAgent.indexOf('CS_WebView') !== -1 ||
     typeof CSJavascriptBridge != 'undefined' ||
     window.CS_isWebView ||
     window.isWebView; // Your added variable
  }


  /// ...
  ```

* Add a query parameter to the URL of the page you are loading in the WebView:

  ```swift
  URL(string: "https://www.apple.com/?isWebView=1")
  ```

  Then add it to the conditions in the page script itself:

  ```javascript
  function isWebView() {
     return navigator.userAgent.indexOf('CS_WebView') !== -1 ||
     typeof CSJavascriptBridge != 'undefined' ||
     window.CS_isWebView ||
     new URLSearchParams(window.location.search).get('isWebView') === '1';
  }


  /// ...
  ```
