> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-llms-scoped-indexes.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting

> Troubleshoot CometChat React Native UI Kit setup, initialization, login, theming, permissions, messaging, calling, and build issues.

<Accordion title="AI Integration Quick Reference">
  | Field | Value |
  | - | - |
  | Page type | Troubleshooting reference |
  | Scope | All CometChat React Native UI Kit v5 issues — initialization, rendering, theming, calling, extensions, AI features, localization, sound, events, native setup |
  | When to reference | When a component fails to render, data is missing, styling doesn't apply, a feature doesn't appear, or native build fails |
</Accordion>

## Initialization and Login

| Symptom | Cause | Fix |
| - | - | - |
| `CometChatUIKit.init()` fails silently | Invalid App ID, Region, or Auth Key | Double-check credentials from the [CometChat Dashboard](https://app.cometchat.com/) |
| Component doesn't render | `init()` not called or not awaited before rendering | Ensure `init()` completes before mounting components. See [Methods](/ui-kit/react-native/methods) |
| Component renders but shows no data | User not logged in | Call `CometChatUIKit.login({ uid })` after init |
| Login fails with "UID not found" | UID doesn't exist in your CometChat app | Create the user via Dashboard, SDK, or API first |
| Blank screen after login | Component mounted before init/login completes | Use state to conditionally render after login resolves |
| `getLoggedinUser()` returns null | User not logged in or session expired | Call `login()` or `loginWithAuthToken()` first |
| `sendTextMessage()` fails | User not logged in or invalid receiver | Ensure login completes before sending messages |
| Auth Key exposed in production | Using Auth Key instead of Auth Token | Switch to [Auth Token](/ui-kit/react-native/methods#login-using-auth-token) for production |

***

## React Native CLI Setup

| Symptom | Cause | Fix |
| - | - | - |
| Android build fails with Maven error | Missing local Maven repository for `@react-native-async-storage/async-storage` | Add the Maven URL to `android/build.gradle`. See [Integration](/ui-kit/react-native/react-native-cli-integration#android-add-local-maven-repository-for-async-storage) |
| iOS build fails | Pods not installed | Run `cd ios && pod install && cd ..` |
| App crashes on launch | `react-native-gesture-handler` not imported at top of entry file | Add `import 'react-native-gesture-handler';` at the very top of `index.js` before any other imports |
| Permission denied errors on Android | Missing permissions in AndroidManifest.xml | Add required permissions (INTERNET, CAMERA, RECORD\_AUDIO, etc.). See [Integration](/ui-kit/react-native/react-native-cli-integration#add-permissions-for-android) |
| Camera/microphone not working on iOS | Missing Info.plist entries | Add `NSCameraUsageDescription` and `NSMicrophoneUsageDescription` to Info.plist |

***

## Expo Setup

| Symptom | Cause | Fix |
| - | - | - |
| App crashes in Expo Go | Expo Go doesn't support native modules | Use [development builds](https://docs.expo.dev/develop/development-builds/introduction/) instead of Expo Go |
| Build fails with native module error | Missing development build | Run `npx expo run:ios` or `npx expo run:android` to create a development build |
| Permissions not working | Missing app.json configuration | Add iOS `infoPlist` and Android `permissions` to app.json. See [Expo Integration](/ui-kit/react-native/expo-integration#configure-appjson) |

***

## Theming

| Symptom | Cause | Fix |
| - | - | - |
| Theme not applied | Missing `CometChatThemeProvider` wrapper | Wrap your app with `CometChatThemeProvider`. See [Theme](/ui-kit/react-native/theme) |
| Dark mode not working | `mode` not set in theme prop | Set `theme={{ mode: "dark" }}` on `CometChatThemeProvider` |
| System theme changes not reflected | App not wrapped in `CometChatThemeProvider` | Wrap app in `CometChatThemeProvider` to enable automatic system theme detection |
| Custom colors not applying | Colors not in hex format | Ensure all color values are hex strings (e.g., `#F76808`) |
| Component-level style override not working | Style prop not taking priority | Style props have highest priority — check for typos in prop names |
| Primary color unchanged | Wrong token name | Use `primary` token under `color` object: `theme={{ light: { color: { primary: "#F76808" } } }}` |
| Icon styles not applying | Using unsupported imageStyle properties | For default SVG icons, only `tintColor`, `height`, and `width` are supported |

***

## Components

| Symptom | Cause | Fix |
| - | - | - |
| Callback not firing | Wrong prop name or signature | Check the component documentation for exact prop name and parameter types |
| Custom view not appearing | Returning `null` or `undefined` from view prop | Ensure view function returns valid JSX |
| Messages not loading | Invalid user/group object passed | Ensure you fetch the user/group via SDK before passing to components |
| Gesture handling not working | Missing `GestureHandlerRootView` wrapper | Wrap your app with `GestureHandlerRootView` from `react-native-gesture-handler` |
| Safe area issues | Missing `SafeAreaProvider` wrapper | Wrap your app with `SafeAreaProvider` from `react-native-safe-area-context` |

***

## Calling

| Symptom | Cause | Fix |
| - | - | - |
| Call buttons not appearing in Message Header | `@cometchat/calls-sdk-react-native` not installed | Run `npm install @cometchat/calls-sdk-react-native` — UI Kit auto-detects it |
| Incoming call screen not showing | `CometChatIncomingCall` not mounted or call listener not registered | Render `CometChatIncomingCall` at app root and register `CometChat.addCallListener()`. See [Call Features](/ui-kit/react-native/call-features) |
| Call accepted but no audio/video | Missing call session setup | After `acceptCall()`, generate a token and render the call component |
| `onIncomingCallReceived` not firing | Call listener not registered or registered too late | Register `CometChat.addCallListener()` after login completes |
| Call fails on Android | Missing permissions or wrong SDK version | Ensure `minSdkVersion` is 24+, `compileSdkVersion` is 33+, and permissions are added |
| Call fails on iOS | Missing permissions or wrong deployment target | Set `IPHONEOS_DEPLOYMENT_TARGET` to 12.0+ and add camera/microphone permissions to Info.plist |
| WebRTC errors | Missing peer dependencies | Install `react-native-webrtc`, `@react-native-community/netinfo`, `react-native-background-timer` |

***

## Extensions

| Symptom | Cause | Fix |
| - | - | - |
| Extension feature not appearing | Extension not activated in CometChat Dashboard | Enable the specific extension from your [Dashboard](/fundamentals/extensions-overview) |
| Stickers not showing in composer | Sticker extension not enabled | Activate [Sticker Extension](/fundamentals/stickers) in Dashboard |
| Polls option missing from action sheet | Polls extension not enabled | Activate [Polls Extension](/fundamentals/polls) in Dashboard |
| Link preview not rendering in messages | Link Preview extension not enabled | Activate [Link Preview Extension](/fundamentals/link-preview) in Dashboard |
| Collaborative whiteboard/document not appearing | Extension not enabled | Activate [Collaborative Whiteboard](/fundamentals/collaborative-whiteboard) or [Collaborative Document](/fundamentals/collaborative-document) in Dashboard |

***

## AI Features

| Symptom | Cause | Fix |
| - | - | - |
| AI features not appearing | Feature not activated in CometChat Dashboard | Enable the specific AI feature from your [Dashboard](/fundamentals/ai-user-copilot/overview) |
| Conversation Starter not showing | Feature not enabled or no conversation context | Ensure [Conversation Starter](/fundamentals/ai-user-copilot/conversation-starter) is activated in Dashboard |
| Smart Replies not appearing in composer | Feature not enabled in Dashboard | Ensure [Smart Replies](/fundamentals/ai-user-copilot/smart-replies) is activated in Dashboard |

***

## Localization

| Symptom | Cause | Fix |
| - | - | - |
| UI text not translated | Language code not matching supported codes | Check the supported languages table in [Localize](/ui-kit/react-native/localize) for exact codes (e.g., `en-US` not `en`) |
| Auto language detection not working | Missing `react-native-localize` package | Install `react-native-localize`: `npm install react-native-localize` |
| Custom translations not appearing | `CometChatI18nProvider` not wrapping app | Wrap app with `CometChatI18nProvider` inside `CometChatThemeProvider` |
| `useCometChatTranslation` returns undefined | Hook used outside provider | Ensure component is wrapped by `CometChatI18nProvider` |
| Fallback language not working | `fallbackLanguage` prop not set | Set `fallbackLanguage` prop on `CometChatI18nProvider` |

***

## Sound

| Symptom | Cause | Fix |
| - | - | - |
| No sound plays | Audio file not found or unsupported format | Ensure the path is correct and the file is a valid audio format (WAV/MP3) |
| Custom sound not playing | Invalid file path | Verify the asset path is correct; use `isRequire: true` if using `require()` for local assets |
| Sound keeps playing | `pause()` not called | Call `CometChatSoundManager.pause()` to stop playback |
| Sound plays multiple times | Multiple sound triggers | Ensure you're not calling `play()` multiple times for the same event |

***

## Events

| Symptom | Cause | Fix |
| - | - | - |
| Event listener not firing | Subscribed to wrong event name | Check the [Events](/ui-kit/react-native/events) page for exact event names |
| Duplicate event triggers | Multiple subscriptions without cleanup | Remove listeners in `useEffect` cleanup or component unmount |
| Event fires but UI doesn't update | State not updated in event handler | Ensure you call `setState` or equivalent in the handler |
| Call events not received | `CometChatUIEventHandler` listener not registered | Register both `CometChat.addCallListener()` and `CometChatUIEventHandler.addCallListener()` |

***

## Native Dependencies

| Symptom | Cause | Fix |
| - | - | - |
| `react-native-video` not working | Native module not linked | For React Native CLI, run `cd ios && pod install`. For Expo, use development builds |
| `react-native-svg` icons not rendering | Package not installed or linked | Install `react-native-svg` and run `pod install` for iOS |
| `@react-native-clipboard/clipboard` errors | Package not installed | Install `@react-native-clipboard/clipboard` |
| `@react-native-community/datetimepicker` errors | Package not installed | Install `@react-native-community/datetimepicker` |
| `dayjs` date formatting issues | Package not installed | Install `dayjs` |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.