Device Update for IoT Hub のエラー コード

このドキュメントでは、さまざまなデバイス更新コンポーネントのエラー コードの表を示します。

エラーコードをスローする可能性のある主なクライアント側コンポーネントは、デバイス更新エージェントと配信最適化エージェントの 2 つです。 エラー コードは、デバイス更新コンテンツ サービスからも取得されます。

デバイス更新エージェント

ResultCode と ExtendedResultCode

Device Update for IoT Hub のコア PnP インターフェイスは ResultCode および ExtendedResultCode を報告します。これらを使用してエラーを診断することができます。 Device Update Core PnP インターフェイスの詳細については、「デバイスの更新とプラグ アンド プレイ」を参照してください。 Device Update エージェントの ResultCode と ExtendedResultCodes の既定の意味について詳しくは、Device Update の GitHub リポジトリをご覧ください。

ResultCode は、一般的な状態コードであり、ExtendedResultCode は、エンコードされたエラー情報を含む整数です。

ExtendedResultCode は、PnP インターフェイスでは符号付き整数として表されます。 ExtendedResultCode をデコードするには、符号付き整数を符号なし 16 進数に変換します。 ExtendedResultCode では、最初の 4 バイトのみが使用され、その形式は F FFFFFFF です。ここで、最初のニブルはファシリティ コード、残りのビットはエラー コードです。

ファシリティ コード

ファシリティ コード 説明
D DO SDK から発生したエラー
E エラー コードは errno です

次に例を示します。

ExtendedResultCode-536870781 です

-536870781 の符号なし 16 進数表現は FFFFFFFF E0000083 です。

Ignore ファシリティ コード エラー コード
FFFFFFFF E 0000083

16 進数の 0x83 は 10 進数の 131 であり、ENOLCK の errno 値です。

配信最適化エージェント

次の表は、デバイス更新クライアントの配信最適化 (DO) コンポーネントに関連するエラー コードの一覧です。 DO コンポーネントは、更新プログラムのコンテンツを IoT デバイスにダウンロードする役割を担います。

DO エラー コードは、API 呼び出しへの応答としてスローされた例外を調べると取得できます。 すべてのエラー コードは、0x80D0 プレフィックスによって識別できます。

エラー コード 文字列エラー 種類 説明
0x80D01001L OM_E_NO_SERVICE 該当なし 配信最適化がサービスを提供できませんでした
0x80D02002L DO_E_DOWNLOAD_NO_PROGRESS ジョブのダウンロード 指定された期間内にファイルのダウンロードが進行しませんでした
0x80D02011L DO_E_UNKNOWN_PROPERTY_ID ジョブのダウンロード SetProperty() または GetProperty() が、不明なプロパティ ID で呼び出されました
0x80D02012L DO_E_READ_ONLY_PROPERTY ジョブのダウンロード 読み取り専用プロパティで SetProperty() を呼び出すことができません
0x80D02013L DO_E_INVALID_STATE ジョブのダウンロード 要求されたアクションは、現在の状態では許可されません。 ジョブが取り消されたか、転送が完了している可能性があります。 現在の状態は読み取り専用です。
0x80D02018L DO_E_FILE_DOWNLOADSINK_UNSPECIFIED ジョブのダウンロード ダウンロード シンク (ローカル ファイルまたはストリーム インターフェイス) が指定されていないため、ダウンロードを開始できません
0x80D02200L DO_E_DOWNLOAD_NO_URI IDODownload インターフェイス URI を指定せずにダウンロードが開始されました
0x80D03805L DO_E_BLOCKED_BY_NO_NETWORK 一時的な問題 ネットワーク接続が失われたため、ダウンロードが一時停止されました
   0 00 00000     Total 4 bytes (32 bits)
   - -- -----
   | |  |
   | |  |
   | |  +---------  Error code (20 bits)
   | |
   | +------------- Component/Area code (8 bits)
   |
   +--------------- Facility code (4 bits) 

コードの解析の詳細については、デバイス更新エージェントの結果コードと拡張結果コードまたはカスタム コンテンツ ハンドラーの実装に関するページを参照してください。

デバイス更新コンテンツサービス

次の表は、デバイス更新サービスのコンテンツ サービス コンポーネントに関連するエラー コードの一覧です。 コンテンツ サービス コンポーネントは、更新コンテンツのインポートする役割を担います。 プロキシ更新のインポートに関するその他のトラブルシューティング情報も利用できます。

エラー コード 文字列エラー 次のステップ
UpdateAlreadyExists 同じ ID の更新が既に存在します。 Device Update for IoT Hub のこのインスタンスにまだインポートされていない更新をインポートしていることを確認します。
DuplicateContentImport 同じコンテンツが同時に複数回インポートされています。 Device Update for IoT Hub のこのインスタンスにまだインポートされていない更新をインポートしていることを確認します。
CannotProcessImportManifest インポート マニフェストの処理でエラーが発生しました。 インポート マニフェストの正しい書式設定については、「インポートの概念」と「更新のインポート」のドキュメントを参照してください。
CannotDownload インポート マニフェストをダウンロードできません。 インポート マニフェスト ファイルの URL がまだ有効であることを確認してください。
CannotParse インポートマニフェストを解析できません。 更新のインポートに関するドキュメントで定義されているスキーマと照合して、インポート マニフェストの正確性を確認してください。
UnsupportedVersion インポート マニフェスト スキーマ バージョンがサポートされていません。 インポート マニフェストが、更新のインポートに関するドキュメントで定義されている最新のスキーマを使用していることを確認してください。
制限を超えたため、更新のインポートでエラーが発生しました。 追加の更新プログラムのプロバイダーをインポートできません。 Device Update for IoT Hub のインスタンスで許可されているさまざまなプロバイダー数の制限に達しました。 インスタンスから更新をいくつか削除してから、もう一度お試しください。
制限を超えたため、更新のインポートでエラーが発生しました。 指定されたプロバイダーの追加の更新プログラム名をインポートできません。 Device Update for IoT Hub のインスタンスで 1 つのプロバイダーに許可されているさまざまな名前の数の制限に達しました。 インスタンスから更新をいくつか削除してから、もう一度お試しください。
制限を超えたため、更新のインポートでエラーが発生しました。 指定されたプロバイダーと名前の、追加の更新プログラムのバージョンをインポートできません。 Device Update for IoT Hub のインスタンスで 1 つのプロバイダーと名前に許可されているさまざまなバージョンの数の制限に達しました。 その名前の更新をいくつか、インスタンスから削除してから、もう一度お試しください。
制限を超えたため、更新のインポートでエラーが発生しました。 指定された互換性を持つ追加の更新プロバイダーをインポートできません。

or

指定された互換性を持つ追加の更新名をインポートできません。

or

指定された互換性を持つ追加の更新バージョンをインポートできません。
インポート マニフェストで、互換性プロパティを定義するときに、Device Update for IoT Hub では、特定の互換性プロパティのセットに対して、単一プロバイダーと名前の組み合わせがサポートされることを忘れないでください。 同じ互換性プロパティを、複数のプロバイダー/名前の組み合わせで使用しようとすると、これらのエラーが表示されます。 この問題を解決するには、(互換性プロパティで定義されている) 特定のデバイスのすべての更新で、同じプロバイダーと名前が使用されていることを確認します。
CannotProcessUpdateFile ソース ファイルの処理でエラーが発生しました。
ContentFileCannotDownload ソース ファイルをダウンロードできません。 更新ファイルの URL がまだ有効であることを確認してください。
SourceFileMalwareDetected インポート中のファイルで、既知のマルウェア署名が検出されました。 Device Update for IoT Hub は、複数の異なるメカニズムを使って、インポートされたコンテンツでマルウェアをスキャンします。 既知のマルウェア署名が特定されると、インポートは失敗し、一意のエラー メッセージが返されます。 エラー メッセージには、マルウェア署名の説明と、署名が検出された各ファイルのファイル ハッシュが含まれています。 ファイル ハッシュを使用して、フラグが設定されているファイルを的確に見つけ、マルウェア署名の説明を使用して、そのファイルでマルウェアを確認することができます。

インポート中のファイルからマルウェアを削除したら、インポート プロセスを再度開始できます。
SourceFilePendingMalwareAnalysis インポート中のファイルで、マルウェアが存在する可能性がある署名が検出されました。 Device Update for IoT Hub は、複数の異なるメカニズムを使って、インポートされたコンテンツでマルウェアをスキャンします。 既知のマルウェアと完全に一致しない場合でも、スキャン シグネチャにマルウェアの特性がある場合、インポートは失敗します。 この場合、一意のエラー メッセージが返されます。 エラー メッセージには、マルウェアの疑いがある署名の説明と、署名が検出された各ファイルのファイル ハッシュが含まれています。 ファイル ハッシュを使用して、フラグが設定されているファイルを的確に見つけ、マルウェア署名の説明を使用して、そのファイルでマルウェアを確認することができます。

インポート中のファイルからマルウェアを削除したら、インポート プロセスを再開できます。 ファイルにマルウェアが含まれないことが確実であるが、このエラーが引き続き表示される場合は、Microsoft サポートに問い合わせるのプロセスを使用してください。

次のステップ

デバイス更新プログラムに関する問題のトラブルシューティング