Avatar video 409 avatar_not_ready: wait for the avatar to be ready
POST /v1/avatar-1.0/talking-video returns 409 avatar_not_ready when the avatar is still processing or failed. Poll the avatar's resource_status, then submit.
A 409 with error.code of avatar_not_ready on POST /v1/avatar-1.0/talking-video means the avatar you named is not ready yet. Sume's OpenAPI lists two stable 409 codes for avatar-video submit: avatar_not_ready, and idempotency_conflict when an Idempotency-Key was reused for a different payload. The fix for the first is to wait until the avatar's resource_status is ready, then submit again.
Why is the avatar not ready right after I created it?
Creating an avatar with POST /v1/avatar-1.0/generate starts a job. The create docs say to poll that job until it completes, then use the returned handle or resource id to generate avatar videos. Between the two, the avatar resource is processing.
The avatar schema says processing means the linked job is queued or running, and ready means public Sume-hosted image data is available. The other states are failed and archived.
| resource_status | Meaning | Can render a video? |
|---|---|---|
processing | Linked job queued or running | Not yet |
ready | Image data available | Yes |
failed | Creation failed | No; create a new avatar |
archived | Archived | Do not rely on it |
Which field should I poll?
Read the avatar with GET /v1/avatar-1.0/avatars/{id} and check data.avatar.resource_status. The schema says this field uses ready rather than the job-level completed when the avatar image is usable, and it also returns job_status (queued, processing, completed, failed, canceled) for the underlying job.
Poll with a pause between calls. Sume's OpenAPI says the read budget defaults to 40 times the write budget, so a status loop does not use up your submit allowance.
curl https://api.sume.com/v1/avatar-1.0/avatars/avatar_123 \
-H "Authorization: Bearer $SUME_API_KEY"
# proceed when data.avatar.resource_status == "ready"What if the avatar ends up failed?
A failed avatar will not become ready by waiting. Create a new avatar and render with that one.
Keep the Idempotency-Key stable only while the payload is unchanged: reusing a key with a different body is the other 409, idempotency_conflict.
Sources
Related posts
More in Developers
- Avatar video: avatar_handle or avatar_id per scene?
Sume avatar video launch requests use avatar_handle. Per scene, a character object takes avatar_id or avatar_handle, but only one avatar is allowed per video.
- Avatar video_inputs limits: 20 scenes, 2,000 characters each
Sume's avatar video video_inputs accepts 1 to 20 scenes, each text scene up to 2,000 characters and 60 seconds, inside the 4-60 second total window.
- Avatar video mode: sync waits 30 seconds, so use async or webhook
Sume's sync and subscribe modes wait at most 30 seconds. Avatar video usually takes longer. How to read the timed-out response and what to do next.
- Bannerbear sync API 408 after 10 seconds vs Sume mode sync
Bannerbear's sync endpoint answers 408 if the render takes over 10 seconds. Sume's mode sync waits up to 30 seconds, then returns 202 to poll.
Written by Sume