Azure Virtual Desktop #6 0x3000046 「現在利用可能なリソースがないため接続出来ませんでした」の原因と対処法まとめ

Azure Virtual Desktop (AVD / 旧 Windows Virtual Desktop) のリモートデスクトップクライアント(または Windows App)からセッションホストへ接続しようとした際、あるいは接続中に突然セッションが切断された際、以下のエラーメッセージが表示されることがあります。

リモートデスクトップ アプリからのポップアップ

現在利用可能なリソースがないため、接続できませんでした。しばらくしてからもう一度試すか、問題が解決しない場合はテクニカルサポートにお問い合わせください。  

エラーコード: 0x3000046
拡張エラーコード: 0x0

本エラーは、AVD のトラブルシューティングにおいて非常に遭遇しやすい典型的なエラーの一つです。本記事では、著者が過去に検証・実運用の中で遭遇した事例(セッションホスト全停止、突然の切断、プロビジョニング失敗・物理ホスト障害)を交えつつ、本エラーが発生する原因パターンと最新の解決策を体系的に解説します。

エラー 0x3000046 が発生する根本原因一覧

エラー 0x3000046 は、「クライアントが要求した接続先(セッションホスト)に正常にルーティングまたは割り当てができなかった」 ことを意味します。主な原因は以下の通りです。

分類原因主な状況対策
VM電源状態セッションホストが全停止しているホストプールのステータスが Unavailable手動起動 または 「接続時に VM を開始」機能の有効化
Azure基盤物理ホスト障害による自動修復中Resource Health に Redeploying due to host failureAzure の自動修復(別ホストでの起動)完了を待つ
エージェントAVD Agent のハング・古いバージョン利用OSは起動しているが AVD 上で UnavailableAVD Agent / Bootloader の再インストール
ネットワーク/一時接続一時的な通信切断・接続ブローカーの揺らぎ接続中に突然切断され、再試行で復旧するクライアント再接続(持続する場合はクライアント更新)

ケース別:発生状況と解決アプローチ

ケース1:セッションホスト(VM)が停止・割り当て解除されている

【発生状況】

  • 夜間・休日のコスト削減のため VM を割り当て解除(停止)している場合、クライアントから接続を試みると即座に 0x3000046 が返されます。
  • その他、意図せずだったり、設定誤りなどでセッションホストが停止している場合にも0x3000046 が返されます。

【解説と対策】

AVD の標準動作では、サインイン要求を受けても停止中の VM を自動起動する仕組みはデフォルトで働きません

  • 手動対処: Azure Portal から対象 VM を起動し、ステータスが Running になるまで待ってから再試行します。
  • 恒久対策(推奨): ホストプール設定で 「接続時に VM を開始 (Start VM on connect)」 を有効化します。ユーザーがクライアントから接続アイコンをクリックした際、クラウド側で自動的に VM のパワーオンが行われるようになります。  この際、利用者側には接続までに時間がかかることを事前に案内しておくとよいです。

ケース2:Azure 物理ホストの障害・再デプロイ処理中

【発生状況】

  • VM を起動した(あるいは Running になっている)にもかかわらず接続できず、プロビジョニング状態が 「更新中 (Updating)」「失敗 (Failed)」 を行き来するケースです。
  • OSのブート診断画面ではログイン画面が表示されていても接続できません。

【解説と対策】

  • Azure Portal の [問題の診断と解決] または [Resource Health] を確認し、以下のメッセージが出ているか確認します。
Resource Health
Title: Redeploying due to host failure
Summary: ホストサーバーで予期しないエラーが発生したため、仮想マシンを使用できず、再デプロイしています。
Azure で自動復旧プロセスが開始されました。現在、別のホストにある仮想マシンを起動しています。
  • 基盤(ハイパーバイザー/物理ホスト)側のトラブルにより、Azure が自動的に別の物理ノードへ VM を再デプロイしている最中です。この状態ではユーザー側での手動操作(再起動など)は効果が薄いため、Azure 側の自動回復処理が完了するまで待つ必要があります。
  • こちらのケースについて、私の環境で実際に発生した際の状況、どう切り分けて、Azure原因と特定したかの記事はこちら

ケース3:AVD Agent / Bootloader の不整合・古いバージョン

【発生状況】

  • VM は正常に稼働しており OS にもログインできる状態だが、AVD ポータル上のセッションホストステータスが 「使用不可 (Unavailable)」 のまま変化しないケースです。

【解説と対策】

VM 内部で動いている RDAgent (Remote Desktop Services Infrastructure Agent)Geneva Agent が更新に失敗したか、サービスが停止している可能性があります。

  1. VM に管理者ローカルアカウント等でアクセス(または Azure Serial Console を利用)します。
  2. 2. 以下のコンポーネントを一度アンインストールします。
  3. Remote Desktop Agent Boot Loader
  4. Remote Desktop Services Infrastructure Agent
  5. AVD ホストプール画面から新たな 「登録キー (Registration Key)」 を発行します。
  6. 最新の AVD Agent および Bootloader インストーラーをダウンロードし、登録キーを指定して再インストールを行います。

ケース4:使用中セッションの突然の切断(一時的な通信途絶やサービス変動

【発生状況】

  • 作業中に突如画面が暗転し、再接続試行ののち 0x3000046 ポップアップが表示されて切断されるケースです。

【解説と対策】

  • わたしの検証では、クライアント側の完全なネットワーク断(LAN抜け等)の場合は通常 0x300000d などの別のエラーが返されることが確認されています。 詳しくはこちらの記事
  • 作業中の 0x3000046 切断は、AVD ブローカーとセッションホスト間の瞬間的な通信途絶や、ゲートウェイのフェイルオーバー等によって発生することが多いと推測しています。
  • 単発の発生であれば、再度クライアントから接続し直すことで正常に再接続できるケースがほとんどです。
  • 頻発する場合は、後述のクライアントアプリの更新やネットワーク環境(UDP/RDP Shortpath の有効性)を見直します。

トラブルシューティングの標準切り分けフロー

現場で 0x3000046 エラーに直面した際は、以下のステップで切り分けを行ってください。

[エラー 0x3000046 発生]

├─► 1. 仮想マシン (VM) の電源状態を確認
│ └─ 割り当て解除 (Stopped) ──► VMを起動する(または Start VM on Connect を設定)

├─► 2. AVD ホストプール側のステータスを確認
│ └─ Unavailable ──► AVD Agent の稼働状態確認・再インストール

├─► 3. Resource Health(障害情報)の確認
│ └─ Host Failure ──► Azure の再デプロイ自動復旧を待機

└─► 4. クライアント側の環境確認
└─ アプリの最新化(Windows App への移行推奨)

管理者が検討すべき予防策・最新ベストプラクティス

  1. 「接続時に VM を開始 (Start VM on connect)」の構成
    Pooled(プール)型・Personal(個人)型どちらのホストプールでも、本機能を有効化しておくことで「VMが停止していて接続できない」というエンドユーザーからの問い合わせを大幅に削減できます。
  2. 接続クライアントの最新化(Windows App へのアップデート)
    従来の「リモート デスクトップ クライアント (msrdc)」から、Microsoft が統一クライアントとして提供している 「Windows App」 への移行が進んでいます。最新クライアントを使用することで、接続ハンドシェイクの安定性が向上し、ブローカー起因の切断エラーを軽減できます。
  3. オートスケール(Autoscale)機能の活用
    営業時間に合わせて自動で必要台数の VM を起動し、利用率が下がったら割り当て解除する「AVD Autoscale」を適用することで、コスト削減と「リソース不足(0x3000046)」の回避を両立できます。