バッチの状態とエラー コード
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 | 不明なスケジュール エラーが発生しました。 |