Estado del lote y códigos de error
Las operaciones de la API REST para el servicio Batch devuelven códigos de estado HTTP estándar, tal como se define en las definiciones de código de estado HTTP/1.1.
Las operaciones de API también pueden devolver información de error adicional para proporcionar a los desarrolladores más información sobre el error. Por ejemplo, la respuesta de error siguiente indica que en el URI de solicitud existe un parámetro de consulta que no es válido, y proporciona información adicional sobre el nombre y el valor de dicho parámetro y sobre el motivo del error.
{
"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"
}]
}
Las secciones siguientes proporcionan listas de códigos de error para el servicio por lotes:
Códigos de error comunes de la API de REST
Una operación en el servicio por lotes puede devolver los códigos de error que se muestran en la tabla siguiente.
Código de error | Código de estado HTTP | Mensaje de usuario |
---|---|---|
ConditionNotMet | No modificado (304) | La condición especificada en los encabezados condicionales no se cumplió para una operación de lectura. |
MissingRequiredHeader | Solicitud incorrecta (400) | No se ha especificado un encabezado HTTP obligatorio. |
MissingRequiredProperty | Solicitud incorrecta (400) | No se especificó una propiedad obligatoria en el cuerpo de la solicitud. |
UnsupportedHeader | Solicitud incorrecta (400) | No se admite uno de los encabezados HTTP especificados en la solicitud. |
UnsupportedProperty | Solicitud incorrecta (400) | No se admite una de las propiedades especificadas en el cuerpo de la solicitud. |
InvalidHeaderValue | Solicitud incorrecta (400) | El valor proporcionado para uno de los encabezados HTTP no estaba en el formato correcto. |
InvalidPropertyValue | Solicitud incorrecta (400) | El valor proporcionado para una de las propiedades en el cuerpo de la solicitud no es válido. |
MissingRequiredQueryParameter | Solicitud incorrecta (400) | No se especificó un parámetro de consulta necesario para esta solicitud. |
UnsupportedQueryParameter | Solicitud incorrecta (400) | No se admite uno de los parámetros de consulta especificados en el URI de solicitud. |
InvalidQueryParameterValue | Solicitud incorrecta (400) | Se especificó un valor no válido para uno de los parámetros de consulta del URI de solicitud. |
OutOfRangeQueryParameterValue | Solicitud incorrecta (400) | Un parámetro de consulta especificado en el URI de solicitud está fuera del intervalo válido. |
RequestUrlFailedToParse | Solicitud incorrecta (400) | No se pudo analizar la dirección URL de la solicitud. |
InvalidUri | Solicitud incorrecta (400) | El URI solicitado no representa ningún recurso en el servidor. |
InvalidHttpVerb | Solicitud incorrecta (400) | El servidor no reconoció el verbo HTTP especificado. |
EmptyMetadataKey | Solicitud incorrecta (400) | La clave de uno de los pares clave-valor de metadatos está vacía. |
InvalidRequestBody | Solicitud incorrecta (400) | El cuerpo de la solicitud especificado no es válido desde el punto de vista sintáctico. |
OutOfRangeInput | Solicitud incorrecta (400) | Una de las entradas de la solicitud está fuera del intervalo. |
InvalidAuthenticationInfo | Solicitud incorrecta (400) | La información de autenticación no se proporcionó en el formato correcto. Compruebe el valor del encabezado Authorization . |
InvalidInput | Solicitud incorrecta (400) | Una de las entradas de la solicitud no es válida. |
InvalidMetadata | Solicitud incorrecta (400) | Los metadatos especificados no son válidos. Incluyen caracteres que no se permiten. |
MetadataTooLarge | Solicitud incorrecta (400) | El tamaño de los metadatos especificados supera el tamaño máximo permitido. |
MultipleConditionHeadersNotSupported | Solicitud incorrecta (400) | No se admiten encabezados de condición múltiples. |
AuthenticationFailed | Prohibido (403) | El servidor no pudo autenticar la solicitud. Compruebe que el valor del encabezado Authorization se forma correctamente e incluya la firma. |
InsufficientAccountPermissions | Prohibido (403) | La cuenta a la que se está teniendo acceso no tiene suficientes permisos para ejecutar esta operación. |
AccountIsDisabled | Prohibido (403) | La cuenta especificada está deshabilitada. |
ResourceNotFound | No encontrado (404) | El recurso especificado no existe. |
UnsupportedHttpVerb | Método no permitido (405) | El recurso no admite el verbo HTTP especificado. |
MissingContentLengthHeader | Longitud requerida (411) | No se especificó el encabezado Content-Length . |
ConditionNotMet | Error de condición previa (412) | La condición especificada en los encabezados condicionales no se cumplió para una operación de escritura. |
RequestBodyTooLarge | Entidad solicitada demasiado grande (413) | El tamaño del cuerpo de la solicitud supera el tamaño máximo permitido. |
InvalidRange | No se puede satisfacer el intervalo solicitado (416) | El intervalo especificado no es válido para el tamaño actual del recurso. |
InternalError | Error interno del servidor (500) | Se produjo un error interno en el servidor. Vuelva a intentar realizar la solicitud. |
OperationTimedOut | Error interno del servidor (500) | La operación no se pudo completar en el tiempo permitido. |
ServerBusy | Servicio no disponible (503) | El servidor actualmente no puede recibir solicitudes. Vuelva a intentar realizar la solicitud. |
Códigos de error del servicio por lotes
Una operación en el servicio por lotes puede devolver los códigos de error que se muestran en la tabla siguiente.
Código de error | Código de estado HTTP | Mensaje de usuario |
---|---|---|
UnsupportedRequestVersion | BadRequest (400) | No se admite la versión de la solicitud especificada. |
InvalidAutoScalingSettings | BadRequest (400) | La configuración de escalado automático especificada no es válida. |
AutoScalingFormulaSyntaxError | BadRequest (400) | La fórmula de escalado automático especificada tiene un error de sintaxis. |
AutoScalingFormulaTooLong | BadRequest (400) | La fórmula de escalado automático especificada supera el límite de longitud. |
OSVersionNotFound | BadRequest (400) | La versión del SO especificada no existe. |
OSVersionDisabled | BadRequest (400) | La versión de sistema operativo especificada está deshabilitada. |
OSVersionExpired | BadRequest (400) | La versión de sistema operativo especificada ha expirado. |
PoolVersionEqualsUpgradeVersion | BadRequest (400) | El grupo ya tiene la versión especificada. |
PoolNotEligibleForOSVersionUpgrade | BadRequest (400) | El grupo especificado no es apto para la actualización de versión del sistema operativo. |
PoolNotFound | NotFound (404) | El grupo especificado no existe. |
NodeNotFound | NotFound (404) | El nodo especificado no existe. |
JobScheduleNotFound | NotFound (404) | La programación de trabajo especificada no existe. |
JobNotFound | NotFound (404) | El trabajo especificado no existe. |
TaskNotFound | NotFound (404) | La tarea especificada no existe. |
FileNotFound | NotFound (404) | El archivo especificado no existe. |
NodeUserNotFound | NotFound (404) | El usuario de nodo especificado no existe. |
CertificateNotFound | NotFound (404) | El certificado especificado no existe. |
JobPreparationTaskNotRunOnNode | NotFound (404) | La tarea de preparación del trabajo no se ejecutó en el nodo especificado. |
JobReleaseTaskNotRunOnNode | NotFound (404) | La tarea de liberación del trabajo no se ejecutó en el nodo especificado. |
NodeAgentSKUNotFound | NotFound (404) | La SKU del Agente de nodo especificada no existe. |
OperationInvalidForCurrentState | Conflicto (409) | La operación especificada no es válida para el estado actual del recurso. |
PoolBeingDeleted | Conflicto (409) | El grupo especificado se ha marcado para su eliminación y se está recuperando. |
PoolBeingResized | Conflicto (409) | Se está cambiando el tamaño del grupo especificado |
PoolBeingCreated | Conflicto (409) | Se está creando el grupo especificado. |
NodeBeingCreated | Conflicto (409) | Se está creando el nodo especificado. |
NodeBeingStarted | Conflicto (409) | Se está iniciando el nodo especificado. |
NodeBeingReimaged | Conflicto (409) | Se está reimagendo el nodo especificado. |
NodeBeingRebooted | Conflicto (409) | Se está reiniciando el nodo especificado |
NodeStateUnusable | Conflicto (409) | El estado del nodo especificado no se puede usar. |
JobScheduleBeingTerminated | Conflicto (409) | La programación de trabajo especificada se está finalizando. |
JobScheduleBeingDeleted | Conflicto (409) | La programación de trabajo especificada se ha marcado para su eliminación y se está reclamando. |
CertificateBeingDeleted | Conflicto (409) | El certificado especificado se ha marcado para su eliminación y se está eliminando. |
PoolExists | Conflicto (409) | El grupo especificado ya existe. |
JobScheduleExists | Conflicto (409) | La programación de trabajo especificada ya existe. |
NodeUserExists | Conflicto (409) | El usuario del nodo especificado ya existe. |
JobExists | Conflicto (409) | El trabajo especificado ya existe. |
NodeUserExists | Conflicto (409) | El usuario del nodo especificado ya existe. |
CertificateExists | Conflicto (409) | El certificado especificado ya existe. |
JobScheduleDisabled | Conflicto (409) | La programación de trabajo especificada está deshabilitada. |
JobScheduleCompleted | Conflicto (409) | La programación de trabajo especificada ya está en estado completado. |
JobBeingTerminated | Conflicto (409) | El trabajo especificado está finalizando. |
JobBeingDeleted | Conflicto (409) | El trabajo especificado se ha marcado para su eliminación y se están recolectando los elementos no utilizados. |
JobDisabled | Conflicto (409) | El trabajo especificado está deshabilitado. |
JobCompleted | Conflicto (409) | El trabajo especificado ya está en estado completado. |
JobNotActive | Conflicto (409) | El trabajo especificado no está en estado activo. |
TaskExists | Conflicto (409) | La tarea especificada ya existe. |
TaskCompleted | Conflicto (409) | La tarea especificada ya está en estado completado. |
TaskNotCompleted | Conflicto (409) | La tarea especificada no está en estado completado y la operación solicitada solo se puede realizar en tareas completadas. |
TaskSucceed | Conflicto (409) | La tarea especificada ya se ha completado correctamente y la operación solicitada no se puede realizar en tareas correctas. |
TaskFilesUnavailable | Conflicto (409) | Los archivos de la tarea especificada no están disponibles. |
TaskFilesCleanedup | Conflicto (409) | Los archivos de la tarea especificada se han eliminado. |
ActiveJobAndScheduleQuotaReached | Conflicto (409) | Se ha alcanzado el trabajo activo y la cuota de programación de la cuenta. |
PoolQuotaReached | Conflicto (409) | Se ha alcanzado la cuota de grupo para la cuenta. |
UpgradePoolVersionConflict | Conflicto (409) | El grupo ya se está actualizando a una versión diferente. |
JobPreparationTaskNotSpecified | Conflicto (409) | El trabajo especificado no tiene la tarea de preparación del trabajo. |
JobReleaseTaskNotSpecified | Conflicto (409) | El trabajo especificado no tiene la tarea de liberación de trabajos. |
TaskIdSameAsJobPreparationTask | Conflicto (409) | El identificador de tarea especificado es el mismo que la tarea de preparación del trabajo. |
TaskIdSameAsJobReleaseTask | Conflicto (409) | El identificador de tarea especificado es el mismo que la tarea de liberación del trabajo. |
JobWithSameIdExists | Conflicto (409) | Existe un trabajo con el identificador de programación de trabajo especificado. La programación de trabajos y trabajos no puede tener el mismo identificador. |
JobScheduleWithSameIdExists | Conflicto (409) | Existe una programación de trabajo con el identificador de trabajo especificado. La programación de trabajos y trabajos no puede tener el mismo identificador. |
NodeAlreadyInTargetSchedulingState | Conflicto (409) | El nodo especificado ya está en el estado de programación de destino. |
OperationNotValidOnNode | Conflicto (409) | La operación especificada no es válida en el nodo. |
OperationNotValidOnPool | Conflicto (409) | La operación especificada no es válida en el grupo. |
IOError | Prohibido (403) | Error de E/S al tener acceso al recurso especificado. |
TooManyEnableAutoScaleRequests | ServiceUnavailable (503) | Hay demasiadas solicitudes habilitar escalado automático del grupo que se emiten en el grupo. |
ApplicationNotFound | No encontrado (404) | La aplicación especificada no existe. |
InvalidApplicationPackageReferences | Conflicto (409) | No se pudieron satisfacer una o varias referencias de paquete de aplicación. Esto ocurre si el identificador o la versión de la aplicación no existen o no están activos, o si la referencia no especificó una versión y no hay ninguna versión predeterminada configurada. |
TaskDependenciesNotSpecifiedOnJob | Solicitud incorrecta (400) | Se especificó una tarea según otras tareas, pero el trabajo no especificó que usaría dependencias de tareas. |
TaskDependencyListTooLong | Solicitud incorrecta (400) | Se especificó una tarea según otras tareas, pero la lista de dependencias era demasiado larga para almacenarse. La longitud total almacenada está limitada a 64000 caracteres; la longitud total de los identificadores de tarea debe ser ligeramente menor que esta para permitir la sobrecarga de almacenamiento interna. Si se produce este error, considere la posibilidad de usar las dependencias del intervalo de tareas en su lugar. |
TaskDependencyRangesTooLong | Solicitud incorrecta (400) | Se especificó una tarea según varios intervalos de identificadores de tarea y la lista de intervalos era demasiado larga para almacenarse. Tenga en cuenta que el problema no tiene el tamaño de los intervalos, pero con el número de intervalos. |
Códigos de error en la programación de trabajos/tareas
Si el servicio Batch encuentra un error al iniciar una tarea en un nodo, marca la tarea como completada. La información de error se devuelve dentro de un failureInfo
elemento en el cuerpo de la respuesta de Enumerar los archivos asociados a una tarea y Obtener información sobre las API de una tarea .
De forma similar, si el servicio por lotes encuentra un error al iniciar el trabajo, marcará el trabajo como completado. Esta información de error de programación se devuelve dentro de un schedulingError
elemento en el cuerpo de la respuesta de Obtención de información sobre un trabajo en las API de Batch.
En la tabla siguiente se proporciona la lista de categorías de errores de programación de tareas.
Category | Descripción |
---|---|
UserError | Errores en la especificación de tareas proporcionada por el usuario. |
ServerError | Errores encontrados por el servicio por lotes que impiden programar la tarea. |
A continuación se muestra un error de preprocesamiento de ejemplo devuelto por el servicio Batch.
{
"preProcessingError": {
"category": "UserError",
"code": "BlobNotFound",
"message": "The specified blob does not exist.",
"values": {
"name": "FilePath",
"value": "myfile.txt"
}
}
}
En la tabla siguiente se proporciona la lista de códigos de error de programación de trabajos que el servicio Batch puede devolver.
Código de error | Category | Mensaje de usuario |
---|---|---|
InvalidCertificatesInAutoPool | UserError | Las referencias del certificado especificadas en la especificación de agrupación automática no son válidas. |
AutoPoolCreationFailedWithQuotaReached | UserError | Se ha alcanzado la cuota de grupo para la cuenta. |
InvalidApplicationPackageReferencesInAutoPool | UserError | Uno o varios paquetes de aplicación especificados para el grupo no son válidos. |
InvalidAutoScaleFormulaInAutoPool | UserError | La configuración de escalado automático especificada no es válida. |
InvalidAutoPoolSettings | UserError | La configuración de la cola automática especificada no es válida. |
JobBeingTerminated | UserError | No se puede iniciar la tarea porque se está finalizando el trabajo asociado. |
Unknown | ServerError | Se ha producido un error de programación desconocido. |
En la tabla siguiente se proporciona la lista de códigos de error de programación de tareas que el servicio Batch puede devolver.
Código de error | Category | Mensaje de usuario |
---|---|---|
BlobNotFound | UserError | No se encuentra uno de los blobs de Azure especificados. |
BlobAccessDenied | UserError | Se deniega el acceso a uno de los blobs de Azure especificados. |
BlobDownloadTimedOut | ServerError | Se encontró un tiempo de espera al descargar uno de los blobs de Azure especificados. |
BlobDownloadMiscError | ServerError | Error varios detectado al descargar uno de los blobs de Azure especificados. |
ResourceDirectoryCreateFailed | ServerError | Error al crear el directorio de recursos para la tarea. |
ResourceFileCreateFailed | ServerError | Error al crear el archivo de recursos. |
ResourceFileWriteFailed | ServerError | Error al escribir el archivo de recursos. |
CommandProgramNotFound | UserError | No se encuentra el programa de comandos especificado. |
CommandLaunchFailed | UserError | No se pudo iniciar la línea de comandos especificada. |
TaskEnded | UserError | La tarea finalizó por solicitud de usuario. |
MaxInternalRetryCountReached | UserError | La tarea especificada ha alcanzado el número máximo de reintentos internos. |
TaskSchedulingConstraintFailed | UserError | No se puede programar la tarea en el grupo asociado al trabajo |
DiskFull | ServerError | No hay suficiente espacio en disco en el nodo seleccionado para ejecutar la tarea. |
Unknown | ServerError | Se ha producido un error de programación desconocido. |