État du lot et codes d’erreur

Les opérations d’API REST pour le service Batch retournent des codes status HTTP standard, tels que définis dans les définitions de code d’état HTTP/1.1.

Les opérations d'API peuvent également renvoyer des informations d'erreur supplémentaires pour fournir aux développeurs plus de détails sur l'erreur. Par exemple, la réponse d'erreur suivante indique qu'un paramètre de requête spécifié dans l'URI de demande n'est pas valide, et fournit des informations supplémentaires sur le nom et la de ce paramètre, ainsi que sur la raison de l'erreur.

{
  "code": "InvalidQueryParameterValue",
  "message": {
      "lang": "en-us",
      "value": "Value for one of the query parameters specified in the request URI is invalid"
  },
  "values": [{
      "key": "QueryParameterName",
      "value": "state"
  }, {
      "key": "QueryParameterValue",
      "value": "deleted"
  }, {
      "key": "Reason",
      "value": "invalid state"
  }]
}

Les sections suivantes contiennent des listes de codes d'erreur pour le service de traitement par lots :

Codes d'erreur d'API REST courants

Les codes d'erreur répertoriés dans le tableau suivant peuvent être renvoyés par une opération sur le service de traitement par lots.

Code d'erreur Code d'état HTTP Message utilisateur
ConditionNotMet Non modifié (304) La condition spécifiée dans les en-têtes conditionnels n'a pas été remplie pour une opération de lecture.
MissingRequiredHeader Demande incorrecte (400) Un en-tête HTTP requis n'a pas été spécifié.
MissingRequiredProperty Demande incorrecte (400) Une propriété requise n'a pas été spécifiée dans le corps de la demande.
UnsupportedHeader Demande incorrecte (400) Un des en-têtes HTTP spécifiés dans la demande n'est pas pris en charge.
UnsupportedProperty Demande incorrecte (400) L'une des propriétés spécifiées dans le corps de la demande n'est pas prise en charge.
InvalidHeaderValue Demande incorrecte (400) La valeur fournie pour un des en-têtes HTTP n'était pas au format correct.
InvalidPropertyValue Demande incorrecte (400) La valeur fournie pour l'une des propriétés dans le corps de la demande n'est pas valide.
MissingRequiredQueryParameter Demande incorrecte (400) Un paramètre de requête requis n'a pas été spécifié pour cette demande.
UnsupportedQueryParameter Demande incorrecte (400) Un des paramètres de requête spécifiés dans l'URI de la demande n'est pas pris en charge.
InvalidQueryParameterValue Demande incorrecte (400) Une valeur non valide a été spécifiée pour l'un des paramètres de la requête dans l'URI de la demande.
OutOfRangeQueryParameterValue Demande incorrecte (400) Un paramètre de requête spécifié dans l'URI de la demande est en dehors de la plage autorisée.
RequestUrlFailedToParse Demande incorrecte (400) L'URL dans la demande n'a pas pu être analysée.
InvalidUri Demande incorrecte (400) L'URI demandé ne représente aucune ressource sur le serveur.
InvalidHttpVerb Demande incorrecte (400) Le verbe HTTP spécifié n'a pas été identifié par le serveur.
EmptyMetadataKey Demande incorrecte (400) La clé pour l'une des paires clé-valeur de métadonnées est vide.
InvalidRequestBody Demande incorrecte (400) La syntaxe du code de la demande n'est pas correcte.
OutOfRangeInput Demande incorrecte (400) Une des entrées de demande est hors limites.
InvalidAuthenticationInfo Demande incorrecte (400) Les informations d'authentification n'ont pas été fournies au format correct. Vérifiez la valeur de l’en-tête d’autorisation .
InvalidInput Demande incorrecte (400) Une des requêtes d’entrées n’est pas valide.
InvalidMetadata Demande incorrecte (400) Les métadonnées spécifiées ne sont pas valides. Elles comprennent des caractères non autorisés.
MetadataTooLarge Demande incorrecte (400) La taille des métadonnées spécifiée dépasse la taille maximale autorisée.
MultipleConditionHeadersNotSupported Demande incorrecte (400) Plusieurs en-têtes de condition ne sont pas pris en charge.
AuthenticationFailed Interdit (403) Le serveur n'a pas pu authentifier la demande. Vérifiez que la valeur de l’en-tête d’autorisation est formée correctement et inclut la signature.
InsufficientAccountPermissions Interdit (403) Ce compte n'a pas d'autorisations suffisantes pour effectuer cette opération.
AccountIsDisabled Interdit (403) Le compte spécifié est désactivé.
ResourceNotFound Introuvable (404) La ressource spécifiée n'existe pas.
UnsupportedHttpVerb Méthode non autorisée (405) La ressource ne prend pas en charge le verbe HTTP spécifié.
MissingContentLengthHeader Longueur requise (411) L’en-tête Content-Length n’a pas été spécifié.
ConditionNotMet Échec de la précondition (412) La condition spécifiée dans les en-têtes conditionnels n'a pas été remplie pour une opération d'écriture.
RequestBodyTooLarge Entité de demande trop grande (413) La taille du corps de la demande dépasse la taille maximale autorisée.
InvalidRange Plage demandée non satisfaisante (416) La plage spécifiée n'est pas valide pour la taille actuelle de la ressource.
InternalError Erreur interne au serveur (500) Le serveur a rencontré une erreur interne. Relancez la requête.
OperationTimedOut Erreur interne au serveur (500) Impossible d'exécuter l'opération dans le temps imparti.
ServerBusy Service non disponible (503) Le serveur est actuellement incapable de recevoir des demandes. Relancez la requête.

Codes d'erreur du service de traitement par lots

Les codes d'erreur répertoriés dans le tableau suivant peuvent être renvoyés par une opération sur le service de traitement par lots.

Code d'erreur Code d'état HTTP Message utilisateur
UnsupportedRequestVersion Demande incorrecte (400) La version de demande spécifiée n'est pas prise en charge.
InvalidAutoScalingSettings Demande incorrecte (400) Les paramètres spécifiés de mise à l'échelle automatique ne sont pas valides.
AutoScalingFormulaSyntaxError Demande incorrecte (400) La formule de mise à l'échelle automatique spécifiée comporte une erreur de syntaxe.
AutoScalingFormulaTooLong Demande incorrecte (400) La formule de mise à l'échelle automatique spécifiée dépasse la limite de longueur.
OSVersionNotFound Demande incorrecte (400) La version de système d'exploitation spécifiée n'existe pas.
OSVersionDisabled Demande incorrecte (400) La version de système d'exploitation spécifiée est désactivée.
OSVersionExpired Demande incorrecte (400) La version de système d'exploitation spécifiée a expiré.
PoolVersionEqualsUpgradeVersion Demande incorrecte (400) Le pool est déjà de la version indiquée.
PoolNotEligibleForOSVersionUpgrade Demande incorrecte (400) Le pool spécifié n'est pas éligible pour la mise à niveau de la version du système d'exploitation.
PoolNotFound NotFound (404) Le pool spécifié n'existe pas.
NodeNotFound NotFound (404) Le nœud spécifié n’existe pas.
JobScheduleNotFound NotFound (404) La planification de travail spécifiée n’existe pas.
JobNotFound NotFound (404) Le travail spécifié n'existe pas.
TaskNotFound NotFound (404) La tâche spécifiée n'existe pas.
FileNotFound NotFound (404) Le fichier spécifié n'existe pas.
NodeUserNotFound NotFound (404) L’utilisateur de nœud spécifié n’existe pas.
CertificateNotFound NotFound (404) Le certificat spécifié n'existe pas.
JobPreparationTaskNotRunOnNode NotFound (404) La tâche de préparation du travail n’a pas été exécutée sur le nœud spécifié.
JobReleaseTaskNotRunOnNode NotFound (404) La tâche de mise en production du travail n’a pas été exécutée sur le nœud spécifié.
NodeAgentSKUNotFound NotFound (404) La référence SKU de l’agent de nœud spécifiée n’existe pas.
OperationInvalidForCurrentState Conflit (409) L'opération spécifiée n'est pas valide pour l'état actuel de la ressource.
PoolBeingDeleted Conflit (409) Le pool spécifié a été marqué pour suppression et est revendiqué.
PoolBeingResized Conflit (409) Le pool spécifié est en cours de redimensionnement.
PoolBeingCreated Conflit (409) Le pool spécifié est en cours de création.
NodeBeingCreated Conflit (409) Le nœud spécifié est en cours de création
NodeBeingStarted Conflit (409) Le nœud spécifié est en cours de démarrage
NodeBeingReimaged Conflit (409) Le nœud spécifié est en cours de réimage
NodeBeingRebooted Conflit (409) Le nœud spécifié est en cours de redémarrage
NodeStateUnusable Conflit (409) L’état du nœud spécifié est inutilisable
JobScheduleBeingTerminated Conflit (409) La planification de travail spécifiée est en cours d’arrêt.
JobScheduleBeingDeleted Conflit (409) La planification de travail spécifiée a été marquée pour suppression et est en cours de récupération.
CertificateBeingDeleted Conflit (409) Le certificat spécifié a été marqué pour suppression et est en cours de suppression.
PoolExists Conflit (409) L'objet blob spécifié existe déjà.
JobScheduleExists Conflit (409) La planification de travail spécifiée existe déjà.
NodeUserExists Conflit (409) L’utilisateur de nœud spécifié existe déjà.
JobExists Conflit (409) Le travail spécifié existe déjà.
NodeUserExists Conflit (409) L’utilisateur de nœud spécifié existe déjà.
CertificateExists Conflit (409) Le certificat spécifié existe déjà.
JobScheduleDisabled Conflit (409) La planification de travail spécifiée est désactivée.
JobScheduleCompleted Conflit (409) La planification du travail spécifiée est déjà à l’état terminé.
JobBeingTerminated Conflit (409) Le travail spécifié est en cours d'achèvement.
JobBeingDeleted Conflit (409) Le travail spécifié a été marqué pour suppression et le nettoyage de la mémoire est en cours.
JobDisabled Conflit (409) Le travail spécifié est désactivé.
JobCompleted Conflit (409) Le travail spécifié est déjà en état terminé.
JobNotActive Conflit (409) Le travail spécifié n'est pas en état actif.
TaskExists Conflit (409) La tâche spécifiée existe déjà.
TaskCompleted Conflit (409) La tâche spécifiée est déjà en état terminé.
TaskNotCompleted Conflit (409) La tâche spécifiée n’est pas dans un état terminé et l’opération demandée ne peut être effectuée que sur les tâches terminées.
TaskSucceeded Conflit (409) La tâche spécifiée s’est déjà terminée correctement et l’opération demandée ne peut pas être effectuée sur les tâches réussies.
TaskFilesUnavailable Conflit (409) Les fichiers de la tâche spécifiée ne sont pas disponibles.
TaskFilesCleanedup Conflit (409) Les fichiers de la tâche spécifiée sont nettoyés.
ActiveJobAndScheduleQuotaReached Conflit (409) Le quota de travail et de planification actif pour le compte a été atteint.
PoolQuotaReached Conflit (409) Le quota de pool pour le compte a été atteint.
UpgradePoolVersionConflict Conflit (409) La mise à niveau du pool vers une autre version est déjà en cours.
JobPreparationTaskNotSpecified Conflit (409) Le travail spécifié n’a pas de tâche de préparation du travail.
JobReleaseTaskNotSpecified Conflit (409) Le travail spécifié n’a pas de tâche de mise en production de travail.
TaskIdSameAsJobPreparationTask Conflit (409) L’ID de tâche spécifié est identique à la tâche de préparation du travail.
TaskIdSameAsJobReleaseTask Conflit (409) L’ID de tâche spécifié est identique à la tâche de mise en production du travail.
JobWithSameIdExists Conflit (409) Il existe un travail avec l’ID de planification de travail spécifié. Le travail et la planification du travail ne peuvent pas avoir le même ID.
JobScheduleWithSameIdExists Conflit (409) Une planification de travail avec l’ID de travail spécifié existe. Le travail et la planification du travail ne peuvent pas avoir le même ID.
NodeAlreadyInTargetSchedulingState Conflit (409) Le nœud spécifié est déjà dans l’état de planification cible.
OperationNotValidOnNode Conflit (409) L’opération spécifiée n’est pas valide sur le nœud.
OperationNotValidOnPool Conflit (409) L’opération spécifiée n’est pas valide sur le pool.
IOError Interdit (403) Une erreur d'E/S s'est produite lors de l'accès à la ressource spécifiée.
TooManyEnableAutoScaleRequests ServiceUnavailable (503) Trop de demandes Activer la mise à l’échelle automatique du pool sont émises sur le pool.
ApplicationNotFound Introuvable (404) L’application spécifiée n’existe pas.
InvalidApplicationPackageReferences Conflit (409) Une ou plusieurs références de package d’application n’ont pas pu être satisfaites. Cela se produit si l’ID ou la version de l’application n’existe pas ou n’est pas actif, ou si la référence n’a pas spécifié de version et qu’aucune version par défaut n’est configurée.
TaskDependenciesNotSpecifiedOnJob Demande incorrecte (400) Une tâche a été spécifiée en fonction d’autres tâches, mais la tâche n’a pas spécifié qu’elle utiliserait des dépendances de tâche.
TaskDependencyListTooLong Demande incorrecte (400) Une tâche a été spécifiée en fonction d’autres tâches, mais la liste des dépendances était trop longue pour être stockée. La longueur totale stockée est limitée à 64 000 caractères ; la longueur totale des ID de tâche doit être légèrement inférieure à celle-ci pour permettre une surcharge de stockage interne. Si vous rencontrez cette erreur, envisagez d’utiliser des dépendances de plage de tâches à la place.
TaskDependencyRangesTooLong Demande incorrecte (400) Une tâche a été spécifiée en fonction de plusieurs plages d’ID de tâche, et la liste des plages était trop longue pour être stockée. Notez que le problème ne concerne pas la taille des plages, mais le nombre de plages.

Codes d'erreur de planification de travail/tâche

Si le service Batch rencontre une erreur lors du démarrage d’une tâche sur un nœud, il marque la tâche comme terminée. Les informations d’erreur sont retournées dans un failureInfo élément dans le corps de la réponse de Répertorier les fichiers associés à une tâche et Obtenir des informations sur les API d’une tâche .

De même, si le service de traitement par lots rencontre une erreur lors du démarrage du travail, il marque celui-ci comme achevé. Ces informations d’erreur de planification sont retournées dans un schedulingError élément dans le corps de la réponse de Obtenir des informations sur un travail dans les API Batch.

Le tableau suivant présente la liste des catégories pour les erreurs de planification de tâches.

Category Description
UserError Erreurs dans la spécification de tâche fournie par l'utilisateur.
ServerError Erreurs rencontrées par le service de traitement par lots, qui empêchent celui-ci de planifier la tâche.

Voici un exemple d’erreur de prétraitement retourné par le service Batch.

{
  "preProcessingError": {
    "category": "UserError",
    "code": "BlobNotFound",
    "message": "The specified blob does not exist.",
    "values": {
      "name": "FilePath",
      "value": "myfile.txt"
    }
  }
}

Le tableau suivant fournit la liste des codes d’erreur de planification des travaux qui peuvent être retournés par le service Batch.

Code d'erreur Category Message utilisateur
InvalidCertificatesInAutoPool UserError Les références de certificat spécifiées dans la spécification du pool automatique ne sont pas valides.
AutoPoolCreationFailedWithQuotaReached UserError Le quota de pools pour le compte est atteint.
InvalidApplicationPackageReferencesInAutoPool UserError Un ou plusieurs packages d’application spécifiés pour le pool ne sont pas valides.
InvalidAutoScaleFormulaInAutoPool UserError Les paramètres spécifiés de mise à l'échelle automatique ne sont pas valides.
InvalidAutoPoolSettings UserError Les paramètres de pool automatique spécifiés ne sont pas valides.
JobBeingTerminated UserError Impossible de démarrer la tâche, car le travail associé est en cours d’arrêt.
Unknown ServerError Une erreur de planification inconnue s’est produite.

Le tableau suivant fournit la liste des codes d’erreur de planification des tâches qui peuvent être retournés par le service Batch.

Code d'erreur Category Message utilisateur
BlobNotFound UserError L’un des objets blob Azure spécifiés est introuvable.
BlobAccessDenied UserError L’accès à l’un des objets blob Azure spécifiés est refusé.
BlobDownloadTimedOut ServerError Délai d’expiration rencontré lors du téléchargement de l’un des objets blob Azure spécifiés.
BlobDownloadMiscError ServerError Erreur diverses rencontrée lors du téléchargement de l’un des objets blob Azure spécifiés.
ResourceDirectoryCreateFailed ServerError Échec rencontré lors de la création du répertoire de ressources pour la tâche.
ResourceFileCreateFailed ServerError Échec de la création du fichier de ressources.
ResourceFileWriteFailed ServerError Échec de l’écriture du fichier de ressources.
CommandProgramNotFound UserError Le programme de commandes spécifié est introuvable.
CommandLaunchFailed UserError Échec du lancement de la ligne de commande spécifiée.
TaskEnded UserError La tâche a été terminée par la demande de l’utilisateur.
MaxInternalRetryCountReached UserError La tâche spécifiée a atteint le nombre maximal de nouvelles tentatives internes.
TaskSchedulingConstraintFailed UserError Impossible de planifier la tâche sur le pool associé au travail
DiskFull ServerError Il n’y a pas suffisamment d’espace disque sur le nœud qui a été sélectionné pour exécuter la tâche.
Unknown ServerError Une erreur de planification inconnue s’est produite.