Report a bug
If something is broken, write to support. To help us investigate faster, please attach:
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
- Problem description
- SDK version and device (not required if SDK logs are attached)
- Steps to reproduce
- Expected result
- Severity
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
.ipsfile 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.dSYMfrom the same build. By default it is in the Xcode archive: Window → Organizer → right-click the archive → Show in Finder → Show Package Contents →dSYMs/.
Log contents by level:
.all,.rest,.webSocket— bodies of REST and WebSocket messages, full HTTP headers (includingAuthorization,Cookie)..info— message contents (text, geolocation coordinates,UIImagedescription), attachment URLs, file names, push notification payload, user identifier, APNs token. If you passed headers todataStoreHTTPHeadersduringChatTransportConfiginitialization, their values also end up here via the initialSDK initlog..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)
You can use the demo app as a starting point — this will save one or two rounds of clarifications with support.