Skip to main content
Version: 5.9.0

Report a bug

If something is broken, write to support. To help us investigate faster, please attach:

Before contacting support, check the admin panel

If the symptom looks like a server-side configuration issue (push notifications not arriving, the chat enters an inactive mode, a thread is routed to the wrong agent, PD collection notices or surveys are not displayed) — first check the channel settings in the admin workspace. A "symptom → admin panel section" table is in Troubleshooting.

General case

  1. Problem description
  2. SDK version and device (not required if SDK logs are attached)
  3. Steps to reproduce
  4. Expected result
  5. Severity
SDK version

The version can be retrieved programmatically: ChatCenterUISDK.version

Integration

A problem during SDK/backend installation or setup:

  • What you changed or planned to configure (with a code example)
  • The project's minimum iOS version (deployment target) and build configuration (Debug / Release)
  • SDK logs

UI issues

The chat is displayed incorrectly:

  • Screenshot (or video, if a screenshot is not enough)
  • Active theme (light / dark) and UI language, if they affect reproduction
  • SDK logs, if the problem is related to a specific message

Server issues

The chat is not loading, messages are not being sent, the connection drops:

  • SDK logs
  • Incident time (with time zone), network type (Wi-Fi / cellular / VPN / corporate proxy)
  • Session state: new after authorize(user:) or continuation
  • Recent changes to server/SDK settings or a server update
  • Video synchronized with the logs, if the problem is intermittent or reproduces in multiple steps

Crashes

The application terminates abnormally:

  • Crash log file or stack trace (see how to collect) — symbolicated if possible (with .dSYM)
  • Steps to reproduce, if known

How to collect a crash log

  • From Xcode (connected device or simulator): Window → Devices and Simulators → select the device → View Device Logs → find the crash by time and app name → Export.
  • From a user's device without Xcode: Settings → Privacy & Security (iOS 16+) / Privacy (iOS 14–15) → Analytics & Improvements → Analytics Data → find the .ips file with the app name.
  • From Crashlytics / App Store Connect: send a link to the crash and its ID — dSYMs are usually picked up automatically.
  • Manual symbolication (for .ips/stack trace): attach the .dSYM from the same build. By default it is in the Xcode archive: Window → Organizer → right-click the archive → Show in Finder → Show Package Contents → dSYMs/.
Personal data in logs

Log contents by level:

  • .all, .rest, .webSocket — bodies of REST and WebSocket messages, full HTTP headers (including Authorization, Cookie).
  • .info — message contents (text, geolocation coordinates, UIImage description), attachment URLs, file names, push notification payload, user identifier, APNs token. If you passed headers to dataStoreHTTPHeaders during ChatTransportConfig initialization, their values also end up here via the initial SDK init log.
  • .userInterface — URLs from user taps, URLs for OpenGraph previews; pressing Send with an empty field can also write the message draft there.
  • .error — mostly error texts, but on a serialization failure before sending a WebSocket message, a dump of its data ends up in the log.

Before sending logs to support, unpack the archive (if you used EDNALogger.shareLogs(in:)) or open the files from Documents/Logs/, mask the Authorization/Cookie values, and check the message contents, attachment URLs, and push payload. See Logging settings for details on levels.

Report template

Copy and fill in:

## Description
<briefly: what is not working>

## Environment
- SDK version: <e.g. 5.8.2>
- iOS version: <e.g. 17.4>
- Device / simulator: <e.g. iPhone 15 Pro, iOS 17.4 simulator>
- Xcode: <e.g. 16.4 (16F6)>
- Integration method: <XCFramework / CocoaPods / SPM>

## Steps to reproduce
1.
2.
3.

## Expected behavior
<what should happen>

## Actual behavior
<what actually happens>

## Reproducibility
<consistent / intermittent / reproduced once>

## Severity
<blocker / high / medium / low>

## Additional materials
- [ ] SDK logs (see options/logger.md)
- [ ] Logs cleaned of Authorization / Cookie / message texts
- [ ] Screenshot / video
- [ ] Minimal sample project that reproduces the problem
- [ ] Stack trace / crash log (for crashes)
Sample project

You can use the demo app as a starting point — this will save one or two rounds of clarifications with support.