Skip to content

Errors ​

Callx reports problems in two ways:

  • Results. Known outcomes of a command (rejected, timed out, unknown) resolve normally with a CommandResult whose error explains it.
  • Exceptions. Validation and transport problems throw: CallxError in TypeScript, CallxException in Dart. Native rejections can also surface as the framework's own error types; read the code when present.
ts
try {
  const result = await callx.answer(callId);
  if (result.status !== 'applied') handle(result.error);
} catch (error) {
  handleThrown((error as {code?: string}).code);
}

Error codes ​

CodeWhenRetryable
invalidArgumentMalformed input, a limit exceeded, a deadline more than 30 s away, or a contract version mismatch between native and framework codeNo
notConfiguredNo native runtime is installed: the bootstrap did not run or failedNo
nativeUnavailableThe native module is missing (not rebuilt, web, Expo Go), or the platform reset before completingYes
callNotFoundNo live call has this callIdNo
busystartCall while another call is liveNo
invalidStateThe call's state does not allow the command: answering a call that is not incoming, holding a call that is not active, starting a call with an ID that already endedNo
unsupportedThe runtime lacks the capability, for example no outgoing-call starter on AndroidNo
platformRejectedCallKit or Core-Telecom refused the action. error.platform has the diagnostic {domain, code}Depends
mediaNotReadyThe media engine could not apply muteYes
deadlineExceededPaired with status timedOutReconcile first
conflictThe operationId was already used with different argumentsNo
internalAn unexpected native failureReport it
permissionDeniedReserved; not emitted in this version
journalGapReserved; not emitted in this version

retryable on the error is authoritative. Retry with the same operationId.

Platform details ​

error.platform is for logs and diagnostics, not control flow. Domains include CallKit's CXErrorCodeRequestTransactionError and CXErrorCodeIncomingCallError codes on iOS and Core-Telecom's CallException codes on Android. They can change between OS versions.

Messages ​

error.message is English, for developers, and never contains personal data such as names, handles or tokens. Show your own text to users.

Released under the MIT License. No telemetry, in the library or on this site.