Skip to main content
View as Markdown

Error Handling - Avatar Videos

Error Handling​

Server-Side API Errors​

Error CodeMeaningResolution
VIDEO_IS_PROCESSINGScenes cannot be modified while composing or generating (name and metadata updates are still allowed)Wait for the current operation to complete
VIDEO_CANNOT_COMPOSEVideo status does not allow compositionUse resetStatus if in error state, or wait for current operation
VIDEO_CANNOT_GENERATEVideo status does not allow generationEnsure video is in draft or composed status
VIDEO_IS_BEING_GENERATEDA generation is already in progressWait for it to complete
CANNOT_RESET_STATUSOnly error statuses can be resetOnly compose-error and generate-error can be reset
SCENE_NOT_FOUNDScene index out of rangeCheck scene count in the video
SCENE_EMPTY_NARRATIONScene has no narration textAdd narration text before previewing audio
CAPTIONS_NOT_FOUNDSource entries have no captionsAdd captions/transcripts to source entries before composing
TOO_MANY_SOURCESToo many unique b-roll source entries across all scenesReduce the number of distinct entryId values. Reuse entries at different startTime offsets instead of adding new sources
AVATAR_NOT_FOUNDInvalid avatar IDCreate an avatar with avatar.upsert first
AVATAR_TEMPLATE_NOT_FOUNDInvalid template IDUse an ID from avatarTemplate.list
BACKGROUND_NOT_FOUNDInvalid library background IDUse a valid background ID from the asset library
VIDEO_AVATAR_NOT_CONFIGUREDVideo has no avatar setSet avatarId when creating or updating the video
INVALID_STATUS_TRANSITIONStatus change not allowedFollow the status lifecycle diagram in section 3

Widget Errors​

  • Blank studio — Verify the KS is valid and partnerId is a number (required type). Check browser console for API errors
  • No avatars available — Confirm the account has VOD Avatar feature provisioning
  • Generation produces generate-error — Isolate the cause: test a minimal 1-scene full-screen video first. If that succeeds, check b-roll entries for standard frame rates (25/30 fps) and confirm they are within the 5-source limit. If it also errors, retry later for a transient service issue
  • KS expiry — Update reactively: workspace.session.setData(prev => ({ ...prev, ks: "new-ks" }))