---
title: Troubleshooting - iOS
description: Need help? We share probable causes and recommended fixes
lastUpdated: 14 April 2026
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
---

> Documentation index: https://docs.contentsquare.com/llms.txt
> Use this file to discover all available pages before exploring further.

When the SDK is not sending data as expected, use this page to identify probable causes and apply recommended fixes.

## 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 run 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';
  }


  /// ...
  ```
