共用方式為


批次狀態和錯誤碼

Batch 服務的 REST API 作業會傳回標準 HTTP 狀態碼,如 HTTP/1.1 狀態碼定義中所定義。

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 應用程式開發介面錯誤碼

下表列出的錯誤碼可能是由批次服務執行的作業所傳回。

錯誤碼 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) 伺服器無法驗證要求。 確認 授權 標頭的值正確形成,並包含簽章。
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) 指定的作業系統版本不存在。
OSVersionDisabled BadRequest (400) 指定的作業系統版本已停用。
OSVersionExpired BadRequest (400) 指定的作業系統版本已過期。
PoolVersionEqualsUpgradeVersion BadRequest (400) 集區已經有指定的版本。
PoolNotEligibleForOSVersionUpgrade BadRequest (400) 指定的集區不適用於作業系統版本升級。
PoolNotFound 找不到 (404) 指定的集區不存在。
NodeNotFound 找不到 (404) 指定的節點不存在。
JobScheduleNotFound 找不到 (404) 指定的作業排程不存在。
JobNotFound 找不到 (404) 指定的作業不存在。
TaskNotFound 找不到 (404) 指定的工作不存在。
FileNotFound 找不到 (404) 指定的檔案不存在。
NodeUserNotFound 找不到 (404) 指定的節點使用者不存在。
CertificateNotFound 找不到 (404) 指定的憑證不存在。
JobPreparationTaskNotRunOnNode 找不到 (404) 作業準備工作未在指定的節點上執行。
JobReleaseTaskNotRunOnNode 找不到 (404) 作業發行工作未在指定的節點上執行。
NodeAgentSKUNotFound 找不到 (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) 指定的工作識別碼與作業準備工作相同。
TaskIdSameAsJobReleaseTask 衝突 (409) 指定的工作識別碼與作業發行工作相同。
JobWithSameIdExists 衝突 (409) 具有指定之作業排程識別碼的作業存在。 作業和作業排程不能有相同的識別碼。
JobScheduleWithSameIdExists 衝突 (409) 具有指定之作業識別碼的作業排程存在。 作業和作業排程不能有相同的識別碼。
NodeAlreadyInTargetSchedulingState 衝突 (409) 指定的節點已經處於目標排程狀態。
OperationNotValidOnNode 衝突 (409) 指定的作業在節點上無效。
OperationNotValidOnPool 衝突 (409) 指定的作業在集區上無效。
IOError 禁止 (403) 存取指定的資源時發生 I/O 錯誤。
TooManyEnableAutoScaleRequests ServiceUnavailable (503) 集區上發出太多啟用集區自動調整要求。
ApplicationNotFound 找不到 (404) 指定的應用程式不存在。
InvalidApplicationPackageReferences 衝突 (409) 無法滿足一或多個應用程式套件參考。 如果應用程式識別碼或版本不存在或未使用中,或參考未指定版本,且未設定預設版本,就會發生這種情況。
TaskDependenciesNotSpecifiedOnJob 不正確的要求 (400) 工作已指定為視其他工作而定,但作業未指定使用工作相依性。
TaskDependencyListTooLong 不正確的要求 (400) 工作已指定為相依于其他工作,但相依性清單太長而無法儲存。 儲存長度總計限制為 64000 個字元;工作識別碼的總長度必須稍微小於此長度,以允許內部儲存體額外負荷。 如果您遇到此錯誤,請考慮改用工作範圍相依性。
TaskDependencyRangesTooLong 不正確的要求 (400) 工作指定為取決於工作識別碼的多個範圍,而範圍清單太長而無法儲存。 請注意,問題不是範圍大小,而是範圍數目。

作業/工作排程錯誤碼

如果 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 時發生其他錯誤, (s) 。
ResourceDirectoryCreateFailed ServerError 工作建立資原始目錄失敗。
ResourceFileCreateFailed ServerError 建立資源檔時發生失敗。
ResourceFileWriteFailed ServerError 寫入資源檔失敗。
CommandProgramNotFound UserError 找不到指定的命令程式。
CommandLaunchFailed UserError 無法啟動指定的命令列。
TaskEnded UserError 工作已由使用者要求結束。
MaxInternalRetryCountReached UserError 指定的工作已達到內部重試計數上限。
TaskSchedulingConstraintFailed UserError 工作無法在與作業相關聯的集區上排程
DiskFull ServerError 選取的節點上沒有足夠的磁碟空間來執行工作。
Unknown ServerError 發生未知的排程錯誤。