É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. |