sonic-preview voice_model_mismatch: use sonic-3.6 for clones
A TTS job on sonic-preview fails with voice_model_mismatch when the voice is a pro voice clone. Send model sonic-3.6 to the Sume TTS Router instead.

If a Sume TTS Router job on sonic-preview fails with voice_model_mismatch, the voice you picked is a pro voice clone, and the preview channel does not accept those. Send the same request with model: "sonic-3.6" and the job should run, because Cartesia's Sonic 3.6 page (read 2026-10-02) says pro voice clones made on older models work on Sonic 3.6.
The catalog entry for sonic-preview on Sume says the same thing in its constraints list: it is a provider beta channel whose output and availability can change without notice, and requests that use a pro voice clone fail with voice_model_mismatch. The router is documented in the Sume API reference.
What does the failure look like?
The submit call is accepted and returns a job id, so the failure shows up when you read the job, not on the POST. The job ends in failed with the code generation_failed, and its details.provider_error_type is voice_model_mismatch. The message Sume passes through reads like "This voice is not compatible with sonic-preview." These are the field names the Sume code maps in its public job error; check them against a real failed job before you build alerting on the text.
Follow the usual job flow from Jobs and results: poll status_url until the job is terminal, then read the error. Do not retry the same body on sonic-preview; the voice will be refused again.
What does Cartesia say about the preview model?
Cartesia describes sonic-preview as a beta model that is not intended for production use and can change without notice. It is the channel Cartesia uses to test upcoming API changes. Its stable counterpart, sonic-3.6, points at the most recent stable snapshot.
| Model id | Cartesia says | Sume TTS Router |
|---|---|---|
sonic-3.6 | Updates to the most recent stable snapshot | In the catalog; use for production |
sonic-preview | Beta, not for production, can change without notice | In the catalog; rejects pro voice clones with voice_model_mismatch |
sonic-latest | Not described on this page | Alias for sonic-3.6, never sonic-preview |
How do I switch the request?
Only the model field changes. The voice selector, language, output_format and the rest are the same on every catalog row. Set the voice through avatar_handle or voice.id, as on Sume TTS 1.0.
curl -X POST https://api.sume.com/v1/tts-router/generate \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: clone-voice-line-001" \
-d '{
"model": "sonic-3.6",
"transcript": "Welcome back. Here is the weekly update.",
"voice": { "mode": "id", "id": "'"$SUME_VOICE_ID"'" },
"language": "en"
}'When is sonic-preview still the right choice?
Use it to try an upcoming Cartesia change with a stock voice, on text you can afford to regenerate. Do not ship it in a pipeline that reuses the audio, because Cartesia can change what the model does without notice. Check the live list at GET /v1/tts-router/models, which is the source for which ids Sume currently accepts.
Sources
Related posts
More in Developers
- Sora Batch API render queue gone: Sume async jobs instead
OpenAI's Sora guide listed Batch API support before the September 24 shutdown. On Sume the pattern is async jobs, a queue and signed webhooks.
- soundtrack_shorter_than_spine: loop the music bed in Timeline
Timeline warns soundtrack_shorter_than_spine when the music bed is shorter than the audio. Set soundtrack.loop to true; gain, fade and duck defaults inside.
- StepAudio 3 Music preview is free, then retired: keep your API stable
stepaudio-3-music-preview is free for a limited time, then retired for a paid version. How to keep a music integration stable, and which Sume ids stay put.
- Sume 503: provider_capacity_exceeded vs provider_not_configured
Sume 503s differ: provider_capacity_exceeded: retry later, same key; provider_not_configured is no hard retries, job_ledger_not_configured is an outage
Written by Sume