Avis de fin de support : le 13 novembre 2025, le support d'Amazon Elastic Transcoder AWS sera interrompu. Après le 13 novembre 2025, vous ne pourrez plus accéder à la console Elastic Transcoder ni aux ressources Elastic Transcoder.
Pour plus d'informations sur la transition vers AWS Elemental MediaConvert, consultez ce billet de blog
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Gestion des erreurs dans Elastic Transcoder
Rubriques
Lorsque vous envoyez des demandes à l'API Elastic Transcoder et que vous obtenez des réponses depuis cette dernière, vous pouvez rencontrer deux types d'erreurs d'API :
-
Erreurs de client : les erreurs de client sont indiquées par un code de réponse HTTP 4xx. Les erreurs du client indiquent qu'Elastic Transcoder a détecté un problème avec la demande du client, tel qu'un échec d'authentification ou l'absence de paramètres requis. Corrigez le problème dans l'application cliente avant de soumettre à nouveau la requête.
-
Erreurs de serveur : les erreurs de serveur sont indiquées par un code de réponse HTTP 5xx et doivent être résolues par Amazon. Vous pouvez soumettre à nouveau/réessayer la requête jusqu'à ce qu'elle réussisse.
Pour chaque erreur d'API, Elastic Transcoder renvoie les valeurs suivantes :
-
Un code de statut, par exemple,
400
-
Un code d'erreur, par exemple,
ValidationException
-
Un message d'erreur, par exemple,
Supplied AttributeValue is empty, must contain exactly one of the supported datatypes
Pour obtenir la liste des codes d'erreur renvoyés par Elastic Transcoder pour les erreurs du client et du serveur, consultezCodes d'erreur d'API (erreurs de client et de serveur).
De plus, vous pouvez rencontrer des erreurs lors du traitement de votre tâche par Elastic Transcoder. Pour plus d'informations, veuillez consulter Erreurs de traitement de tâches.
Codes d'erreur d'API (erreurs de client et de serveur)
Les codes de statut HTTP indiquent si une opération a abouti ou non.
Le code de réponse 200
indique que l'opération a abouti. Les autres codes d'erreur indiquent une erreur de client (4xx) ou une erreur de serveur (5xx).
Le tableau suivant répertorie les erreurs renvoyées par Elastic Transcoder. Certaines erreurs sont résolues en réessayant simplement la même requête. Le tableau indique quelles erreurs sont susceptibles d'être résolues par des tentatives successives. Si la valeur de la colonne Réessayer est :
-
Oui : soumettez à nouveau la même requête.
-
Non : corrigez le problème côté client avant de soumettre une nouvelle requête.
Pour plus d'informations sur le fait de réessayer des demaDemandesnsultez Nouvelles tentatives après erreur et interruptions exponentielles.
HTTP Status Code | Code d'erreur | Message | Cause | Réessayer |
---|---|---|---|---|
400 | Exception d'échec de vérification conditionnelle | La requête conditionnelle a échoué. | Exemple : la valeur attendue ne correspondait pas à ce qui était stocké dans le système. | Non |
400 | Exception de signature incomplète | La signature de la requête n'est pas conforme aux normes AWS. | La signature figurant dans la requête ne comprenait pas tous les composants requis. Consultez Contenu de l'en-tête HTTP. | Non |
403 | Exception de jeton d'authentification manquant | La requête doit comporter un ID de clé d'accès AWS valide (inscrit). | La requête ne comprenait pas le jeton x-amz-security-token nécessaire. Consultez Envoi de demandes HTTP à Elastic Transcoder. |
Non |
400 | Exception de validation | Divers. | Une ou plusieurs valeurs étaient manquantes ou non valides dans une requête ; par exemple, une valeur était vide ou supérieure à la valeur maximale valide. | Non |
403 | AccessDenied Exception |
|
Vous avez tenté de supprimer un préréglage du système, la signature d'un appel à l'API Elastic Transcoder n'était pas valide ou aucun utilisateur n'est autorisé à effectuer l'opération. |
Non |
404 | ResourceNot Exception trouvée |
|
Exemple : le pipeline auquel vous essayez d'ajouter une tâche n'existe pas ou est encore en cours de création. | Non |
409 | InUse Exception de ressource |
|
Exemple : vous avez tenté de supprimer un pipeline qui est en cours d'utilisation. | Non |
429 | Exception de dépassement de la limite |
|
Le compte AWS actuel a dépassé les limites relatives aux objets Elastic Transcoder. Pour plus d'informations, veuillez consulter Limites du nombre de pipelines, de tâches et de préréglages Elastic Transcoder. | |
429 | Exception de dépassement de débit alloué | Vous avez dépassé votre débit alloué maximum autorisé. |
Exemple : votre taux de demandes est trop élevé. Les kits SDK AWS pour Elastic Transcoder relananceront automatiquement les demandes qui reçoivent cette exception. Votre requête finit par aboutir, à moins que la file d'attente des nouvelles tentatives soit trop grande pour être terminée. Réduisez la fréquence des requêtes. Pour plus d'informations, veuillez consulter Nouvelles tentatives après erreur et interruptions exponentielles. Si vous effectuez une interrogation pour déterminer l'état d'une demande, envisagez d'utiliser des notifications pour déterminer le statut. Pour plus d'informations, veuillez consulter Notifications de statuts des tâches. |
Oui |
429 | Exception de limitation | La fréquence des requêtes dépasse le débit autorisé. |
Vous soumettez des demandes trop rapidement ; par exemple, des demandes de création de tâches. Si vous effectuez une interrogation pour déterminer l'état d'une demande, envisagez d'utiliser des notifications pour déterminer le statut. Pour plus d'informations, veuillez consulter Notifications de statuts des tâches. |
Oui |
500 | Échec interne | Le serveur a rencontré une erreur interne en essayant de traiter la requête. | Le serveur a rencontré une erreur lors du traitement de votre requête. | Oui |
500 | Erreur de serveur interne | Le serveur a rencontré une erreur interne en essayant de traiter la requête. | Le serveur a rencontré une erreur lors du traitement de votre requête. | Oui |
500 | Exception de service interne | Le service a rencontré une exception inattendue en essayant de traiter la requête. | Oui | |
500 | Exception de service non disponible | Le service est actuellement indisponible ou occupé. | Une erreur inattendue s'est produite sur le serveur lors du traitement de votre requête. | Oui |
Exemple de réponse d'erreur
La réponse HTTP ci-dessous indique que la valeur pour inputBucket
était null, ce qui n'est pas une valeur valide.
HTTP/1.1 400 Bad Request x-amzn-RequestId: b0e91dc8-3807-11e2-83c6-5912bf8ad066 x-amzn-ErrorType: ValidationException Content-Type: application/json Content-Length: 124 Date: Mon, 26 Nov 2012 20:27:25 GMT {"message":"1 validation error detected: Value null at 'inputBucket' failed to satisfy constraint: Member must not be null"}
Erreurs de traitement de tâches
Lorsqu'Elastic Transcoder rencontre une erreur lors du traitement de votre tâche, il la signale de deux manières :
-
État de la Job et état de sortie : Elastic Transcoder définit l'
Job:Status
objet et l'Outputs:Status
objet de la sortie défaillante surError
. En outre, Elastic Transcoder attribue à l'objetOutputs:StatusDetail
JSON de la sortie défaillante une valeur qui explique l'échec. -
Notification SNS : si vous avez configuré le pipeline pour envoyer une notification SNS lorsqu'Elastic Transcoder rencontre une erreur pendant le traitement, Elastic Transcoder inclut un objet JSON dans la notification au format suivant :
{ "state" : "PROGRESSING|COMPLETED|WARNING|ERROR", "errorCode" : "
the code of any error that occurred
", "messageDetails" : "the notification message you created in Amazon SNS
", "version" : "API version that you used to create the job
", "jobId" : "value of Job:Id object that Elastic Transcoder returns in the response to a Create Job request
", "pipelineId" : "value of PipelineId object in the Create Job request
", "input" : {job Input settings
}, "outputKeyPrefix" : "prefix for file names in Amazon S3 bucket
", "outputs": [ {applicable job Outputs settings
, "status" : "Progressing|Complete|Warning|Error" }, {...} ], "playlists": [ {applicable job playlists settings
} ], "userMetadata": { "metadata key
": "metadata value
" } }
Valeur de errorCode |
Valeur de messageDetails |
Cause |
---|---|---|
1 000 | Erreur de validation | Lors du traitement de la tâche, Elastic Transcoder a déterminé qu'une ou plusieurs valeurs de la demande n'étaient pas valides. |
1001 | Erreur de dépendance | Elastic Transcoder n'a pas pu générer la liste de lecture car il a rencontré une erreur liée à une ou plusieurs dépendances des listes de lecture. |
2000 | Impossible d'assumer un rôle | Elastic Transcoder ne peut pas assumer leAWS Identity and Access Management rôle spécifié dans l'Role objet du pipeline pour cette tâche. |
3000 | Erreur de stockage non classée | |
3001 | L'entrée n'existe pas | Aucun fichier portant le nom que vous avez spécifié n'existe dans l'objet Input:Key pour cette tâche. Le fichier doit exister dans le compartiment Amazon S3 spécifié dans l'InputBucket objet du pipeline pour cette tâche. |
3002 | La sortie existe déjà | Un fichier portant le nom que vous avez spécifié existe déjà dans l'objet Outputs:Key (ou Output:Key ) pour cette tâche. Le fichier ne peut pas exister dans le compartiment Amazon S3 spécifié dans l'OutputBucket objet du pipeline pour cette tâche. |
3003 | Ne dispose pas des autorisations de lecture | Le rôle IAM spécifié dans l'Role objet du pipeline que vous avez utilisé pour cette tâche n'est pas autorisé à lire le contenu du compartiment Amazon S3 qui contient le fichier que vous souhaitez transcoder. |
3004 | Ne dispose pas des autorisations d'écriture | Le rôle IAM spécifié dans l'Role objet du pipeline que vous avez utilisé pour cette tâche n'est pas autorisé à écrire dans le compartiment Amazon S3 dans lequel vous souhaitez enregistrer des fichiers transcodés ou des fichiers miniatures. |
3005 | Le compartiment n'existe pas | Le compartiment S3 spécifié n'existe pas : bucket= {1}. |
3006 | Ne dispose pas des autorisations d'écriture | Elastic Transcoder n'a pas pu écrire la clé = {1} dans le compartiment = {2}, car la clé ne se trouve pas dans la même région que le compartiment |
4000 | Fichier d'entrée incorrect | Le fichier que vous avez spécifié dans l'Input:Key objet de cette tâche est dans un format qui n'est actuellement pas pris en charge par Elastic Transcoder. |
4001 | Fichier d'entrée incorrect | Les dimensions de largeur x hauteur du fichier que vous avez spécifié dans l'objet Input:Key pour cette tâche dépassent les dimensions maximales autorisées. |
4002 | Fichier d'entrée incorrect | La taille du fichier que vous avez spécifiée dans l'objet Input:Key pour cette tâche dépasse la taille maximale autorisée. |
4003 | Fichier d'entrée incorrect | Elastic Transcoder n'a pas pu interpréter le fichier que vous avez spécifié dans l'un desOutputs:Watermarks:InputKey objets de cette tâche. |
4004 | Fichier d'entrée incorrect | Les dimensions de largeur x hauteur d'un fichier que vous avez spécifiées dans l'un des objets Outputs:Watermarks:InputKey pour cette tâche dépassent les dimensions maximales autorisées. |
4005 | Fichier d'entrée incorrect | La taille d'un fichier que vous avez spécifiée pour l'un des {1} objets dépasse la taille maximale autorisée : bucket= {2}, key= {3}, size {4}, taille max= {5}. |
4006 | Fichier d'entrée incorrect | Elastic Transcoder n'a pas pu transcoder le fichier d'entrée car le format n'est pas pris en charge. |
4007 | Fichier d'entrée non traité | Elastic Transcoder a rencontré un type de fichier généralement pris en charge, mais n'a pas pu le traiter correctement. Cette erreur a ouvert automatiquement une demande de support, et nous avons commencé à rechercher la cause du problème. |
4008 | Fichier d'entrée incorrect |
La cause sous-jacente de cette erreur est une incohérence entre le préréglage et le fichier d'entrée. En voici quelques exemples :
|
4009 | Fichier d'entrée incorrect | Elastic Transcoder n'a pas pu insérer toutes les pochettes de votre album dans le fichier de sortie car vous avez dépassé le nombre maximum de flux d'illustrations. |
4010 | Fichier d'entrée incorrect | Elastic Transcoder n'a pas pu interpréter le fichier graphique que vous avez spécifiéAlbumArt:Artwork:InputKey . |
4011 | Fichier d'entrée incorrect | Elastic Transcoder a détecté un flux d'illustrations intégré, mais n'a pas pu l'interpréter. |
4012 | Fichier d'entrée incorrect | L'image que vous avez spécifiée pour AlbumArt:Artwork dépasse les dimensions de largeur x hauteur maximales autorisées : 4096 x 3072. |
4013 | Fichier d'entrée incorrect | Les dimensions de largeur x hauteur de la pochette intégrée dépassent les dimensions maximales autorisées : 4096 x 3072. |
4014 | Entrée incorrecte | La valeur que vous avez spécifiée pour l'heure de début d'un clip est postérieure à la fin du fichier d'entrée. Elastic Transcoder n'a pas pu créer de fichier de sortie. |
4015 | Entrée incorrecte | Elastic Transcoder n'a pas pu générer de fichier manifeste car les segments générés ne correspondaient pas. |
4016 | Entrée incorrecte | Elastic Transcoder n'a pas pu déchiffrer le fichier d'entrée de {1} à l'aide de {2}. |
4017 | Entrée incorrecte | La clé AES a été chiffrée avec une clé de chiffrement de {2} bits. AES prend en charge uniquement les clés de chiffrement 128, 192 et 256 bits. MD5= {1}. |
4018 | Entrée incorrecte | Elastic Transcoder n'a pas pu déchiffrer la clé chiffrée avec MD5= {1} |
4019 | Entrée incorrecte | Elastic Transcoder n'a pas pu générer de clé de données à l'aide de la clé KMS ARN {0}. |
4020 | Entrée incorrecte | Votre clé doit être 128 bits pour le chiffrement AES-A128. MD5 = {1}, {2} bits. |
4021 | Entrée incorrecte | Votre clé doit être de 128 bits pour les PlayReady DRM. MD5 = {1}, intensité = {2} bits. |
4022 | Entrée incorrecte | La taille combinée des {1} fichiers multimédia spécifiés dépasse la taille maximale autorisée : bucket= {2}, size= {3}. |
4023 | Entrée incorrecte | Les {1} fichiers d'entrée spécifiés pour la concaténation ne créeront pas de sortie avec une résolution cohérente avec le préréglage spécifié. Utilisez un préréglage avec des paramètres PaddingPolicy , SizingPolicy , MaxWidth et MaxHeight différents. |
4024 | Entrée incorrecte | Les {1} fichiers d'entrée spécifiés pour la concaténation ne créeront pas de vignettes avec une résolution cohérente avec le préréglage spécifié. Utilisez un préréglage avec des paramètres de miniatures PaddingPolicy , SizingPolicy , MaxWidth et MaxHeight différents. |
4025 | Entrée incorrecte | Au moins un fichier multimédia (entrée # {1}) ne correspond pas aux autres. Tous les fichiers multimédias doivent soit comporter de la vidéo, soit ne pas en comporter. |
4026 | Entrée incorrecte | Au moins un fichier multimédia (entrée # {1}) ne correspond pas aux autres. Tous les fichiers multimédias doivent comporter soit de l'audio, soit pas d'audio. |
4100 | Fichier d'entrée incorrect | Elastic Transcoder a détecté une piste de sous-titres intégrée mais n'a pas pu l'interpréter. |
4101 | Fichier d'entrée incorrect | Elastic Transcoder n'a pas pu interpréter le fichier de sous-titres spécifié pour Amazon S3 bucket= {1}, key= {2}. |
4102 | Fichier d'entrée incorrect | Elastic Transcoder n'a pas pu interpréter le fichier de sous-titres spécifié car il n'était pas codé en UTF-8 : Amazon S3 bucket= {1}, key= {2}. |
4103 | Fichier d'entrée incorrect | Elastic Transcoder n'a pas pu traiter toutes vos pistes de sous-titres car vous avez dépassé {1}, le nombre maximum de pistes de sous-titres. |
4104 | Fichier d'entrée incorrect | Elastic Transcoder n'a pas pu générer de liste de lecture principale car la sortie souhaitée contient {1} sous-titres intégrés, alors que le maximum est de 4. |
4105 | Fichier d'entrée incorrect | Elastic Transcoder ne peut pas intégrer vos pistes de sous-titres car la fréquence d'images {1} n'est pas prise en charge pour le CEA-708. Seules les fréquences d'images [29,97, 30] sont prises en charge. |
4106 | Fichier d'entrée incorrect | Elastic Transcoder ne peut pas intégrer vos pistes de sous-titres car le format {1} ne prend en charge que {2} pistes de sous-titres. |
9000 | Erreur interne du service | |
9001 | Erreur interne du service | |
9999 | Erreur interne du service |
Capture d'erreurs
Pour que votre application fonctionne correctement, vous devez intégrer une logique destinée à capturer les erreurs et à y répondre. Une approche standard consiste à implémenter votre requête au sein d'un bloc try
ou d'une instruction if-then
.
Les kits AWS SDK effectuent leurs propres tentatives et contrôles d'erreur. Si vous rencontrez une erreur en utilisant l'un des kits SDK AWS, vous devez voir le code d'erreur et la description. Vous devez également voir une valeur Request ID
. LaRequest ID
valeur peut aider à résoudre les problèmes liés à la prise en charge d'Elastic Transcoder.
L'exemple suivant utilise le kit AWS SDK pour Java pour supprimer un élément d'un bloc try
et utilise un bloc catch
pour répondre à l'erreur. Dans ce cas, il avertit que la demande a échoué. L'exemple utilise la classe AmazonServiceException
pour extraire des informations concernant les erreurs d'opération, notamment Request ID
. L'exemple utilise également la classe AmazonClientException
au cas où la demande n'aboutirait pas pour d'autres raisons.
try { DeleteJobRequest request = new DeleteJobRequest(jobId); DeleteJobResult result = ET.deleteJob(request); System.out.println("Result: " + result); // Get error information from the service while trying to run the operation } catch (AmazonServiceException ase) { System.err.println("Failed to delete job " + jobId); // Get specific error information System.out.println("Error Message: " + ase.getMessage()); System.out.println("HTTP Status Code: " + ase.getStatusCode()); System.out.println("AWS Error Code: " + ase.getErrorCode()); System.out.println("Error Type: " + ase.getErrorType()); System.out.println("Request ID: " + ase.getRequestId()); // Get information in case the operation is not successful for other reasons } catch (AmazonClientException ace) { System.out.println("Caught an AmazonClientException, which means"+ " the client encountered " + "an internal error while trying to " + "communicate with Elastic Transcoder, " + "such as not being able to access the network."); System.out.println("Error Message: " + ace.getMessage()); }
Nouvelles tentatives après erreur et interruptions exponentielles
Un grand nombre de composants d'un réseau, tels que serveurs DNS, commutateurs, équilibreurs de charge ou autres, peuvent générer des erreurs à n'importe quel moment de la vie d'une requête donnée.
La technique habituelle pour traiter ces réponses erronées dans un environnement réseau consiste à implémenter les nouvelles tentatives dans l'application cliente. Cette technique augmente la fiabilité de l'application et réduit les coûts de fonctionnement pour le développeur.
Chaque kit SDK AWS prenant en charge Elastic Transcoder implémente une logique de nouvelle tentative automatique. Le kit AWS SDK pour Java retente automatiquement les requêtes et vous pouvez configurer les paramètres de nouvelle tentative à l'aide de la classe ClientConfiguration
. Par exemple, dans certains cas, tels qu'une page web effectuant une requête avec une latence minimale et sans nouvelles tentatives, vous pouvez désactiver la logique de nouvelle tentative. Utilisez la classe ClientConfiguration
et affectez au paramètre maxErrorRetry
la valeur 0
afin de désactiver les nouvelles tentatives.
Si vous n'utilisez pas un kit AWS SDK, vous devez retenter les demandes originales qui reçoivent les erreurs serveur (5xx). Cependant, les erreurs client (4xx, autres qu'une exception ThrottlingException
ou ProvisionedThroughputExceededException
) indiquent que vous avez besoin de réviser la demande elle-même pour résoudre le problème avant de recommencer.
Note
Si vous effectuez une enquête pour déterminer l'état d'une demande et si Elastic Transcoder renvoie le code d'état HTTP 429 avec un code d'erreur égal àProvisioned Throughput Exceeded
Exception
ouThrottling Exception
, pensez à utiliser des notifications au lieu d'interroger pour déterminer l'état. Pour plus d'informations, veuillez consulter Notifications de statuts des tâches.
En plus de nouvelles tentatives simples, nous recommandons d'utiliser un algorithme d'interruption exponentielle pour un meilleur contrôle de flux. L'idée sous-jacente consiste à utiliser des temps d'attente progressivement plus longs entre les tentatives en cas de réponses d'erreur consécutives. Par exemple, vous pouvez attendre 1 seconde avant la première nouvelle tentative, 4 secondes avant la deuxième, 16 secondes avant la troisième, etc. Toutefois, si la requête n'a pas réussi après une minute, le problème peut être lié à une limite stricte et non à la fréquence des requêtes. Par exemple, il est possible que vous ayez atteint le nombre maximal de pipelines autorisés. Définir le nombre maximal de nouvelles tentatives pour qu'elles s'arrêtent au bout d'une minute environ.
Le flux de travail suivant illustre la logique de nouvelle tentative. La logique du flux de travail détermine d'abord si l'erreur est une erreur serveur (5xx). Ensuite, si l'erreur est une erreur serveur, le code réessaie la demande originale.
currentRetry = 0 DO set retry to false execute Elastic Transcoder request IF Exception.errorCode = ProvisionedThroughputExceededException set retry to true ELSE IF Exception.httpStatusCode = 500 set retry to true ELSE IF Exception.httpStatusCode = 400 set retry to false fix client error (4xx) IF retry = true wait for (2^currentRetry * 50) milliseconds currentRetry = currentRetry + 1 WHILE (retry = true AND currentRetry < MaxNumberOfRetries) // limit retries