Fix common Alaznah Calling integration issues.
Troubleshooting
| Symptom | Likely fix |
|---|---|
checkDebugAarMetadata / androidx.core requires API 36 | Use @alaznah/calling that supports compileSdk 35/36, or see Compatibility. Do not needlessly bump past your RN default |
Unable to resolve module / Metro path errors | Rebuild; clear Metro cache (--reset-cache); ensure required peers are installed (react-native-webrtc, react-native-incall-manager, @react-native-community/netinfo, react-native-svg) — Installation |
| Native module missing / null | Rebuild the binary; Expo Go unsupported |
WebRTC adapters not found | Required peers missing — especially react-native-webrtc. npm: install @alaznah/calling, then npm install react-native-webrtc react-native-incall-manager @react-native-community/netinfo react-native-svg. Yarn / pnpm: one-line install in Installation. Then rebuild. CallKeep is optional and not needed for this error |
| Cannot connect | Reachable signalingUrl; device cannot use your laptop localhost without a tunnel |
| Auth / 401 | Token userId must match config.userId; mint a fresh token |
| No audio | Mic permission; check mute on both peers; physical device preferred |
| Black / no video | Camera permission; mediaType: 'video'; check videoEnabled |
| One-way media | Firewall / ICE — try iceTransportPolicy: 'relay' with working TURN |
| No ring in background | Console push credentials + registerPushToken + OS permissions |
| JS incoming flashes after native Accept | Call drainNativeIncomingAction() then syncPendingCalls() on AppState active |
| Accept “does nothing” on tap | By design — swipe up on the green control |
| Duplicate native + JS incoming | setNativeIncomingSuppressed(true) while in-app calling UI is mounted |
| iOS simulator CallKit crash | Do not enable CallKeep / CallKit paths that disallow simulator |
Still stuck?
Contact support with:
- App ID / project id
- Platform + OS version
@alaznah/callingversion- Foreground vs background scenario
- Relevant logs (no secrets)