Recovery and billing
Recover TTS using task IDs and idempotency keys after timeouts or unknown outcomes.
Keep an idempotency key before submitting
kitta audio tts --voice VOICE_ID --text-file script.txt --idempotency-key narration-001 --output narration.mp3Use a new key for each new business operation; keep the input and key unchanged when recovering that submission. Do not reuse this example key for every job.
Before submission, the CLI saves the key and request fingerprint, not text or API keys. Records default to ~/.config/kitta/submissions; KITTA_CONFIG_DIR selects another directory. With a saved task ID, rerunning queries the job. Changed input with the same key fails locally.
When you have a task ID
kitta audio jobs get --job TASK_ID
kitta audio jobs wait --job TASK_ID --wait-timeout 600
kitta audio jobs download --job TASK_ID --output recovered.mp3These commands do not create another TTS job. Choose an unused output filename. Use the audio after the download succeeds.
Unknown outcome
If no task ID was received, retry with the same input and key. Recovery remains subject to the server's idempotency retention period; indefinite deduplication is not guaranteed. A new key represents a new billable request.
Ctrl+C, network errors and local timeouts do not cancel an accepted remote task or imply a refund. Inspect account usage for actual charges; dry-run does not quote a price or check quota.
Reads and idempotent TTS creation retry transient errors up to twice. Other paid operations such as transcription, cloning and design do not automatically retry. Inspect the account before resubmitting an unknown outcome.
Next: quickstart.