Skip to main content
Gradium signale les erreurs différemment selon le transport (REST ou WebSocket) et selon que l’échec survient avant ou après le début d’une réponse en streaming.

Endpoints REST

Les appels REST (POST /api/post/speech/tts et POST /api/post/speech/asr) présentent deux types d’erreurs.

Erreurs avant le flux (niveau HTTP)

Si la requête échoue avant le début du flux de réponse, par exemple en cas de clé API manquante ou révoquée, de Content-Type non pris en charge, d’audio mal formé ou d’ID de voix invalide, le serveur répond avec HTTP 500 et un corps en texte brut. Deux formes de corps sont possibles : Erreurs en amont (avec un code de statut Gradium). Les échecs d’authentification et les rejets au niveau du worker sont renvoyés avec un code numérique :
Par exemple, une clé API révoquée ou expirée renvoie :
Le <code> numérique correspond aux codes utilisés par le message WebSocket error : Rejets au niveau du proxy. Les erreurs levées avant que la requête n’atteigne le worker en amont, par exemple un en-tête Content-Type non pris en charge, sont renvoyées sous forme de chaînes d’erreur brutes, sans le préfixe error from server :
Dans les deux cas, la réponse est HTTP 500 et le corps est en texte brut (pas en JSON). Considérez toute réponse hors 2xx comme fatale pour la requête concernée. Pour récupérer un code d’erreur Gradium, vérifiez si le corps commence par error from server ; si c’est le cas, analysez ce préfixe.

Erreurs en cours de flux

Les erreurs qui surviennent après le début du streaming de la réponse sont signalées sous forme de messages JSON dans le corps du flux. Le statut HTTP sera alors déjà 200. Synthèse vocale (TTS) (POST /api/post/speech/tts, lorsque only_audio vaut false) :
Transcription (STT) (POST /api/post/speech/asr, toujours en NDJSON) :
Dans les deux cas, la connexion se termine après le message d’erreur. Considérez toute ligne error reçue dans le flux comme la fin de la sortie exploitable.

Endpoints WebSocket

Lorsqu’un problème survient pendant une session WebSocket (/api/speech/tts, /api/speech/asr, /api/speech/s2s), le serveur envoie un message error puis ferme le socket :
Codes de fermeture courants : Après l’envoi d’un message error, le serveur ferme le WebSocket. Ouvrez une nouvelle connexion pour réessayer. Pour le cycle de vie complet setup/entrée/flush/fin, consultez Cycle de vie WebSocket.

Erreurs d’authentification

Les échecs d’authentification (clé API manquante, invalide ou révoquée) produisent toujours le code 1008 :
  • REST : HTTP 500 avec le corps error from server 1008: API key is revoked or expired (ou similaire).
  • WebSocket : message error avec code: 1008, puis fermeture.
Générez une nouvelle clé API dans le tableau de bord Gradium et remplacez la valeur de l’en-tête x-api-key.