Overview
Error events can occur while doing following tasks,
- Creating an asset.
- Playing an asset.
- Downloading an asset.
The handling of error events for all above tasks is different.
- Creating an asset
Method createAsset of VdoAsset accepts a closure which returns an error if the request is failed
- Playing an asset
Protocol AssetPlaybackDelegate has streamLoadError method that will be called if any error event occurs while initiating playback
- Downloading an asset.
Notification Center is extended to provide a notification with key
AssetDownloadFailed in case any error occurs when download is initiated
Troubleshooting
Below are the possible error events that can occur when using iOS Native SDK.
| Code | Message | Meaning & Resolution |
|---|---|---|
| 3100 | We couldn’t verify the video. Please try again later. | DRM/authorization failed. Verify videoId, playbackInfo/OTP, and player config ID. Generate a fresh OTP and retry. |
| 3101 | We couldn’t verify the video. Please try again later. | Unauthorized/invalid credentials. Ensure OTP isn’t expired, request a new one, and confirm backend time-sync. |
| 3102 | We couldn’t verify the video. Please try again later. | Forbidden by policy. Check domain/app whitelisting and entitlement rules in Dashboard. |
| 3103 | We couldn’t verify the video. Please try again later. | License endpoint/resource not found. Recheck videoId/endpoints and the player config used to request the license. |
| 3104 | We couldn’t verify the video. Please try again later. | Method not allowed. Likely proxy/server misconfiguration. Bypass custom proxies or fix method forwarding. |
| 3105 | It’s taking too long to load. Try again with a better internet connection. | Timeout. Implement retry with exponential backoff; ask the user to switch to a stable network/Wi-Fi. |
| 3106 | Too many attempts. Please wait a moment before trying again. | Rate limited. Throttle license calls and add backoff/jitter. Avoid tight retry loops. |
| 3107 | We’re facing server issues. Try again after a while. | Server error. Retry after a short delay; if persistent, capture logs and escalate to VdoCipher support. |
| 3108 | We couldn’t verify the video. Please try again later. | Not implemented. Possible proxy/CDN interference. Test without the proxy; contact VdoCipher if it persists. |
| 3109 | We’re facing server issues. Try again after a while. | Bad gateway/upstream issue. Retry; check corporate/firewall/proxy paths; escalate if recurring. |
| 3110 | We’re facing server issues. Try again after a while. | Service unavailable/maintenance. Retry later; check status with your team/support if ongoing. |
| 3111 | It’s taking too long to load. Try again with a better internet connection. | Gateway timeout. Add backoff; verify DNS/firewall; ask user to try another network. |
| 3112 | It’s taking too long to load. Try again with a better internet connection. | Client-side timeout. Prompt user to use stable Wi-Fi; ensure app doesn’t cancel the request prematurely. |
| 3113 | Network error. Please check your internet and try again. | Device offline. Prompt user to reconnect; guard flows until connectivity is restored. |
| 3114 | Network error. Please check your internet and try again. | Connection dropped mid-request. Retry; avoid aggressive timeouts; prefer Wi-Fi where possible. |
| 3115 | Network use is restricted. Try enabling data or using Wi-Fi. | iOS/network policy blocking data (Low Data Mode, parental controls). Ask user to enable data or connect to Wi-Fi. |
| 3116 | We received an unexpected response. Please try again. | Invalid/HTML error page from proxy/CDN. Log response, verify headers/content-type, and contact VdoCipher with samples. |
| 3117 | An error occurred. Please try again later. | Generic license error. Collect logs (request IDs/timestamps) and escalate to VdoCipher support. |
| 3118 | Something went wrong. Please try again later. | Required data missing. Recheck SDK inputs (OTP, videoId, config) and server response fields. |
| 3119 | Couldn’t load the video properly. Please try again. | Response parsing failed. Ensure proxy/CDN doesn’t rewrite responses; verify JSON; share logs with VdoCipher. |
| 3120 | Couldn’t load the video properly. Please try again. | HTTP parsing failed. Inspect raw response, status, and headers; check reverse-proxy rules; escalate if needed. |
| 3121 | Too many attempts. Wait for a while before trying again. | App retried excessively. Implement capped retries/backoff; avoid retrying on 4xx. |
| 3122 | Network error. Please check your internet and try again. | General network failure. Ask user to switch networks; retry with backoff; verify firewall/VPN isn’t blocking DRM. |
| 3123 | This video URL is not supported. Try a different one. | Invalid/unsupported URL scheme. Use HTTPS HLS FairPlay playback URLs from VdoCipher; avoid file:// or custom schemes. |
| 3124 | We couldn’t connect to the server. Please try again later. | DNS/host unreachable. Check domain correctness, DNS resolution, and corporate firewall rules. |
| 3125 | The video is currently unavailable. Please try again later. | Content unavailable/disabled/not ready. Verify encoding status and availability in the Dashboard. |
| 3126 | We couldn’t access the video file. Try restarting your phone. | Local file permission/path issue. Re-download the asset; ensure file exists and app has access. |
| 3127 | The video load was cancelled. Try again if needed. | Request canceled by app/user. Ensure you’re not canceling the task; allow user to retry. |
| 3128 | Secure connection failed. Try connecting to a different network. | TLS/SSL handshake failure. Check device date/time, captive portals/SSL-inspection; try another network or update iOS. |
| 3129 | Secure connection failed. Try connecting to a different network. | Certificate trust issue. Ensure full CA chain; avoid SSL-intercepting proxies; escalate to VdoCipher if unresolved. |
| 3130 | Something went wrong. Please try again later. | Unknown error. Gather logs (device, iOS version, timestamps) and contact VdoCipher support. |
| 3131 | Media services were reset. Please restart your phone and try again. | AVFoundation reset. Re-initialize the player; if still failing, ask user to reboot the device. |
| 3132 | You’re not allowed to play this content. Please contact support if the issue continues. | Entitlement/authorization issue. Validate user’s purchase/rights and OTP scope; fix backend rules or contact VdoCipher. |
| 3133 | Video can’t be played right now. Please try again in a few minutes. | Hardware decoder temporarily busy. Free resources, stop other playback, and retry later or after device reboot. |
| 3134 | This video can’t be played on your device. | Codec/profile/device incompatibility. Ensure iOS-compatible DRM profiles; re-encode as needed or guide user to another device. |
| 3200 | Unable to load video. Please try again later. | DRM manifest request failed. Ensure OTP/videoId are valid and retry on stable internet. |
| 3201 | Unable to load video. Please try again later. | Unauthorized manifest fetch. OTP may have expired. Generate a new OTP and retry. |
| 3202 | Unable to load video. Please try again later. | Forbidden. Video may be disabled, geo-blocked, or restricted. Check Dashboard policies. |
| 3203 | Unable to load video. Please try again later. | Manifest not found. Check if videoId is correct and encoding has completed. |
| 3204 | Unable to load video. Please try again later. | Method not allowed by server. Possible proxy/CDN config issue. |
| 3205 | It’s taking too long to load. Try again with a better internet connection. | Timeout fetching manifest. Retry with exponential backoff; ensure user has strong internet. |
| 3206 | Too many attempts. Please wait and try again. | Rate limited by server. Back off retries; do not spam manifest requests. |
| 3207 | There’s a server issue. Please try again after some time. | Internal server error while fetching manifest. Retry later; escalate if recurring. |
| 3208 | Unable to load video. Please try again later. | Not implemented on server. Possible server/proxy misconfiguration. |
| 3209 | There’s a server issue. Please try again after some time. | Bad gateway. Upstream manifest service failed. Retry; check firewall/proxy. |
| 3210 | There’s a server issue. Please try again after some time. | Service unavailable. Manifest server temporarily down; retry after some time. |
| 3211 | It’s taking too long to load. Try again on a stable internet connection. | Gateway timeout while loading manifest. Suggest retry on stable connection. |
| 3212 | It’s taking too long to load. Try again on a stable internet connection. | Request timed out. Retry; advise user to use Wi-Fi. |
| 3213 | You’re offline. Please connect to the internet and try again. | Device offline when fetching manifest. Ask user to reconnect. |
| 3214 | Internet connection was lost. Please try again. | Connection dropped mid-request. Retry manifest load. |
| 3215 | Network use is restricted. Try enabling data or using Wi-Fi. | iOS Low Data Mode or restrictions blocking manifest. Ask user to enable data or Wi-Fi. |
| 3216 | We received an unexpected response. Please try again. | Invalid manifest response (e.g., HTML error page). Check proxy/CDN. |
| 3217 | An error occurred. Please try again later. | Generic manifest error. Collect logs and escalate to VdoCipher support. |
| 3218 | No video found. Try again after checking your network. | Required manifest data missing. Check encoding status and request parameters. |
| 3300 | We couldn’t verify the video. Please try again after some time. | Generic certificate fetch failure. Retry; ensure device has internet. |
| 3301 | We couldn’t verify the video. Please try again after some time. | Unauthorized request. Certificate fetch blocked due to expired/invalid OTP. |
| 3302 | We couldn’t verify the video. Please try again after some time. | Forbidden access. Certificate might be disabled for video or geo-restricted. Check Dashboard policies. |
| 3303 | We couldn’t verify the video. Please try again after some time. | Certificate not found. Video may not be enabled for DRM. Confirm FairPlay configuration in Dashboard. |
| 3304 | We couldn’t verify the video. Please try again after some time. | Method not allowed on server. Possible server or proxy misconfiguration. |
| 3305 | It’s taking longer than expected. Try again on a better connection. | Timeout fetching certificate. Ask user to retry with stable internet; implement retry with backoff. |
| 3306 | Too many requests made. Please try again after some time. | Rate-limited by certificate server. Add retry delay; avoid spamming requests. |
| 3307 | We’re experiencing server issues. Please try again later. | Internal server error when fetching certificate. Retry later; escalate if recurring. |
| 3308 | We couldn’t verify the video. Please try again after some time. | Not implemented on server side. Report issue if encountered. |
| 3309 | We’re experiencing server issues. Please try again later. | Bad gateway response while fetching certificate. Retry later; check firewall/proxy. |
| 3310 | We’re experiencing server issues. Please try again later. | Service unavailable. Certificate service is temporarily down. Retry after some time. |
| 3311 | It’s taking longer than expected. Try again on a better connection. | Gateway timeout fetching certificate. Retry later on stronger internet connection. |
| 3312 | It’s taking longer than expected. Try again on a better connection. | |
| 3313 | No internet connection. Please connect and try again. | Device offline when fetching certificate. User should reconnect and retry. |
| 3314 | Connection was lost. Please try again. | Connection dropped mid-request. Retry certificate fetch. |
| 3315 | Network data not allowed. Enable it or switch to Wi-Fi. | iOS data restrictions (Low Data Mode) may block certificate. Ask user to enable data or use Wi-Fi. |
| 3316 | Something went wrong. Try again later. | Invalid response (e.g., HTML error instead of certificate). Check proxy/CDN and retry. |
| 3317 | An error occurred. Please try again later. | Invalid response (e.g., HTML error instead of certificate). Check proxy/CDN and retry. |
| 3318 | We couldn’t verify the video. Please try again later. | Invalid response (e.g., HTML error instead of certificate). Check proxy/CDN and retry. |
| 3400 | Unable to load the video. Please try again later. | Generic metadata fetch failure. Retry; confirm network and valid playback info. |
| 3401 | Unable to load the video. Please try again later. | Video verification failed. Check if video is active and not expired. |
| 3402 | Unable to load the video. Please try again later. | Unauthorized request. Ensure correct OTP/playbackInfo is passed. |
| 3403 | Unable to load the video. Please try again later. | Forbidden access. Video might be disabled for playback; check Dashboard policy. |
| 3404 | Unable to load the video. Please try again later. | Video metadata not found. Check if video ID is correct. |
| 3405 | The request took too long. Please check your internet and try again. | Timeout while fetching video metadata. Retry; recommend stable internet. |
| 3406 | Too many requests. Please wait a moment and try again. | Too many metadata requests. Add retry with exponential backoff. |
| 3407 | We're facing server issues. Please try again after some time. | Internal server error fetching metadata. Retry later; escalate if frequent. |
| 3408 | Unable to load the video. Please try again later. | Metadata not implemented for this request type. Report if encountered. |
| 3409 | We're facing server issues. Please try again after some time. | Bad gateway response while fetching metadata. Retry later. |
| 3410 | We're facing server issues. Please try again after some time. | Metadata service unavailable. Retry later. |
| 3411 | The request took too long. Please check your internet and try again. | Gateway timeout fetching metadata. Retry with stronger internet. |
| 3412 | The request took too long. Please check your internet and try again. | Request timeout while fetching metadata. Retry; recommend Wi-Fi. |
| 3413 | You’re offline. Please connect to the internet and try again. | Device is offline. Ask user to reconnect to internet and retry. |
| 3414 | Connection lost. Please switch to a stable network and try again. | Connection dropped mid-request. Retry metadata fetch. |
| 3415 | Network use is restricted. Try enabling data or connecting to Wi-Fi. | iOS Low Data Mode or restrictions may block metadata. Ask user to enable data or use Wi-Fi. |
| 3416 | We received an invalid response. Please try again later. | Invalid server response. Retry; escalate if persists. |
| 3417 | Something went wrong while loading the video. Please try again later. | Video doesn’t have required encoding profile for this platform. Check Dashboard > Device Config. |
| 3418 | Something went wrong while loading the video. Please try again later. | Likely wrong video ID or playbackInfo. Validate values before playback. |
| 3419 | Something went wrong while loading the video. Please try again later. | Playback info has expired or invalid. Fetch fresh OTP/playbackInfo. |
| 3501 | Fairplay certificate request failed. | Certificate could not fetch. Check if video can play in Safari on macOS if the FPS configuration is correct. |
| 3502 | Empty license. Try again after some time. | Unlikely to happen. Please ask the client for IP address and contact us. |
| 3503 | License request failed to connect. Try again after some time. | It occurs when license key is not returned by the server, report VdoCipher team if this event is encountered |
| 3504 | Could not obtain license due to network error | It occurs when the license request is failed because of some network related issues |
| 3506 | Video is not enabled for this device. | Video does not have the required profiles for iOS. Go to your Dashboard > iOS DRM Config; or contact us. |
| 3507 | License Key Request failed. | It occurs when license key is not returned by the server, report VdoCipher team if this event is encountered |
| 3508 | Download is only supported with FPS Configuration. | It occurs when startDownload() is called for non-fairplay enabled asset |
| 3509 | Video meta-data load failed! | It occurs when meta data request has failed |
| 3510 | Rental Duration of this download has expired, Please download again to watch offline | It occurs when playOffline is initiad but is failed because rental duration of the downloaded is expired |
| 3511 | Asset Not Loaded | It occurs when play or download is initiated before asset is loaded |
| 3512 | File Not Found! | It occurs when downloaded file is deleted by either OS or by user |
| 3513 | Unexpected credential error. Try again after some time. | Unexpected credential error. Try again after some time. |
| 3514 | Asset meta-data request failed! Check video id and player config id. | It occurs when either video-id or the player config id are wrong |
| 3515 | OTP do not support download capability | It occurs when download is initiated with an otp that is not configured for offline use |
| 3516 | Playback Info passed to the SDK for the Vdo Asset is invalid. Try again with the valid playback info. | It occurs when attempting to initiate online playback the given playback info is wrong |
| 3517 | Unexpected error occured while processing the request. Try again after some time. | It occurs when server unavailable |
| 3518 | Unexpected error occured while loading the manifest. Try again after some time. | It occurs when manifest fails to load |
| 3519 | Media file could not be loaded... Please try after some time. | Generic media load error message string |
| 2xxx | Dynamic Message returned from server | License server denied access. Please check OTP and follow error message for resolution |