Skip to content

Android SDK error handling

When stream or call FAILED status is received, getInfo() method returns a description string of error occured.

Errors list

Error Description string
streamStatusInfo
FAILED_BY_ICE_ERROR Failed by ICE error
FAILED_BY_ICE_TIMEOUT Failed by ICE timeout
FAILED_BY_KEEP_ALIVE Failed by ICE keep alive
FAILED_BY_DTLS_FINGERPRINT_ERROR Failed by DTLS fingerprint error
FAILED_BY_DTLS_ERROR Failed by DTLS error
FAILED_BY_HLS_WRITER_ERROR Failed by HLS writer error
FAILED_BY_RTMP_WRITER_ERROR Failed by RTMP writer error
FAILED_BY_RTP_ACTIVITY Failed by RTP activity
STOPPED_BY_SESSION_DISCONNECT Stopped by session disconnect
STOPPED_BY_REST_TERMINATE Stopped by /terminate REST API query
STOPPED_BY_PUBLISHER_STOP Stopped by publisher stop
STOPPED_BY_USER Stopped by user
FAILED_BY_ERROR Failed by error
FAILED_TO_ADD_STREAM_TO_PROXY Failed to add stream to proxy
DISTRIBUTOR_STOPPED Distributor stopped
PUBLISH_STREAM_IS_NOT_READY Publish stream is not ready
STREAM_NOT_FOUND Stream not found
STREAM_NAME_ALREADY_IN_USE Stream name is already in use
MEDIASESSION_ID_NULL MediaSessionId is null
MEDIASESSION_ID_ALREADY_IN_USE MediaSessionId is already in use
SESSION_NOT_READY Session not ready
SESSION_DOES_NOT_EXIST Session does not exist
RTSP_HAS_WRONG_FORMAT Rtsp has wrong format
FILE_HAS_WRONG_FORMAT File has wrong format
FAILED_TO_CONNECT_TO_RTSP_STREAM Failed to connect to rtsp stream
RTSP_STREAM_NOT_FOUND Rtsp stream not found
RTSPAGENT_SHUTDOWN RtspAgent shutdown
STREAM_FAILED Stream failed
NO_COMMON_CODECS No common codecs
BAD_URI Bad URI
GOT_EXCEPTION_WHILE_STREAMING_FILE Got exception while streaming file
REQUESTED_STREAM_SHUTDOWN Requested stream shutdown
FAILED_TO_READ_FILE Failed to read file
FILE_NOT_FOUND File not found
FAILED_TO_CONNECT_TO_ORIGIN_STREAM Failed to connect to origin stream
CDN_STREAM_NOT_FOUND CDN stream not found
FAILED_TO_GET_AGENT_STORAGE Failed to get agent storage
AGENT_SERVICING_ORIGIN_STREAM_IS_SHUTTING_DOWN Agent servicing origin stream is shutting down
TERMINATED_BY_KEEP_ALIVE Terminated by keep-alive
TRANSCODING_REQUIRED_BUT_DISABLED Transcoding is requred, but disabled
NO_AVAILABLE_TRANSCODERS No available transcoder nodes in CDN
callStatusInfo
FAILED_BY_SESSION_CREATION Failed by session creation
FAILED_BY_ICE_ERROR Failed by ICE error
FAILED_BY_RTP_ACTIVITY Failed by RTP activity
FAILED_BY_RTMP_WRITER_ERROR Failed by RTMP writer error
FAILED_BY_DTLS_FINGERPRINT_ERROR Failed by DTLS fingerprint error
FAILED_BY_DTLS_ERROR Failed by DTLS error
FAILED_BY_ERROR Failed by error
FAILED_BY_REQUEST_TIMEOUT Failed by request timeout
TRANSCODING_REQUIRED_BUT_DISABLED Transcoding is requred, but disabled

Error handling code example

As an example, let's take the StreamingMinActivity.java class code with hash 17fa60baa5a21bc7398338c530bd7314e0cbfca3, that is available to download in build 1.0.1.49

  1. Stream playback error handling
    Stream.getInfo() code

    playStream.on(new StreamStatusEvent() {
       @Override
       public void onStreamStatus(final Stream stream, final StreamStatus streamStatus) {
           runOnUiThread(new Runnable() {
               @Override
               public void run() {
                   ...
                   if (StreamStatus.FAILED.equals(streamStatus)){
                       switch (stream.getInfo()){
                           case StreamStatusInfo.SESSION_DOES_NOT_EXIST:
                               mPlayStatus.setText(streamStatus+": Actual session does not exist");
                               break;
                           case StreamStatusInfo.STOPPED_BY_PUBLISHER_STOP:
                               mPlayStatus.setText(streamStatus+": Related publisher stopped its stream or lost connection");
                               break;
                           case StreamStatusInfo.SESSION_NOT_READY:
                               mPlayStatus.setText(streamStatus+": Session is not initialized or terminated on play ordinary stream");
                               break;
                           case StreamStatusInfo.RTSP_STREAM_NOT_FOUND:
                               mPlayStatus.setText(streamStatus+": Rtsp stream not found where agent received '404-Not Found'");
                               break;
                           case StreamStatusInfo.FAILED_TO_CONNECT_TO_RTSP_STREAM:
                               mPlayStatus.setText(streamStatus+": Failed to connect to rtsp stream");
                               break;
                           case StreamStatusInfo.FILE_NOT_FOUND:
                               mPlayStatus.setText(streamStatus+": File does not exist, check filename");
                               break;
                           case StreamStatusInfo.FILE_HAS_WRONG_FORMAT:
                               mPlayStatus.setText(streamStatus+": File has wrong format on play vod, this format is not supported");
                               break;
                           default:{
                              mPlayStatus.setText(stream.getInfo());
                          }
                       }
                   } else {
                       mPlayStatus.setText(streamStatus.toString());
                   }
               }
           });
       }
    });
    

  2. Stream publishing error handling
    Stream.getInfo() code

    if (StreamStatus.FAILED.equals(streamStatus)){
        switch (stream.getInfo()){
            case StreamStatusInfo.STREAM_NAME_ALREADY_IN_USE:
                mPublishStatus.setText(streamStatus+": Server already has a publish stream with the same name, try using different one");
                break;
            default:{
                mPlayStatus.setText(stream.getInfo());
            }
        }
    } else {
        mPublishStatus.setText(streamStatus.toString());
    }