Error Codes
Stable error codes, HTTP/engine error mapping and handling guidance.
Error codes
Conventions (matching Agora C++):
- methods return negative values on failure (
-ERROR_CODE_TYPE); onError/onRecorderStateChangedcarry the positive code;- members this build cannot perform throw
nimeet::recording::NotSupportedExceptionwithcode() == 4.
| Code | Name | Used for |
|---|---|---|
| 0 | ERR_OK | success |
| 1 | ERR_FAILED | output failed verification, egress job not completed |
| 2 | ERR_INVALID_ARGUMENT | empty/invalid arguments, unwritable directory |
| 3 | ERR_NOT_READY | recording before initialise/join |
| 4 | ERR_NOT_SUPPORTED | explicit refusal (list below) |
| 7 | ERR_NOT_INITIALIZED | no sink injected |
| 8 | ERR_INVALID_STATE | illegal state transition |
| 10 | ERR_TIMEDOUT | egress job not terminal in time |
| 17 | ERR_JOIN_CHANNEL_REJECTED | channel arguments rejected |
| 18 | ERR_LEAVE_CHANNEL_REJECTED | leave without a session |
| 19 | ERR_ALREADY_IN_USE | duplicate start/join |
| 22 | ERR_RESOURCE_LIMITED | egress quota (HTTP 429) |
| 101 | ERR_INVALID_APP_ID | empty appId |
| 102 | ERR_INVALID_CHANNEL_NAME | channel name empty/too long |
| 110 | ERR_INVALID_TOKEN | missing token |
| 1001 | ERR_LOAD_MEDIA_ENGINE | ffmpeg missing or encoder failure |
Members not supported in the current version
setUserBackground, setVideoMixingLayout (both generations), updateWatermarkConfigs, enableAndUpdateVideoWatermarks(ByUid), disableVideoWatermarks(ByUid), enableEncryption, setAudioVolumeIndicationParameters, setGlobalLocalAccessPoint, setRecorderConfigByUid, startSingleRecordingByUid, stopSingleRecordingByUid, getAgoraParameter.
These require a real media renderer, encryption or per-stream routing, which this SDK does not bundle. They fail explicitly with -4 (ERR_NOT_SUPPORTED) instead of pretending to succeed.