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.

4 min readSume
All posts

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 ids as Cartesia describes them (Sonic 3.6 page, read 2026-10-02) and how Sume's router catalog treats them (OpenAPI, read 2026-10-02).
Model idCartesia saysSume TTS Router
sonic-3.6Updates to the most recent stable snapshotIn the catalog; use for production
sonic-previewBeta, not for production, can change without noticeIn the catalog; rejects pro voice clones with voice_model_mismatch
sonic-latestNot described on this pageAlias 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

All Developers posts

Written by Sume