Error Handling

Error Codes

Error objects can be returned to you via LiveObjects, callbacks, or clientErrorDelegate. All the errors returned by the SDK come in form of an NSError with domain Eko. The possible error codes are listed in a public EkoErrorCode enum: each case is named after its error and they're pretty self explanatory.

Server Errors

  • UnauthorizedError: 400100

  • ItemNotFound: 400400

  • BadRequestError: 400000

  • Conflict: 400900

  • ForbiddenError: 400300

  • PermissionDenied: 400301

  • UserIsMuted: 400302

  • ChannelIsMuted: 400303

  • UserIsBanned: 400304

  • NumberOfMemberExceed: 400305

  • ExemptFromBan: 400306

  • MaxRepetitionExceed: 400307

  • BanWordFound: 400308

  • LinkNotAllowed: 400309

  • GlobalBanError: 400312

  • BusinessError: 500000

Client Errors

  • Unknown: 800000

  • InvalidParameter: 800110

  • MalformedData: 800130

  • ErrorQueryInProgress: 800170

  • ConnectionError: 800210

When an error is returned as a result of an action from your side (e.g. trying to join a channel), the action is considered completed and the SDK will not execute any additional logic.

Asynchronous Errors

The EkoClient includes a clientErrorDelegate property that can be set to an error handler delegate class on your application. This error delegate gives you a chance to be notified of errors that can potentially break the functionality of the SDK. The SDK logic is usually robust enough to automatically handle most errors, as such, only unrecoverable errors are exposed through this delegate (for example, if the login session was invalidated).

We recommend you to always handle these errors in a production app by gracefully disabling messaging functionality in the event of an error.

Last updated