バッチの状態とエラー コード

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 Not Modified (304) The condition specified in the conditional header(s) was not met for a read operation. (読み取り操作に関して条件ヘッダーに指定されている条件が満たされていません。)
MissingRequiredHeader 正しくない要求 (400) A required HTTP header was not specified. (必要な HTTP ヘッダーが指定されていません。)
MissingRequiredProperty 正しくない要求 (400) A required property was not specified in the request body. (必要なプロパティが要求の本文に指定されていません。)
UnsupportedHeader 正しくない要求 (400) One of the HTTP headers specified in the request is not supported. (要求に指定されている HTTP ヘッダーの 1 つがサポートされていません。)
UnsupportedProperty 正しくない要求 (400) One of the properties specified in the request body is not supported. (要求の本文に指定されているプロパティの 1 つがサポートされていません。)
InvalidHeaderValue 正しくない要求 (400) The value provided for one of the HTTP headers was not in the correct format. (HTTP ヘッダーのいずれかに指定されている値の形式が正しくありません。)
InvalidPropertyValue 正しくない要求 (400) The value provided for one of the property in the request body is invalid. (要求本文のプロパティのいずれかに指定された値が無効です。)
MissingRequiredQueryParameter 正しくない要求 (400) A required query parameter was not specified for this request. (必須のクエリ パラメーターがこの要求に対して指定されていません。)
UnsupportedQueryParameter 正しくない要求 (400) One of the query parameters specified in the request URI is not supported. (要求の URI に指定されているクエリ パラメーターの 1 つがサポートされていません。)
InvalidQueryParameterValue 正しくない要求 (400) An invalid value was specified for one of the query parameters in the request URI. (要求の URI のクエリ パラメーターのいずれかに指定された値が無効です。)
OutOfRangeQueryParameterValue 正しくない要求 (400) A query parameter specified in the request URI is outside the permissible range. (要求の URI に指定されたクエリ パラメーターが許容範囲外です。)
RequestUrlFailedToParse 正しくない要求 (400) The url in the request could not be parsed. (要求の URL を解析できませんでした。)
InvalidUri 正しくない要求 (400) The requested URI does not represent any resource on the server. (要求された URI が、サーバー上のリソースを表していません。)
InvalidHttpVerb 正しくない要求 (400) The HTTP verb specified was not recognized by the server. (指定された HTTP 動詞がサーバーで認識されませんでした。)
EmptyMetadataKey 正しくない要求 (400) The key for one of the metadata key-value pairs is empty. (キーと値のペアの形式で指定されたメタデータのいずれか 1 つのキーが空です。)
InvalidRequestBody 正しくない要求 (400) The specified Request Body is not syntactically valid. (指定された要求本文の構文が無効です。)
OutOfRangeInput 正しくない要求 (400) One of the request inputs is out of range. (要求の入力のいずれかが範囲外です。)
InvalidAuthenticationInfo 正しくない要求 (400) The authentication information was not provided in the correct format. (指定された認証情報の形式が正しくありません。) Authorization ヘッダーの値を確認します。
InvalidInput 正しくない要求 (400) 無効な要求入力があります。
InvalidMetadata 正しくない要求 (400) The specified metadata is invalid. (指定されているメタデータが無効です。) It includes characters that are not permitted. (使用できない文字が含まれています。)
MetadataTooLarge 正しくない要求 (400) The size of the specified metadata exceeds the maximum size permitted. (指定されているメタデータのサイズが最大許容サイズを超えています。)
MultipleConditionHeadersNotSupported 正しくない要求 (400) Multiple condition headers are not supported. (複数の条件ヘッダーはサポートされていません。)
AuthenticationFailed 許可されていません (403) サーバーが要求の認証に失敗しました。 Authorization ヘッダーの値が正しく形成され、署名が含まれていることを確認します。
InsufficientAccountPermissions 許可されていません (403) The account being accessed does not have sufficient permissions to execute this operation. (アクセス中のアカウントには、この操作の実行に必要なアクセス許可が割り当てられていません。)
AccountIsDisabled 許可されていません (403) The specified account is disabled. (指定されているアカウントが無効になっています。)
ResourceNotFound Not Found (404) 指定されたリソースが存在しません。
UnsupportedHttpVerb Method Not Allowed (405) The resource doesn't support the specified HTTP verb. (指定されている HTTP 動詞をリソースがサポートしていません。)
MissingContentLengthHeader Length Required (411) Content-Length ヘッダーが指定されていません。
ConditionNotMet Precondition Failed (412) The condition specified in the conditional header(s) was not met for a write operation. (書き込み操作に関して条件ヘッダーに指定されている条件が満たされていません。)
RequestBodyTooLarge Request Entity Too Large (413) The size of the request body exceeds the maximum size permitted. (要求の本文のサイズが最大許容サイズを超えています。)
InvalidRange Requested Range Not Satisfiable (416) The range specified is invalid for the current size of the resource. (指定された範囲は、リソースの現在のサイズに対して無効です。)
InternalError 内部サーバー エラー (500) サーバーで内部エラーが発生しました。 要求を再試行してください。
OperationTimedOut 内部サーバー エラー (500) 許可された時間内に操作を完了できません。
ServerBusy サービス利用不可 (503) サーバは現在、要求を受信することができません。 要求を再試行してください。

バッチ サービスのエラー コード

バッチ サービスに対して操作を実行した結果、返される可能性があるエラー コードを次の表に示します。

エラー コード HTTP 状態コード ユーザー メッセージ
UnsupportedRequestVersion BadRequest (400) The specified request version is not supported. (指定された要求のバージョンはサポートされていません。)
InvalidAutoScalingSettings BadRequest (400) The specified auto-scaling settings are not valid. (指定された自動スケーリングの設定が無効です。)
AutoScalingFormulaSyntaxError BadRequest (400) The specified auto-scaling formula has a syntax error. (指定された自動スケーリングの式に構文エラーがあります。)
AutoScalingFormulaTooLong BadRequest (400) The specified auto-scaling formula exceeds lengths limit. (指定された自動スケーリングの式が長さ制限を超えています。)
OSVersionNotFound BadRequest (400) The specified OS Version does not exists. (指定された OS バージョンが存在しません。)
OSVersionDisabled BadRequest (400) The specified OS Version is disabled. (指定された OS バージョンが無効になっています。)
OSVersionExpired BadRequest (400) The specified OS Version is expired. (指定された OS バージョンの有効期限が切れています。)
PoolVersionEqualsUpgradeVersion BadRequest (400) The pool is already with the given version. (プールは既に指定したバージョンです。)
PoolNotEligibleForOSVersionUpgrade BadRequest (400) The specified pool is not eligible for OS Version upgrade. (指定されたプールは OS バージョンのアップグレード対象ではありません。)
PoolNotFound NotFound (404) The specified pool does not exist. (指定されたプールが存在しません。)
NodeNotFound NotFound (404) 指定されたノードが存在しません。
JobScheduleNotFound NotFound (404) 指定されたジョブ スケジュールが存在しません。
JobNotFound NotFound (404) 指定されたジョブは存在しません。
TaskNotFound NotFound (404) The specified task does not exist. (指定されたタスクは存在しません。)
FileNotFound NotFound (404) 指定したファイルが存在しません。
NodeUserNotFound NotFound (404) 指定されたノード ユーザーが存在しません。
CertificateNotFound NotFound (404) 指定された証明書が存在しません。
JobPreparationTaskNotRunOnNode NotFound (404) ジョブ準備タスクは、指定したノードで実行されませんでした。
JobReleaseTaskNotRunOnNode NotFound (404) ジョブ 解放タスクは、指定したノードで実行されませんでした。
NodeAgentSKUNotFound NotFound (404) 指定されたノード エージェント SKU が存在しません。
OperationInvalidForCurrentState Conflict (409) The specified operation is not valid for the current state of the resource. (指定された操作は、リソースの現在の状態に対して無効です。)
PoolBeingDeleted Conflict (409) The specified pool has been marked for deletion and is being reclaimed. (指定されたプールは削除のマークが付けられているため、回収されます。)
PoolBeingResized Conflict (409) The specified pool is being resized (指定されたプールのサイズを変更します)
PoolBeingCreated Conflict (409) The specified pool is being created. (指定されたプールが作成されます。)
NodeBeingCreated Conflict (409) 指定したノードが作成されています
NodeBeingStarted Conflict (409) 指定したノードが起動中です
NodeBeingReimaged Conflict (409) 指定したノードが再イメージ化されています
NodeBeingRebooted Conflict (409) 指定したノードが再起動中です
NodeStateUnusable Conflict (409) 指定したノードの状態は使用できません
JobScheduleBeingTerminated Conflict (409) 指定したジョブ スケジュールが終了しています。
JobScheduleBeingDeleted Conflict (409) 指定されたジョブ スケジュールが削除対象としてマークされ、再利用されています。
CertificateBeingDeleted Conflict (409) The specified certificate has been marked for deletion and is being deleted. (指定された証明書は削除のマークが付けられているため、削除されます。)
PoolExists Conflict (409) The specified pool already exists. (指定されたプールは既に存在します。)
JobScheduleExists Conflict (409) 指定されたジョブ スケジュールは既に存在します。
NodeUserExists Conflict (409) 指定したノード ユーザーは既に存在します。
JobExists Conflict (409) 指定したジョブは既に存在します。
NodeUserExists Conflict (409) 指定したノード ユーザーは既に存在します。
CertificateExists Conflict (409) The specified certificate already exists. (指定された証明書は既に存在します。)
JobScheduleDisabled Conflict (409) 指定されたジョブ スケジュールが無効になっています。
JobScheduleCompleted Conflict (409) 指定されたジョブ スケジュールは既に完了状態です。
JobBeingTerminated Conflict (409) The specified job is being terminated. (指定されたジョブは終了します。)
JobBeingDeleted Conflict (409) The specified job has been marked for deletion and is being garbage collected. (指定されたジョブは削除のマークが付けられているため、ガベージ コレクトされます)
JobDisabled Conflict (409) 指定したジョブが無効になっています。
JobCompleted Conflict (409) The specified job is already in a completed state. (指定されたジョブは既に完了済みの状態です。)
JobNotActive Conflict (409) The specified job is not in active state. (指定されたジョブがアクティブ状態ではありません。)
TaskExists Conflict (409) The specified task already exists. (指定されたタスクは既に存在します。)
TaskCompleted Conflict (409) The specified task is already in a completed state. (指定されたタスクは既に完了済みの状態です。)
TaskNotCompleted Conflict (409) 指定したタスクは完了状態ではなく、要求された操作は完了したタスクでのみ実行できます。
TaskSucceeded Conflict (409) 指定したタスクは既に正常に完了しており、要求された操作は成功したタスクに対して実行できません。
TaskFilesUnavailable Conflict (409) The files of the specified task are unavailable. (指定されたタスクのファイルは使用できません。)
TaskFilesCleanedup Conflict (409) The files of the specified task are cleanedup. (指定されたタスクのファイルはクリーンアップされます。)
ActiveJobAndScheduleQuotaReached Conflict (409) アカウントのアクティブなジョブとスケジュールのクォータに達しました。
PoolQuotaReached Conflict (409) Pool quota for the account has been reached. (アカウントのプール クォータに達しました。)
UpgradePoolVersionConflict Conflict (409) The pool is already upgrading to a different version. (プールは既に別のバージョンにアップグレードしています。)
JobPreparationTaskNotSpecified Conflict (409) 指定したジョブにジョブ準備タスクがありません。
JobReleaseTaskNotSpecified Conflict (409) 指定したジョブにジョブ解放タスクがありません。
TaskIdSameAsJobPreparationTask Conflict (409) 指定したタスク ID は、ジョブ準備タスクと同じです。
TaskIdSameAsJobReleaseTask Conflict (409) 指定したタスク ID は、ジョブ リリース タスクと同じです。
JobWithSameIdExists Conflict (409) 指定されたジョブ スケジュール ID を持つジョブが存在します。 ジョブとジョブのスケジュールに同じ ID を指定することはできません。
JobScheduleWithSameIdExists Conflict (409) 指定したジョブ ID を持つジョブ スケジュールが存在します。 ジョブとジョブのスケジュールに同じ ID を指定することはできません。
NodeAlreadyInTargetSchedulingState Conflict (409) 指定されたノードは既にターゲット スケジューリング状態です。
OperationNotValidOnNode Conflict (409) 指定した操作がノードで無効です。
OperationNotValidOnPool Conflict (409) 指定された操作がプールで無効です。
IOError 許可されていません (403) An I/O error occurred when accessing the specified resource. (指定されたリソースへのアクセス時に I/O エラーが発生しました。)
TooManyEnableAutoScaleRequests ServiceUnavailable (503) プールに対して発行されるプール自動スケーリングの有効化要求が多すぎます。
ApplicationNotFound Not Found (404) 指定されたアプリケーションが存在しません。
InvalidApplicationPackageReferences Conflict (409) 1 つ以上のアプリケーション パッケージ参照を満たできませんでした。 これは、アプリケーション ID またはバージョンが存在しないか、アクティブでない場合、または参照でバージョンが指定されておらず、既定のバージョンが構成されていない場合に発生します。
TaskDependenciesNotSpecifiedOnJob 正しくない要求 (400) タスクは他のタスクに応じて として指定されましたが、ジョブではタスクの依存関係を使用するように指定されていませんでした。
TaskDependencyListTooLong 正しくない要求 (400) タスクは他のタスクに応じて として指定されましたが、依存関係の一覧が長すぎて格納できませんでした。 格納される長さの合計は 6,4000 文字に制限されています。内部ストレージのオーバーヘッドを許容するには、タスク ID の合計長をこれより少し短くする必要があります。 このエラーが発生した場合は、代わりにタスク範囲の依存関係を使用することを検討してください。
TaskDependencyRangesTooLong 正しくない要求 (400) タスク ID の複数の範囲に応じて としてタスクが指定され、範囲の一覧が長すぎて格納できませんでした。 この問題は、範囲のサイズではなく、範囲の数に関する問題であることに注意してください。

ジョブとタスクのスケジューリングに関するエラー コード

Batch サービスは、ノードでタスクを開始するときにエラーが発生した場合、タスクを完了としてマークします。 エラー情報は、タスクに関連付けられているファイルのfailureInfo一覧表示とタスク API に関する情報の取得の応答本文の要素内で返されます。

同様に、バッチ サービスがジョブの開始中にエラーを検出した場合、そのジョブには完了済みのマークが付けられます。 このスケジュール エラー情報は、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 The specified certificate references in the auto pool specification are not valid. (自動プール指定で指定された証明書参照が無効です。)
AutoPoolCreationFailedWithQuotaReached UserError The pool quota for the account is reached. (アカウントのプール クォータに達しました。)
InvalidApplicationPackageReferencesInAutoPool UserError プールに指定された 1 つ以上のアプリケーション パッケージが無効です。
InvalidAutoScaleFormulaInAutoPool UserError The specified auto-scaling settings are not valid. (指定された自動スケーリングの設定が無効です。)
InvalidAutoPoolSettings UserError 指定された自動プール設定が無効です。
JobBeingTerminated UserError 関連付けられたジョブが終了しているため、タスクを開始できません。
Unknown ServerError 不明なスケジュール エラーが発生しました。

次の表に、Batch サービスによって返される可能性があるタスク スケジュール エラー コードの一覧を示します。

エラー コード カテゴリ ユーザー メッセージ
BlobNotFound UserError 指定した Azure BLOB のいずれかが見つかりません。
BlobAccessDenied UserError 指定された Azure BLOB の 1 つに対するアクセスが拒否されます。
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 不明なスケジュール エラーが発生しました。