Azure Machine Learning Studio から Edit in VS Code (Desktop) を実行すると、VS Code 側が Fetching subscription details… のまま停止してワークスペースに接続できない――そんな相談が急増しています。本稿では、原因の背景と実務で確実に復旧させる手順、再発防止の設定までをまとめて解説します。スクリーンショット不要で現場に貼れる「手順書」としてお使いください。
症状の概要
Azure ML Studio(以下、AML Studio)のノートブック画面から 「Edit in VS Code (Desktop)」 を選択すると、ローカルの VS Code が起動して Azure サインインまでは成功するものの、次の状態で止まります。
Fetching subscription details…
- Azure CLI の
az loginは成功している。 - PC を再起動しても変わらない。
- 拡張機能の再インストールやキャッシュ削除でも改善しない。
この状態ではサブスクリプションやワークスペースの一覧が取得できず、Compute Instance へのアタッチやリモート開発が開始できません。
結論(最短で直すための要点)
本件は、VS Code 1.104 以降と、Azure Machine Learning 関連拡張(ms-toolsai.vscode-ai / ms-toolsai.vscode-ai-remote)の組み合わせで発生する互換性バグが主因です。拡張側のハンドシェイク処理が新しい VS Code の API 変更に追随できておらず、サブスクリプション取得フェーズで固まります。
そのため、拡張のダウングレードあるいはVS Code のロールバックで復旧します。正式修正版が出るまで、以下の「安定組み合わせ」に固定するのが最も確実です。
| 対処 | 推奨バージョン | 適用のしやすさ | 再発防止の要 |
|---|---|---|---|
| 拡張ダウングレード | Azure ML (vscode-ai) 1.2.0~1.2.1Azure ML – Remote ( vscode-ai-remote) 1.2.0※環境によっては Remote 1.4.3 + AML 1.2.0 でも可 | ◎(数分) | 拡張の自動更新を無効化 |
| VS Code ロールバック | 1.103.2 以前 | ○(10~15分) | 本体の自動更新を無効化 |
| Web 版 VS Code | vscode.dev | ○(代替) | ローカル拡張に依存しない |
影響範囲と再現条件
- AML Studio からの「VS Code (Desktop)」呼び出し/リモート接続の開始時。
- 拡張の有効化(activation)直後、Azure リソース一覧の解決フェーズ。
- CLI の
az loginは成功しているため、ネットワークやアカウント自体ではなくVS Code 拡張の呼び出し経路に局所化。
対処法(詳解)
1) 拡張機能を安定版へダウングレード
最も簡単で副作用が少ない方法です。以下の順で作業すると失敗が減ります。
- VS Code を起動し、左側の 拡張(Extensions) ビュー(Ctrl + Shift + X / macOS は Cmd + Shift + X)。
- 検索ボックスで
Azure Machine Learningを検索し、「Azure Machine Learning」(ms-toolsai.vscode-ai)のカードを開く。 - 拡張カード右上の歯車(管理)→ 「別のバージョンをインストール」 → 1.2.0 または 1.2.1 を選択してインストール。
- 同様に 「Azure Machine Learning – Remote」(
ms-toolsai.vscode-ai-remote)を開き、1.2.0 をインストール。
※一部環境では 1.4.3 + AML 1.2.0 で動作報告あり。 - インストール後、各カードの歯車 → 「自動更新を無効化」 を実行。
- VS Code を完全終了して再起動(バックグラウンドの Code Helper/実行中ウィンドウがない状態にする)。
バージョン確認コマンド
code --list-extensions --show-versions | grep "ms-toolsai.vscode-ai"
Windows の標準環境で grep が無い場合は次のいずれかで代替します。
:: PowerShell
code --list-extensions --show-versions | Select-String "ms-toolsai.vscode-ai"
:: コマンドプロンプト
code --list-extensions --show-versions | findstr ms-toolsai.vscode-ai
再接続の手順
- AML Studio の左メニュー → Compute → 対象の Compute Instance を選択。
- 「VS Code (Desktop)」 を押下して接続を開始。
- 最初の Azure サインイン完了後、数秒で サブスクリプション一覧が表示されれば復旧成功です。
ポイント
- 拡張の自動更新をオフにしないと、次回起動時に再び最新へ戻って不具合が再発します。
- 複数プロファイル/複数ウィンドウを開いていると、古い拡張と新しい拡張が混在することがあります。必ず全ウィンドウを閉じてから作業してください。
2) VS Code 本体を 1.103.2 以前にロールバック
拡張のダウングレードで改善しない場合、VS Code 本体を 1.103.2 以前に戻すと安定します。
- Windows:ZIP 版のポータブル配布が最も手早く安全です。インストーラ版は上書き不可のため、クリーンアンインストールやユーザープロファイル退避が必要になり手間がかかります。ZIP を任意フォルダへ展開し、同一マシンで複数バージョンを併存させることも可能です。
- macOS:既存の
Visual Studio Code.appを別名にしてから古いバージョンを配置すると、戻しやすくなります。 - Linux:
.tar.gzの展開版を使うとシステムのパッケージ管理に影響を与えず試せます。
自動更新の無効化(User Settings / settings.json)
{
"update.mode": "none",
"extensions.autoUpdate": false,
"extensions.autoCheckUpdates": false
}
ロールバック直後に最新版へ戻らないよう、上記を適用してから起動します。
3) ダウングレード後のリロードと再接続
- 拡張のバージョンを固定したら、VS Code 右下の 「再読み込み(Reload)」 またはアプリの完全終了 → 再起動を実施。
- コマンドパレット(F1)→ 「Azure: Sign Out」 → もう一度 「Azure: Sign In」 を行い、資格情報の再バインドを促します。
- AML Studio から再度 「VS Code (Desktop)」 を押下して接続。
これで Fetching subscription details… が消え、サブスクリプション・ワークスペースの選択ダイアログへ進めます。
4) どうしても繋がらない場合の代替策(Web 版 VS Code)
ローカル環境の制約や企業ポリシーでバージョン固定が難しい場合は、ブラウザ版 VS Code(vscode.dev)の利用を検討してください。ローカル拡張に依存しないため、今回の互換性問題の影響を受けません。拡張の深いネイティブ連携が必要な一部機能は制限されますが、緊急避難としては有効です。
なぜ CLI のサインインは通るのに VS Code だけ止まるのか
Azure CLI(az login)はローカルのブラウザまたはデバイスコードで AAD に対してトークンを取得し、CLI 内の認証キャッシュで ARM(Azure Resource Manager)への呼び出しを完結します。一方、VS Code 側は拡張ホスト内で拡張同士が協調し、Azure アカウント・サブスクリプションの解決や AML リソースの列挙を行います。
今回のケースでは、VS Code 1.104 系の内部 API 変更に対し、AML 拡張のハンドシェイク処理(アクティベーション・イベント、認証フローの委譲、サブスクリプション取得の連携など)が追随できておらず、Subscription details 読み出しフェーズでハングする、という構図です。
トラブルの切り分けと確認ポイント
| 確認ポイント | 方法 | 期待/判定 |
|---|---|---|
| 拡張のバージョン | code --list-extensions --show-versions | ms-toolsai.vscode-ai が 1.2.0~1.2.1、ms-toolsai.vscode-ai-remote が 1.2.0 なら OK |
| VS Code 本体のバージョン | ヘルプ → バージョン情報 もしくは code --version | 1.103.2 以下 なら安全側 |
| Azure サインイン状態 | コマンドパレット → Azure: Sign In/Out | サインアウト→サインインやり直しで改善する場合は認証キャッシュ不整合 |
| ネットワーク・プロキシ | CLI で az account list | CLI が通って VS Code だけダメなら、今回の互換性問題が本命 |
再発防止チェックリスト(貼り出し用)
- 拡張:AML(1.2.0~1.2.1)/AML-Remote(1.2.0)に固定。自動更新は 無効。
- VS Code:安定運用が必要なら 1.103.2 にロック。
"update.mode": "none"。 - プロファイル:不要な拡張は無効化。複数ウィンドウの混在を避ける。
- 起動順序:拡張更新 → 必ず再起動 → AML Studio から接続。
- 検証用マシン:更新の先行リングを用意し、本番適用前に接続確認。
運用現場で役立つ小ワザ
拡張を手動で固定(VSIX)
マーケットプレースから目的のバージョンの .vsix を保存しておけば、ネットワーク隔離環境でも復旧が容易です。インストールは次の通り。
code --install-extension ms-toolsai.vscode-ai-1.2.1.vsix
code --install-extension ms-toolsai.vscode-ai-remote-1.2.0.vsix
導入後は必ず自動更新をオフにします。
ポータブル運用で「ロールバック即試験」
Windows では ZIP 版を使い、展開先に data フォルダを作ると ポータブルモードで動作します。既存の環境を壊さずに別バージョンを即座に検証できます。
設定テンプレートの配布
チーム内で次の settings.json スニペットを共有すると、更新事故を減らせます。
{
"update.mode": "none",
"extensions.autoUpdate": false,
"extensions.autoCheckUpdates": false,
"workbench.startupEditor": "none",
"telemetry.telemetryLevel": "off"
}
ログの取り方(ベンダー問い合わせ用)
- メニュー → ヘルプ → 開発者ツールの切り替え:Console のエラーを保存。
- 出力 パネル(Ctrl + Shift + U)で Azure Machine Learning チャンネル/Azure チャンネルを確認。
%USERPROFILE%\.vscode\extensions(Windows)または~/.vscode/extensions(macOS/Linux)の該当拡張フォルダのpackage.jsonでバージョンを控える。
既知の安定パターン(現場報告の要約)
| VS Code | AML(vscode-ai) | AML-Remote(vscode-ai-remote) | 結果 | 備考 |
|---|---|---|---|---|
| 1.103.2 | 1.2.0 | 1.2.0 | ◎ 安定 | 最有力の固定組み合わせ |
| 1.104.x | 1.2.1 | 1.2.0 | ○ 多くの環境で安定 | 自動更新オフが前提 |
| 1.104.x | 1.2.0 | 1.4.3 | △ 一部で安定 | 環境依存あり |
| 1.104.x | 最新 | 最新 | × 失敗 | 互換性バグに該当 |
よくある質問(FAQ)
Q. 拡張を削除して入れ直しても直りません。
A. バージョンの組み合わせが原因なので「入れ直し(最新)」では解決しません。指定の安定バージョンへダウングレードし、自動更新を無効にしてください。
Q. VS Code Insiders を使っています。影響は?
A. Insiders は本体 API の変化が激しく、拡張の追随が遅れることがあります。問題が出たら、安定版(Stable)に切り替え、バージョンを固定してください。
Q. 会社のプロキシ環境です。関係ありますか?
A. 今回の主因は拡張と本体の互換性です。とはいえプロキシでのトークン交換や WebSocket が阻害されると症状が似ることがあります。CLI が通り VS Code だけ失敗する場合は、まず互換性を疑い、復旧後にネットワーク要因を確認するのが効率的です。
Q. 公式修正版が出たらどうすれば?
A. リリースノートで修正内容を確認し、テスト用マシンで再現性が消えるかを検証したうえで本番に適用してください。更新を戻す際は、自動更新を段階的に有効化する運用が安全です。
背景解説:何が「壊れた」のか
VS Code 1.104 系で拡張ホストや認証周りの内部 API に変更が入り、AML 拡張の初期化時に Azure アカウント情報の受け渡し・サブスクリプション列挙・AML リソース解決の一連の処理で整合性が崩れました。結果として、Fetching subscription details… の表示から先へ進めません。拡張側の更新で修正されるまでは、安定バージョンへ固定するのが現実解です。
現場向け「コピペ手順」まとめ
# 1) いったん VS Code を終了
# 2) 起動 → 拡張ビュー → それぞれ指定バージョンへ
# - ms-toolsai.vscode-ai: 1.2.0 または 1.2.1
# - ms-toolsai.vscode-ai-remote: 1.2.0
# - 各カードの歯車 → 自動更新を無効化
# 3) 設定 (settings.json) で自動更新を止める
# "update.mode": "none"
# "extensions.autoUpdate": false
# "extensions.autoCheckUpdates": false
# 4) VS Code を完全終了 → 再起動
# 5) AML Studio → Compute Instance → [VS Code (Desktop)] で接続
# ※ サブスクリプション一覧が表示されたら復旧完了
補足:現在の拡張バージョンの確認コマンド
code --list-extensions --show-versions | grep "ms-toolsai.vscode-ai"
出力例:
[email protected]
[email protected]
最後に(安全なアップデート設計)
IDE 本体と拡張は「同時に最新」にすると不安定化しやすく、CI/CD と同様に段階的ロールアウトが有効です。検証用マシンで VS Code/拡張の更新を先行させ、AML Studio からの接続~ノートブック実行までをチェックリスト化して毎回同じ観点で確認するだけで、障害の大半は未然に防げます。
今回のような互換性バグが発生した場合も、安定版の組み合わせに固定→自動更新を止める→復旧後に計画的に上げ直すという基本手順を押さえておけば、影響を最小限に抑えられます。

コメント