Share via


일괄 처리 상태 및 오류 코드

Batch 서비스에 대한 REST API 작업은 HTTP/1.1 상태 코드 정의에 정의된 대로 표준 HTTP 상태 코드를 반환합니다.

API 작업에서는 개발자에게 오류에 대한 자세한 내용을 제공하기 위해 오류 정보를 추가로 반환할 수도 있습니다. 예를 들어, 다음 오류 응답은 요청 URI에 지정된 쿼리 매개 변수가 잘못되었음을 나타내고, 잘못된 매개 변수의 이름 및 값에 대한 추가 정보와 오류 이유를 제공합니다.

{
  "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"
  }]
}

다음 섹션에서는 일괄 처리 서비스에 대한 오류 코드 목록을 제공합니다.

공통 REST API 오류 코드

다음 테이블에 나열된 오류 코드는 일괄 처리 서비스에 대한 작업에 의해 반환될 수 있습니다.

오류 코드 HTTP 상태 코드 사용자 메시지
ConditionNotMet 수정 안 됨(304) 조건부 헤더에 지정된 조건이 읽기 작업에 대해 충족되지 않았습니다.
MissingRequiredHeader 잘못된 요청(400) 필요한 HTTP 헤더가 지정되지 않았습니다.
MissingRequiredProperty 잘못된 요청(400) 필요한 속성이 요청 본문에 지정되지 않았습니다.
UnsupportedHeader 잘못된 요청(400) 요청에 지정된 HTTP 헤더 중 하나가 지원되지 않습니다.
UnsupportedProperty 잘못된 요청(400) 요청 본문에 지정된 속성 중 하나가 지원되지 않습니다.
InvalidHeaderValue 잘못된 요청(400) HTTP 헤더 중 하나에 제공된 값이 올바른 형식이 아닙니다.
InvalidPropertyValue 잘못된 요청(400) 요청 본문의 속성 중 하나에 대해 제공된 값이 올바르지 않습니다.
MissingRequiredQueryParameter 잘못된 요청(400) 필요한 쿼리 매개 변수가 이 요청에 대해 지정되지 않았습니다.
UnsupportedQueryParameter 잘못된 요청(400) 요청 URI에 지정된 쿼리 매개 변수 중 하나가 지원되지 않습니다.
InvalidQueryParameterValue 잘못된 요청(400) 요청 URI에서 쿼리 매개 변수 중 하나에 잘못된 값이 지정되었습니다.
OutOfRangeQueryParameterValue 잘못된 요청(400) 요청 URI에 지정된 쿼리 매개 변수가 허용 가능한 범위를 벗어납니다.
RequestUrlFailedToParse 잘못된 요청(400) 요청의 URL을 구문 분석할 수 없습니다.
InvalidUri 잘못된 요청(400) 요청된 URI가 서버의 리소스를 나타내지 않습니다.
InvalidHttpVerb 잘못된 요청(400) 지정된 HTTP 동사를 서버에서 인식할 수 없습니다.
EmptyMetadataKey 잘못된 요청(400) 메타데이터 키-값 쌍 중 하나의 키가 비어 있습니다.
InvalidRequestBody 잘못된 요청(400) 지정한 요청 본문이 구문상 잘못되었습니다.
OutOfRangeInput 잘못된 요청(400) 요청 입력 중 하나가 범위를 벗어납니다.
InvalidAuthenticationInfo 잘못된 요청(400) 인증 정보가 올바른 형식으로 제공되지 않았습니다. 권한 부여 헤더의 값을 확인합니다.
InvalidInput 잘못된 요청(400) 요청 입력 중 하나가 올바르지 않습니다.
InvalidMetadata 잘못된 요청(400) 지정된 메타데이터가 잘못되었습니다. 허용되지 않는 문자가 포함됩니다.
MetadataTooLarge 잘못된 요청(400) 지정된 메타데이터 크기가 허용되는 최대 크기를 초과합니다.
MultipleConditionHeadersNotSupported 잘못된 요청(400) 다중 조건 헤더는 지원되지 않습니다.
AuthenticationFailed 사용할 수 없음(403) 서버에서 요청을 인증하지 못했습니다. Authorization 헤더의 값이 올바르게 구성되고 서명이 포함되어 있는지 확인합니다.
InsufficientAccountPermissions 사용할 수 없음(403) 액세스 중인 계정에 이 작업을 실행할 수 있는 권한이 부족합니다.
AccountIsDisabled 사용할 수 없음(403) 지정된 계정이 비활성화되어 있습니다.
ResourceNotFound 찾을 수 없음(404) 지정된 리소스가 없습니다.
UnsupportedHttpVerb 방식 허용 안 함(405) 리소스에서 지정된 HTTP 동사가 지원되지 않습니다.
MissingContentLengthHeader 길이가 필요함(411) Content-Length 헤더를 지정하지 않았습니다.
ConditionNotMet 전제 조건 실패(412) 조건부 헤더에 지정된 조건이 쓰기 작업에 대해 충족되지 않았습니다.
RequestBodyTooLarge 요청 엔터티가 너무 큼(413) 요청 본문 크기가 허용되는 최대 크기를 초과합니다.
InvalidRange 요청한 범위가 충분하지 않음(416) 지정된 범위가 현재 리소스 크기에 대해 유효하지 않습니다.
InternalError 내부 서버 오류(500) 서버에 내부 오류가 발생했습니다. 요청을 다시 시도하세요.
OperationTimedOut 내부 서버 오류(500) 허용된 시간 내에 작업을 완료할 수 없습니다.
ServerBusy 서비스를 사용할 수 없음(503) 서버는 현재 요청을 받을 수 없습니다. 요청을 다시 시도하세요.

일괄 처리 서비스 오류 코드

다음 테이블에 나열된 오류 코드는 일괄 처리 서비스에 대한 작업에 의해 반환될 수 있습니다.

오류 코드 HTTP 상태 코드 사용자 메시지
UnsupportedRequestVersion BadRequest(400) 지정한 요청 버전이 지원되지 않습니다.
InvalidAutoScalingSettings BadRequest(400) 지정한 자동 크기 조정 설정이 올바르지 않습니다.
AutoScalingFormulaSyntaxError BadRequest(400) 지정한 자동 크기 조정 수식에 구문 오류가 있습니다.
AutoScalingFormulaTooLong BadRequest(400) 지정한 자동 크기 조정 수식이 길이 제한을 초과합니다.
OSVersionNotFound BadRequest(400) 지정한 OS 버전이 없습니다.
OSVersionDisabled BadRequest(400) 지정한 OS 버전을 사용할 수 없습니다.
OSVersionExpired BadRequest(400) 지정한 OS 버전이 만료되었습니다.
PoolVersionEqualsUpgradeVersion BadRequest(400) 풀이 이미 지정된 버전입니다.
PoolNotEligibleForOSVersionUpgrade BadRequest(400) 지정한 풀에서는 OS 버전 업그레이드를 수행할 수 없습니다.
PoolNotFound NotFound(404) 지정한 풀이 없습니다.
NodeNotFound NotFound(404) 지정된 노드가 없습니다.
JobScheduleNotFound NotFound(404) 지정된 작업 일정이 없습니다.
JobNotFound NotFound(404) 지정한 작업이 없습니다.
TaskNotFound NotFound(404) 지정한 태스크가 없습니다.
FileNotFound NotFound(404) 지정된 파일이 없는 경우
NodeUserNotFound NotFound(404) 지정된 노드 사용자가 없습니다.
CertificateNotFound NotFound(404) 지정한 인증서가 없습니다.
JobPreparationTaskNotRunOnNode NotFound(404) 작업 준비 작업이 지정된 노드에서 실행되지 않았습니다.
JobReleaseTaskNotRunOnNode NotFound(404) 작업 릴리스 작업이 지정된 노드에서 실행되지 않았습니다.
NodeAgentSKUNotFound NotFound(404) 지정된 노드 에이전트 SKU가 없습니다.
OperationInvalidForCurrentState 충돌(409) 지정한 작업이 리소스의 현재 상태에 대해 올바르지 않습니다.
PoolBeingDeleted 충돌(409) 지정한 풀이 삭제하도록 표시되었으며 회수되는 중입니다.
PoolBeingResized 충돌(409) 지정한 풀의 크기를 조정하는 중입니다.
PoolBeingCreated 충돌(409) 지정한 풀을 만드는 중입니다.
NodeBeingCreated 충돌(409) 지정된 노드가 만들어지고 있습니다.
NodeBeingStarted 충돌(409) 지정된 노드가 시작되고 있습니다.
NodeBeingReimaged 충돌(409) 지정된 노드가 이미지로 다시 설치되고 있습니다.
NodeBeingRebooted 충돌(409) 지정된 노드가 다시 부팅되고 있습니다.
NodeStateUnusable 충돌(409) 지정된 노드의 상태를 사용할 수 없습니다.
JobScheduleBeingTerminated 충돌(409) 지정된 작업 일정이 종료됩니다.
JobScheduleBeingDeleted 충돌(409) 지정된 작업 일정이 삭제될 것으로 표시되어 회수되고 있습니다.
CertificateBeingDeleted 충돌(409) 지정한 인증서가 삭제하도록 표시되었으며 삭제되는 중입니다.
PoolExists 충돌(409) 지정한 풀이 이미 있습니다.
JobScheduleExists 충돌(409) 지정된 작업 일정이 이미 있습니다.
NodeUserExists 충돌(409) 지정된 노드 사용자가 이미 있습니다.
JobExists 충돌(409) 지정된 작업이 이미 있습니다.
NodeUserExists 충돌(409) 지정된 노드 사용자가 이미 있습니다.
CertificateExists 충돌(409) 지정한 인증서가 이미 있습니다.
JobScheduleDisabled 충돌(409) 지정된 작업 일정을 사용할 수 없습니다.
JobScheduleCompleted 충돌(409) 지정된 작업 일정이 이미 완료된 상태입니다.
JobBeingTerminated 충돌(409) 지정한 작업을 종료하는 중입니다.
JobBeingDeleted 충돌(409) 지정한 작업이 삭제하도록 표시되었으며 가비지 수집되는 중입니다.
JobDisabled 충돌(409) 지정된 작업을 사용할 수 없습니다.
JobCompleted 충돌(409) 지정한 작업이 이미 완료된 상태입니다.
JobNotActive 충돌(409) 지정한 작업이 활성 상태가 아닙니다.
TaskExists 충돌(409) 지정한 태스크가 이미 있습니다.
TaskCompleted 충돌(409) 지정한 태스크가 이미 완료된 상태입니다.
TaskNotCompleted 충돌(409) 지정된 작업이 완료된 상태가 아니며 요청된 작업은 완료된 작업에서만 수행할 수 있습니다.
TaskSucceeded 충돌(409) 지정한 작업이 이미 성공적으로 완료되었으며, 성공한 작업에 대해 요청된 작업을 수행할 수 없습니다.
TaskFilesUnavailable 충돌(409) 지정한 태스크의 파일을 사용할 수 없습니다.
TaskFilesCleanedup 충돌(409) 지정한 태스크의 파일이 정리되었습니다.
ActiveJobAndScheduleQuotaReached 충돌(409) 계정에 대한 활성 작업 및 일정 할당량에 도달했습니다.
PoolQuotaReached 충돌(409) 계정에 대한 풀 할당량에 도달했습니다.
UpgradePoolVersionConflict 충돌(409) 풀을 다른 버전으로 이미 업그레이드하는 중입니다.
JobPreparationTaskNotSpecified 충돌(409) 지정된 작업에 작업 준비 태스크가 없습니다.
JobReleaseTaskNotSpecified 충돌(409) 지정된 작업에 작업 릴리스 작업이 없습니다.
TaskIdSameAsJobPreparationTask 충돌(409) 지정된 작업 ID는 작업 준비 작업과 동일합니다.
TaskIdSameAsJobReleaseTask 충돌(409) 지정된 작업 ID는 작업 릴리스 작업과 동일합니다.
JobWithSameIdExists 충돌(409) 지정된 작업 일정 ID가 있는 작업이 있습니다. 작업 및 작업 일정은 동일한 ID를 가질 수 없습니다.
JobScheduleWithSameIdExists 충돌(409) 지정된 작업 ID가 있는 작업 일정이 있습니다. 작업 및 작업 일정은 동일한 ID를 가질 수 없습니다.
NodeAlreadyInTargetSchedulingState 충돌(409) 지정된 노드가 이미 대상 예약 상태에 있습니다.
OperationNotValidOnNode 충돌(409) 지정된 작업이 노드에서 유효하지 않습니다.
OperationNotValidOnPool 충돌(409) 지정된 작업이 풀에서 유효하지 않습니다.
IOError 사용할 수 없음(403) 지정한 리소스에 액세스할 때 I/O 오류가 발생했습니다.
TooManyEnableAutoScaleRequests ServiceUnavailable(503) 풀 자동 크기 조정 사용 요청이 풀에서 너무 많이 발급됩니다.
ApplicationNotFound 찾을 수 없음(404) 지정된 애플리케이션이 없습니다.
InvalidApplicationPackageReferences 충돌(409) 하나 이상의 애플리케이션 패키지 참조를 충족할 수 없습니다. 이 문제는 애플리케이션 ID 또는 버전이 없거나 활성 상태가 아니거나 참조가 버전을 지정하지 않았고 구성된 기본 버전이 없는 경우에 발생합니다.
TaskDependenciesNotSpecifiedOnJob 잘못된 요청(400) 작업은 다른 작업에 따라 로 지정되었지만 작업에서 작업 종속성을 사용하도록 지정하지 않았습니다.
TaskDependencyListTooLong 잘못된 요청(400) 작업이 다른 작업에 따라 로 지정되었지만 종속성 목록이 너무 길어 저장되지 않았습니다. 저장된 총 길이는 64000자로 제한됩니다. 내부 스토리지 오버헤드를 허용하려면 작업 ID의 총 길이가 이보다 약간 작아야 합니다. 이 오류가 발생하면 작업 범위 종속성을 대신 사용하는 것이 좋습니다.
TaskDependencyRangesTooLong 잘못된 요청(400) 작업이 여러 작업 ID 범위에 따라 로 지정되었고 범위 목록이 너무 길어 저장되지 않았습니다. 문제는 범위의 크기가 아니라 범위 수와 관련이 있습니다.

작업/태스크 예약 오류 코드

Batch 서비스에서 노드에서 작업을 시작할 때 오류가 발생하면 작업이 완료된 것으로 표시됩니다. 오류 정보는 작업과 연결된 파일 나열 및 작업 API에 대한 정보 가져오기의 응답 본문에 있는 요소 내에서 failureInfo 반환됩니다.

마찬가지로 작업을 시작하는 동안 일괄 처리 서비스에서 오류가 발생하면 작업은 완료된 것으로 표시됩니다. 이 예약 오류 정보는 Batch API schedulingError 에서 작업에 대한 정보 가져오기 의 응답 본문에 있는 요소 내에서 반환됩니다.

다음 테이블에는 태스크 예약 오류의 범주 목록이 나와 있습니다.

범주 설명
UserError 사용자가 제공한 태스크 사양의 오류입니다.
ServerError 일괄 처리 서비스에서 발생하여 태스크 예약을 차단하는 오류입니다.

다음은 Batch 서비스에서 반환하는 샘플 사전 처리 오류입니다.

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

다음 표에서는 Batch 서비스에서 반환할 수 있는 작업 예약 오류 코드 목록을 제공합니다.

오류 코드 범주 사용자 메시지
InvalidCertificatesInAutoPool UserError 자동 풀 사양에 지정된 인증서 참조가 올바르지 않습니다.
AutoPoolCreationFailedWithQuotaReached UserError 계정의 풀 할당량에 도달했습니다.
InvalidApplicationPackageReferencesInAutoPool UserError 풀에 대해 지정된 하나 이상의 애플리케이션 패키지가 잘못되었습니다.
InvalidAutoScaleFormulaInAutoPool UserError 지정한 자동 크기 조정 설정이 올바르지 않습니다.
InvalidAutoPoolSettings UserError 지정된 자동 풀 설정이 잘못되었습니다.
JobBeingTerminated UserError 연결된 작업이 종료되고 있으므로 작업을 시작할 수 없습니다.
Unknown ServerError 알 수 없는 예약 오류가 발생했습니다.

다음 표에서는 Batch 서비스에서 반환할 수 있는 작업 예약 오류 코드 목록을 제공합니다.

오류 코드 범주 사용자 메시지
BlobNotFound UserError 지정된 Azure Blob 중 하나를 찾을 수 없습니다.
BlobAccessDenied UserError 지정된 Azure Blob 중 하나에 대한 액세스가 거부되었습니다.
BlobDownloadTimedOut ServerError 지정된 Azure Blob 중 하나를 다운로드하는 동안 시간 제한이 발생했습니다.
BlobDownloadMiscError ServerError 지정된 Azure Blob 중 하나를 다운로드하는 동안 기타 오류가 발생했습니다.
ResourceDirectoryCreateFailed ServerError 작업에 대한 리소스 디렉터리를 만드는 동안 오류가 발생했습니다.
ResourceFileCreateFailed ServerError 리소스 파일을 만드는 동안 오류가 발생했습니다.
ResourceFileWriteFailed ServerError 리소스 파일을 작성하지 못했습니다.
CommandProgramNotFound UserError 지정한 명령 프로그램을 찾을 수 없습니다.
CommandLaunchFailed UserError 지정된 명령줄을 시작하지 못했습니다.
TaskEnded UserError 작업이 사용자 요청에 의해 종료되었습니다.
MaxInternalRetryCountReached UserError 지정된 작업이 최대 내부 재시도 횟수에 도달했습니다.
TaskSchedulingConstraintFailed UserError 작업과 연결된 풀에서 작업을 예약할 수 없습니다.
DiskFull ServerError 노드에 작업을 실행하도록 선택된 디스크 공간이 부족합니다.
Unknown ServerError 알 수 없는 예약 오류가 발생했습니다.