Azure AI Foundry「Failed to load finetune」エラーの原因と解決策|リージョン未対応・RBAC不足・Network診断まで完全ガイド

Azure AI Foundry のポータルで「Failed to load finetune …」や「Your request for data was not sent」等が連続表示され、モデルカタログやプレイグラウンドは使えるのに Fine‑tune/Agent/Custom Voice などのタブだけが読み込めない——この“よくある詰まり”を、原因別の切り分け手順と実務的な復旧方法で一気に解消します。現場で再現性の高かったパターンと具体コマンド、判別のコツまでまとめました。

目次

症状の整理(再現パターン)

以下のようなエラーが、対象タブ(Fine‑tune、Custom Voice/Speech/Avatar、CLU、Agent など)で連続表示されます。

Failed to load finetune custom voice projects
Failed to load finetune custom avatar task
Failed to load workspaces
Failed to create project
Your request for data was not sent. Check your network…
  • ネットワークやプロキシ、AdBlock を外しても改善しない。
  • モデルカタログ(Model catalog)やプレイグラウンドは正常に表示・実行できる。
  • F12(開発者ツール)→ Network では、一部リクエストが 404/403/401/429 などで失敗している。

結論(最短の復旧パス)

まずは次の 3 ステップで復旧可否を確認してください。これで解消する割合が最も高いです。

  1. East US 2 など、該当機能がサポートされるリージョンで 新規に Azure AI Foundry リソースを作成する。
  2. 対象ユーザー/サービス プリンシパルに Cognitive Services OpenAI Contributor(必要に応じて Speech/Language 関連ロールも)を リソーススコープで割当する。
  3. ポータルを再読み込みし、Fine‑tune / Agent / Custom Voice タブが 一覧表示→作成ウィザードが開けるかを確認する。

これで動く場合は「リージョン非対応」または「RBAC 権限不足」が主因だった可能性が高いです。以降は、まだ解決しないときの詳細な切り分けに進みます。

主な原因と対処(要点早見表)

主な原因対応策判別のコツ/ポイント
リージョンが機能未対応(最多)対応リージョン(例:East US 2)に 作り直し。既存リソースは移行(後述)Network で 404 や Your request for data was not sent。モデル閲覧はできるが Fine‑tune/Agent だけ 404/空配列になりやすい
IAM(RBAC)権限不足該当 AI リソースに Cognitive Services OpenAI Contributor を割当。Speech/Language など機能別ロールも必要に応じ割当モデルは実行できても プロジェクト作成やタスク一覧の読取が 403。Network の JSON に AuthorizationFailed
リソース ID/スコープの不整合ARM 上にリソースが存在するか、リソース グループやリージョンの組合せを確認。IaC(Bicep/Terraform)再適用Network に ResourceNotFound。削除済み/別サブスクリプションなどの取り違いが定番
ブラウザ拡張/キャッシュプライベート ウィンドウ、別ブラウザで再試行。拡張は一時無効化同一アカウントでも ブラウザ変更で改善する場合はこれが原因
Resource Provider 未登録サブスクリプションで Microsoft.CognitiveServices 等の RP を登録Network に MissingSubscriptionRegistration。新規サブスクリプションで起こりがち
サブスクリプション/テナントのポリシーカスタム ポリシー/Blueprint/DLP を確認。対象 API 操作を許可RequestDisallowedByPolicy。企業管理下の環境で頻出
クォータ/上限到達SKU/クォータを確認・申請。タスク同時実行数や容量を調整QuotaExceeded。一覧は出るが 作成だけ失敗する
プロキシ/TLS インスペクション対象ドメインの例外化、HTTP/2/3 の透過性確認プリフライト(OPTIONS)や SSE が プロキシでブロックされ 499/502/504 に

まずやる診断:開発者ツール(Network)で“原因の顔”を見る

  1. 該当タブを開く直前に F12 → Network を開き、Preserve log をオン。
  2. Fine‑tune/Agent タブを開く。失敗した fetch/XHR を選ぶ。
  3. Response と Headers を確認。以下の対応表で切り分ける。
HTTP/コードよくあるメッセージ主因候補次アクション
404ResourceNotFound / 空配列リージョン非対応/リソース ID 不整合対応リージョンで再作成/ARM 上の実在確認
403AuthorizationFailedRBAC 権限不足OpenAI Contributor 等を割当(後述)
401未認証/トークン期限切れログイン状態/MFA/テナント切替再ログイン、テナント選択を確認
429QuotaExceededクォータ/レート制限SKU/上限を見直し、同時実行を減らす
5xx不定一時障害/プロキシ干渉別経路で再試行、数分後に再確認

RBAC:必要ロールと割当の勘所

よくあるのは「モデルの閲覧・実行はできるが、プロジェクト作成/タスク列挙のみ失敗」というケース。これは データプレーンは許可、コントロールプレーンが拒否の典型で、Contributor 系の役割が不足しています。

機能代表的に必要なロール(例)スコープ備考
OpenAI Fine‑tune / AgentsCognitive Services OpenAI Contributor該当 AI リソース作成・更新・一覧の API が通る
Speech(Custom Voice/Avatar)Cognitive Services Speech Contributor などSpeech リソース音声・アバターのジョブ管理に必要
言語(CLU)Cognitive Services Language Contributor などLanguage リソースプロジェクト/デプロイ操作

付与時は必ず 対象リソーススコープ(サブスクリプション全体ではなく、当該リソース)で割り当てると影響範囲を最小化できます。グループにロールを付け、ユーザー/SP をグループに入れると運用が楽です。

CLI での健全性チェック(コピペ可)

Azure CLI を利用すると、ブラウザが絡む要因を排して実在性・権限・リージョンを定量確認できます。

# ログイン&サブスクリプション選択
az login
az account set --subscription "<SUBSCRIPTION_NAME_OR_ID>"

# リソースの実在確認(種類:Cognitive Services / kind: OpenAI 等)

az cognitiveservices account show -g  -n  -o table

# 対応 SKU/機能(参考):リソースが返ること自体が重要

az cognitiveservices account list-skus -g  -n  -o table

# 自分の割当ロール確認(スコープ:該当リソース)

AI_ID=$(az cognitiveservices account show -g  -n  --query id -o tsv)
az role assignment list --assignee  --scope "$AI_ID" -o table

# Resource Provider 登録(初回のみ)

az provider register --namespace Microsoft.CognitiveServices
az provider show -n Microsoft.CognitiveServices -o table 

エラーが AuthorizationFailed の時は、上記の role assignment list に目的のロールが出ないはずです。
ResourceNotFound の時は account show が 3 回走らせても返らない(ID/リージョン/リソースグループ取り違い)ことが多いです。

リージョン選定と South Central US の“落とし穴”

Fine‑tune や Agent、Custom Voice/Avatar はリージョン対応が段階的に拡がる特性があり、対応リージョン外だと UI は開けてもバックエンドが 404/空応答になることがあります。現場の声としては East US 2 に作り直すと一発で直る例が最も多く、逆に South Central US では曖昧なエラー(Your request for data was not sent 表示など)に遭遇しやすい、というレポートが目立ちます。
運用上は「まず East US 2 で検証→要件に応じて近接リージョンへ展開」という順序が安全です。

再現性の高い復旧手順(スクラッチで作り直し)

  1. ポータルまたは IaC(Bicep/Terraform)で、East US 2 に Azure AI Foundry リソースを新規作成。
  2. リソースの アクセス制御 (IAM) で、ユーザー/グループ/SP に Cognitive Services OpenAI Contributor を割当。
    • Voice/Avatar や CLU を使う場合は、該当リソースに Speech/Language の Contributor 系ロールも付与。
  3. ポータルを ハードリロード(キャッシュ無視)して、Fine‑tune/Agent タブが一覧→作成ウィザードまで開くことを確認。

この 3 手順で “Failed to load finetune …” の連発が止まれば、根本因はリージョンまたは RBAC です。既存環境からの移行は次節を参照。

既存環境からの移行(ダウンタイム最小化)

  1. 新リージョンに 同名/同等設定の AI リソースを作成。
  2. 周辺リソース(Storage、Key Vault、AI Search、App Service 等)の接続情報を移す。
    接続先の権限(Managed Identity / Access Policy)も 再付与する。
  3. デプロイ構成(モデル/エンドポイント)を IaC 化していれば再適用。手作業の場合はエクスポート/インポート。
  4. アプリ側の 接続文字列/エンドポイント URL を切り替え、段階的にトラフィックを新環境へ。
  5. 暫定で旧環境を残し、メトリクス(失敗率/レイテンシ)を監視して問題なければクリーンアップ。

注意:リージョン変更では、Storage/Key Vault 等の IAM は引き継がれません。運用手順書に「移行時に再付与するロール一覧」を用意しておくと再発を防げます。

“Your request for data was not sent” を読み解く

このメッセージは UI 側の汎用文言で、実際の理由は ネットワークタブの JSON に現れます。代表例を示します。

{
  "error": {
    "code": "AuthorizationFailed",
    "message": "The client 'xxxxx' with object id 'xxxxx' does not have authorization to perform action..."
  }
}

→ RBAC 不足。OpenAI Contributor を付与。

{
  "error": {
    "code": "ResourceNotFound",
    "message": "The Resource '...' under resource group '...' was not found."
  }
}

→ リージョン非対応/リソース ID 不整合。対応リージョンに再作成、ARM 実在確認。

{
  "error": {
    "code": "MissingSubscriptionRegistration",
    "message": "The subscription is not registered to use namespace 'Microsoft.CognitiveServices'."
  }
}

→ Resource Provider 未登録。CLI で登録。

ブラウザ/ネットワーク観点のベストプラクティス

  • プライベートウィンドウ/別ブラウザ(Edge/Chrome)で再現確認。
  • 社内プロキシやセキュリティ製品で HTTP/2/3、SSE、プリフライト が透過されるかを確認。
  • VPN 切替(社内→外部回線)で改善するなら、プロキシ設定に切り分け。
  • 組織の条件付きアクセス(MFA/ネットワーク境界)で UI の API 呼び出しが弾かれていないかを確認。

よくある質問(FAQ)

Q. モデルの推論は動くのに、Fine‑tune/Agent だけが 404/空になるのは?
A. リージョン非対応の可能性が高いです。East US 2 に作り直して挙動比較を。

Q. Contributor を付けたのに改善しない。
A. 付与したのが 正しいスコープ(当該 AI リソース)か確認。サブスクや RG スコープに付けても、対象リソースの上で拒否される構成の場合があります。

Q. サブスクリプションの新規作成直後に発生した。
A. Resource Provider の登録不足が定番です。Microsoft.CognitiveServices を登録してください。

Q. 企業ポリシーで制限されているかもしれない。
A. RequestDisallowedByPolicy の JSON が応答に含まれます。管理者にポリシー例外の申請が必要です。

“原因→対処”を素早く当てる実務フロー

  1. 別ブラウザ(プライベート)で再現確認。
  2. F12→Network の失敗呼び出しの HTTP コード/エラーコードを見る。
  3. 404 なら対応リージョンで新規作成して比較。
  4. 403 なら RBAC を付与(OpenAI Contributor)。
  5. 401 なら再ログイン/テナント切替。
  6. 429 ならクォータと同時実行を調整。
  7. CLI でリソース実在/ロール割当/RP 登録を機械的に検証。

再発防止:運用設計のチェックリスト

  • IaC 化(Bicep/Terraform)でリソース構成・リージョンを明示し、作成先の揺れを防ぐ。
  • RBAC はグループ割当を基本にして、ローテーションや入退社に強くする。
  • リージョン対応表の社内版を用意し、開発チームに共有(「まず East US 2 で検証」が合言葉)。
  • サブスク新設時の Resource Provider 登録手順を標準化。
  • プロキシ/FW に 対象ドメインの例外を定義(監査ログも保存)。

付録:Bicep の雛形(概念例)

// AI Foundry(Cognitive Services OpenAI kind など)を East US2 に作成する雛形(概念)
// 実運用では SKU・kind・プロパティは要件に合わせて調整
@minLength(3)
param location string = 'eastus2'
param name string
param rgName string

resource ai 'Microsoft.CognitiveServices/accounts@2023-05-01' = {
name: name
location: location
kind: 'OpenAI'
sku: { name: 'S0' }
properties: {
publicNetworkAccess: 'Enabled'
}
}

// 役割割当(概念例:ユーザー/グループに OpenAI Contributor)
// 実際の roleDefinitionId は環境で取得して設定 

付録:運用で使えるメッセージ テンプレート

サポートや社内共有に貼ると、原因特定が早まるテンプレートです。

■ 事象
Azure AI Foundry の Fine‑tune/Agent/Custom Voice タブで
「Failed to load finetune ...」「Your request for data was not sent」等が連続表示。

■ 直前操作
(例)プロジェクト作成ボタンを押下 → 数秒後にエラー

■ 環境
サブスクリプション: 
テナント: 
リージョン: <例: South Central US>
ブラウザ: 

■ 切り分け結果
Network エラー: HTTP <404/403/…>, コード: 
CLI: RP 登録 <済/未>、役割割当 <有/無>

■ 暫定対処
East US2 に再作成 → OpenAI Contributor 付与 → 正常化  

まとめ

Azure AI Foundry の「Failed to load finetune …」は、リージョン非対応かRBAC 権限不足の 2 大要因で説明できることがほとんどです。最短で直すなら「East US 2 に作り直す → OpenAI Contributor 付与 → 再読み込み」。改善しない場合でも、Network の HTTP コードと JSON を手がかりに、CLI で実在・権限・RP 登録を順番に潰せば、原因は必ず“顔”を出します。
運用上は IaC とグループ RBAC、リージョン選定の標準化で再発を防ぎましょう。この記事の手順が、現場の復旧時間を最小化する一助になれば幸いです。

参考:再掲(最短手順)

  1. East US 2 に新規で Azure AI Foundry リソースを作る。
  2. 自分(または SP)に Cognitive Services OpenAI Contributor を割当。
  3. ポータルを再読み込みして Fine‑tune / Agent タブを確認。プロジェクト作成が成功する。

補足情報(運用メモ)

  • リージョン対応は更新が速い傾向があり、ポータル実装の方がドキュメントより先行することがある。
  • リージョンを変える際は、ストレージ/Key Vault など周辺権限は引き継がれないため、ロール再設定が必要。
  • 未対応リージョンでは「Unsupported」明示の場合もあれば、曖昧な UI エラーになることもある。まずは Network の JSON を見る習慣を。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次