Video SDKError
Catalogue of the SDK's error codes. Each constant is the single source for one error: code is its numeric value, name is the constant's own name, and message is the text used when the server does not send a more specific one.
These are the codes delivered to onError; getErrorCodes returns the whole catalogue as a name-to-code map.
Entries
A meeting action was called before the meeting finished joining, or after it left or failed. The action did not run. The delivered message names the method that was rejected; the text below is the fallback when no method name is available.
The camera could not be opened when starting video capture, so no camera track was produced.
An audio track was requested without the RECORD_AUDIO permission granted.
A video track was requested without the CAMERA permission granted.
Screen share was started with a custom track whose state is already ended.
Screen share was started with a custom track that has already been disposed.
Switching between the front and back camera failed; the previous camera stays in use.
The video you are sending fell back to VP8 because the requested codec could not be produced on this device — unavailable, or the hardware encoder failed repeatedly. Sent to the device doing the sending; a remote participant who cannot decode instead gets CODEC_NOT_SUPPORTED on theirs.
Multi-stream was requested with AV1, VP9 or H264; the SDK sends a single layer instead.
Audio could not be routed to the connected Bluetooth device after repeated attempts.
Bluetooth permission was not granted at startup, so Bluetooth devices are unavailable. Fires once; the SDK picks them up automatically if the permission is granted later.
The server configuration could not be fetched during join, so the meeting cannot start. The message carries the underlying cause when one is available.
A pubsub call was made while the pubsub connection was between an unexpected close and its reconnect. The call also throws an IllegalStateException on the calling thread; nothing is sent or registered.
A meeting action was called while the meeting was reconnecting. The action did not run and is not retried automatically; call it again once onMeetingStateChanged reports CONNECTED.
The meeting was left, ended or torn down after the action was accepted but before it reached the server, so it never ran. Not a sign the meeting was never joined — the action was simply in flight when the session closed.
The meeting is already in the state the action asked for, so it did nothing — calling leave() a second time, for example.
The API key in the token is missing or not recognised. Joining fails.
The token is missing, malformed, or has expired. Joining fails.
The meeting ID is missing or not a valid ID. Joining fails.
The participant ID is missing or contains characters that are not allowed. Joining fails.
The same participant ID joined from another device, so this device is being removed.
The VideoSDK account is deactivated, so meetings cannot be joined.
The VideoSDK account is discontinued; the server sends the specific reason in message.
The permissions encoded in the token are not a valid combination. Joining fails.
The meeting is already at its participant limit, so this participant cannot join.
The meeting is already at its speaker limit, so this participant cannot join as a speaker.
A request to start recording was rejected; recording did not start.
A request to stop recording was rejected; recording may still be running.
A request to start a livestream was rejected; the livestream did not start.
A request to stop a livestream was rejected; the livestream may still be running.
The livestream outputs passed to the start request were rejected as invalid.
A request to start HLS was rejected; HLS did not start.
A request to stop HLS was rejected; HLS may still be running.
Recording cannot start yet because the previous recording is still being processed.
A livestream cannot start yet because the previous RTMP session is still being processed.
HLS cannot start yet because the previous HLS session is still being processed.
Recording, livestream, HLS and similar add-on services are not enabled for this account.
The token is valid but was not issued for this meeting ID. Joining fails.
The token is valid but was not issued for this participant ID. Joining fails.
The role carried by the token is not permitted to join this meeting.
The request did not satisfy the account's security configuration and was refused.
The organization is at its concurrent speaker limit across all meetings.
The organization is at its concurrent viewer limit across all meetings.
The organization is at its concurrent recording limit, so recording cannot start.
The organization is at its concurrent HLS limit, so HLS cannot start.
The organization is at its concurrent livestream limit, so the livestream cannot start.
A request to start transcription was rejected; transcription did not start.
A request to stop transcription was rejected; transcription may still be running.
A request to start recording a single participant was rejected.
A request to stop recording a single participant was rejected.
A request to start recording an individual track was rejected.
A request to stop recording an individual track was rejected.
A request to start composite recording was rejected.
A request to stop composite recording was rejected.
The organization is at its limit for participants joining in receive-only mode.
A request to start translation was rejected; translation did not start.
A request to stop translation was rejected; translation may still be running.
A request to change the translation language was rejected; the language is unchanged.
Writing a value to the realtime store failed; the value was not stored.
Reading a value from the realtime store failed; no value was returned.
Adaptive subscription is not enabled for this account, so it cannot be turned on.
Adaptive subscription was enabled while it was already on; nothing changed.
Adaptive subscription was disabled while it was already off; nothing changed.
The server could not set up receiving a remote participant's stream, so it will not play.
This device cannot decode the video codec a remote participant is sending. Delivered to the receiving device; the sender is told about the resulting fallback through onCodecChanged instead.
The meeting ID has been disabled and can no longer be joined.
The API key in the token has been deactivated. Joining fails.
A request to start the whiteboard was rejected; the whiteboard did not open.
A request to stop the whiteboard was rejected; it may still be open.
A whiteboard start or stop was requested while another one is still running.
A request to pause every incoming stream was rejected; the streams keep playing.
A request to resume every incoming stream was rejected; the streams stay paused.
Allowing or denying a participant's request to enter the meeting failed.
A request to change the meeting mode was rejected; the mode is unchanged.
A request to remove a participant was rejected; they remain in the meeting.
A request to turn on another participant's microphone was rejected.
A request to turn off another participant's microphone was rejected.
A request to turn on another participant's camera was rejected.
A request to turn off another participant's camera was rejected.
Pinning a participant failed; the pin state is unchanged.
Unpinning a participant failed; the pin state is unchanged.
A request to change an incoming stream's quality was rejected; the quality is unchanged.
Pausing a single incoming stream failed; it keeps playing.
Resuming a single incoming stream failed; it stays paused.
Switching this participant to another meeting failed; they stay in the current one.
Moving a participant to another room failed; they stay in the current room.
A request to relay media from another meeting was rejected; no relay started.
A request to stop an active media relay was rejected; it may still be running.
The server could not start sending a participant's microphone stream to this device.
The server could not start sending a participant's camera stream to this device.
The server could not stop sending a participant's microphone stream to this device.
The server could not stop sending a participant's camera stream to this device.
Accepting or rejecting an incoming media relay request failed.
Starting to watch a realtime store key for changes failed; no updates will arrive.
Stopping watching a realtime store key failed; updates may keep arriving.
A published message was not delivered — the server rejected it, or the pubsub connection dropped before it was acknowledged.
A topic subscription was rejected. The listener is unregistered again, so no messages arrive for it.
Unsubscribing from a topic was rejected; the listener is still removed locally.
A recording that was already running stopped unexpectedly.
A livestream that was already running stopped unexpectedly.
An HLS stream that was already running stopped unexpectedly.
The recording hit the two-hour per-session limit and was stopped automatically.
The livestream hit the two-hour per-session limit and was stopped automatically.
The HLS stream hit the two-hour per-session limit and was stopped automatically.
A transcription that was already running stopped unexpectedly.