VS Code から Azure Functions をデプロイすると「Internal error: Expected value to be neither null nor undefined: newSiteName」が出る原因と対処法

VS Code から Azure Functions をデプロイしようとしたときに、突然「Internal error: Expected value to be neither null nor undefined: newSiteName」というエラーだけが出て先へ進めなくなると、原因が見えずとても困ります。同じプロジェクトでも以前は成功していた、PC を変えても再現する――そんな状況を想定しながら、このエラーの意味と、現場で再現性の高かった具体的な対処手順をまとめます。

目次

エラー「Internal error: Expected value to be neither null nor undefined: newSiteName」の概要

VS Code の Azure Functions 拡張機能から Function App をデプロイするときに、以下のようなメッセージだけが表示されて失敗するケースがあります。

Internal error: Expected value to be neither null nor undefined: newSiteName

典型的な状況は次のとおりです。

  • これまで同じ手順・同じ Function App に対して正常にデプロイできていた。
  • ある日を境に、デプロイ時の同じタイミングで必ず上記エラーが出るようになった。
  • プロジェクトを新規作成しても、同じアカウント/同じサブスクリプションで再現する。
  • 別の PC、別の開発者環境でも再現し、ローカルのコード自体とは関係なさそうに見える。

このエラーは、Azure Functions 拡張機能が内部で使っている newSiteName(デプロイ先 Function App 名)を取得できず、null または undefined の状態で処理を続行してしまったことがトリガーです。つまり、「どの Function App にデプロイすべきか」という情報が、拡張機能側で解決できていない状態です。

なぜ newSiteName が取得できなくなるのか

VS Code から Azure Functions をデプロイする際、拡張機能は概ね次のような流れで情報を取得しています。

  1. サインイン中の Azure アカウント情報を取得。
  2. 選択中のテナント/サブスクリプションを元に、Function App の一覧を取得。
  3. ユーザーが選択した既存 Function App または新規作成する App の名前を newSiteName として保持。
  4. newSiteName を使って Zip デプロイ等を実行。

どこかの段階で情報が欠落していると、newSiteName が null または undefined のまま扱われ、今回のような「Internal error」が発生します。よくあるパターンを整理すると、次のように分類できます。

原因の種類典型的なパターンnewSiteName が取れない理由
キャッシュの汚損VS Code を長期間アップデートしながら使っている/Insiders と安定版を行き来している古いスキーマのキャッシュが残っており、Function App 情報が正しく復元できない
サインイン情報の不整合アカウントを切り替えた/ゲストテナントに招待された有効なアクセストークンが取得できず、サブスクリプション・リソースが列挙できない
テナント・サブスクリプションの選択ミス下部ステータスバーのテナントが意図しないものになっている別のテナント側には対象 Function App が存在しないため、選択結果が空になる
拡張機能のバグあるバージョン以降で急に再現し始めた/複数環境で一斉に発生内部状態のチェック不足により、null のまま処理を進めてしまう

実際の現場では、キャッシュの汚損とテナント・サブスクリプション周りの情報の食い違いが同時に起きているケースも多く、単に「サインインし直した」だけでは直らないことがあります。そのため、少し手間はかかりますが、キャッシュ削除・再インストール・テナントの明示選択まで含めて一気に対処するのが効果的です。

解決の優先度と全体フロー

「どこから手を付ければいいか」を整理するために、優先度の高い順に対処フローをまとめます。

優先度対処内容目的実施時間の目安
1A. VS Code キャッシュの手動削除壊れた状態のキャッシュや古い拡張機能の残骸を一掃する5〜10 分
2B. Azure Functions 拡張機能の再インストール拡張機能本体の破損や中途半端なアップデートを解消する5 分前後
3C. Azure への再サインイントークンの失効やアカウント切り替えによる不整合を解消する数分
4D. 「Accounts & Tenant」でテナントを明示選択正しいテナント・サブスクリプションを VS Code に認識させる数分
5E. 拡張機能/CLI の最新化・Azure CLI でのデプロイ拡張機能固有のバグかどうかを切り分ける10〜20 分

以降では、それぞれの手順をより詳しく解説していきます。

A. VS Code キャッシュの手動削除

まず最初に試したいのが、VS Code のキャッシュ削除です。過去のバージョンでは Azure 拡張機能に「Azure: Clear Cache」というコマンドが用意されていましたが、現在のバージョンでは存在しないことが多く、手動でキャッシュフォルダーを削除する方法が最も確実です。

キャッシュ削除の基本手順

  1. VS Code をすべて終了する(バックグラウンドで残っていないことを確認)。
  2. OS ごとに対応する VS Code の設定フォルダーを開く。
  3. 以下のキャッシュ関連フォルダーを削除する。
  4. VS Code を再起動する。

OS 別の VS Code 設定フォルダー

OS設定フォルダーのパス
WindowsC:\Users\<ユーザー名>\AppData\Roaming\Code
macOS~/Library/Application Support/Code
Linux~/.config/Code

VS Code Insiders を使っている場合は、フォルダー名が Code - Insiders となっている場合があります。

削除対象となるキャッシュフォルダー

設定フォルダー以下にある、次のフォルダーを削除します(存在しないものはスキップして構いません)。

  • CachedData
  • Cache
  • Code Cache
  • GPUCache

これらは キャッシュ専用のフォルダーであり、削除しても拡張機能やユーザー設定そのものは消えません。初回起動時に再生成されます。

キャッシュ削除後に確認するポイント

  • VS Code 再起動後、Azure 拡張機能が自動的に再読み込みされるまで数秒待つ。
  • Azure パネルでアカウントが正しくサインインされているか確認する。
  • Function App 一覧が正常に表示されるか確認する。

この段階でエラーが解消されれば、原因はほぼキャッシュ汚損だったと考えて良いでしょう。

B. Azure Functions 拡張機能の再インストール

キャッシュ削除でも改善しない場合は、Azure Functions 拡張機能自体が破損している可能性があります。VS Code の自動アップデート途中で中断された場合などに、拡張機能だけが中途半端な状態になることがあります。

拡張機能の再インストール手順

  1. 拡張機能ビューを開く(ショートカット:Ctrl + Shift + X / macOS は Cmd + Shift + X)。
  2. 検索ボックスに Azure Functions と入力し、対象の拡張機能を見つける。
  3. 拡張機能を右クリックし、「アンインストール」を選択。
  4. VS Code の再起動を求められた場合は指示に従う。
  5. 再起動後、再度拡張機能ビューを開き、Azure Functions をインストール。

再インストール後に確認すべきこと

  • Azure 拡張機能全体(Azure Account や Azure Resources など)も最新化されているか。
  • Azure パネルからサインインが求められた場合は、指示に従って再サインインする。
  • 以前設定していたデプロイ先 Function App が一覧に表示されているか。

拡張機能を入れ直すことで、内部で保持していた状態(選択済みの Function App など)がリセットされ、newSiteName の取得が正常に行われるようになるケースがあります。

C. Azure への再サインイン

Azure へのサインイン状態が中途半端なときも、Function App 情報の取得に失敗し、newSiteName が null になることがあります。特に、次のような状況では注意が必要です。

  • ブラウザー側でアカウントを切り替えた。
  • 組織テナントにゲストとして招待された/テナントが増えた。
  • パスワード変更や多要素認証の再構成を行った。

サインアウトと再サインインの手順

  1. VS Code の左側アクティビティバーから Azure アイコンをクリック。
  2. Azure パネル内のアカウント名を右クリックし、「サインアウト」を選択。
  3. VS Code をいったん閉じて、再度起動する。
  4. Azure パネルで再びサインインを求められたら、デプロイに利用しているアカウントでログインする。

サインイン後、対象サブスクリプションや Function App が正しく見えるようになれば、トークンやテナントの問題だったと判断できます。

別アカウントに紐づく Function App に注意

企業環境などでは、開発用サブスクリプションと本番サブスクリプションを別テナント・別アカウントで運用していることもあります。この場合、

  • ブラウザーは A アカウントでサインインしているが、
  • VS Code では B アカウントで Azure にサインインしている、

という状態になると、Function App 一覧に目的のリソースが出てこず、newSiteName も空のままになります。必ず、Azure Portal でリソースを操作しているのと同じアカウントで VS Code にもサインインしているか確認しましょう。

D. Accounts & Tenant 拡張機能でテナントを明示的に選択

マルチテナント環境で開発している場合、サインインしているアカウントが複数のテナントに属していることがよくあります。たとえば、

  • 自社テナント(開発・検証用リソース)
  • 親会社テナント(共通サービス)
  • 顧客テナント(ゲストとしてアクセス)

のような構成で、VS Code のステータスバー右下には現在選択中のテナント名が表示されます。ここが意図しないテナントになっていると、対象サブスクリプションや Function App が見つからず、結果的に newSiteName が取得できません。

テナントを明示的に選択する手順

  1. VS Code ウィンドウ右下のステータスバーに表示されているテナント名(またはアカウント情報)をクリック。
  2. 「Accounts」や「Tenant」関連のメニューから、対象サブスクリプションが含まれるテナントを選択。
  3. テナントを切り替えた後、Azure パネルのサブスクリプション一覧を更新する。
  4. 対象サブスクリプションにチェックが入っていることを確認する。

ここで重要なのは、「サインインしているアカウント」と「現在選択されているテナント/サブスクリプション」は別物だという点です。特にゲストテナントをまたいで作業している場合は、少しの操作ミスで見えているリソースが切り替わってしまいます。

マルチテナント環境でのおすすめ設定

  • 日常的に使わないサブスクリプションにはチェックを入れないようにしておく。
  • テナント切り替え後は、必ず「Function App 一覧に対象リソースが表示されているか」を確認する習慣をつける。
  • チーム内で「どのテナント/サブスクリプションにどの Function App があるか」を一覧化しておく。

E. 拡張機能/CLI の最新化と Azure CLI での直接デプロイ

キャッシュ削除・拡張機能再インストール・再サインイン・テナント選択を一通り行っても解決しない場合、Azure Functions 拡張機能自体のバグが疑われます。この場合は、以下の 2 つの観点で切り分けを行うと、原因を追いやすくなります。

  • VS Code・Azure 拡張機能を最新バージョンに更新する。
  • Azure CLI を利用して、拡張機能を介さずに直接 Function App にデプロイしてみる。

VS Code・拡張機能の更新

  • VS Code 本体の「更新の確認」を実行し、最新バージョンへ更新。
  • 拡張機能ビューで Azure 関連拡張機能にアップデートがないか確認し、まとめて更新。

更新後は必ず VS Code を再起動してから、再度デプロイを試してください。

Azure CLI による config-zip デプロイの例

VS Code 側の問題かどうかを切り分けるには、Azure CLI を使ったデプロイが有効です。ここでは、Zip ファイルを使った config-zip デプロイの例を示します。

  1. デプロイ対象のアプリケーションを Zip に固める。
    例:プロジェクトルートで以下のような Zip を作成
    myfunc.zip など
  2. ターミナル(またはコマンドプロンプト/PowerShell)を開き、次のようなコマンドを実行。
az login
az account set --subscription "&lt;サブスクリプション名または ID&gt;"
az functionapp deployment source config-zip ^
  --resource-group &lt;リソースグループ名&gt; ^
  --name &lt;Function App 名&gt; ^
  --src &lt;zip ファイルのパス&gt;

(^ は Windows PowerShell の行継続記号です。macOS / Linux の場合は \ を使用してください。)

このコマンドでデプロイが正常に完了する場合、Azure 側のリソースやアクセス権限は問題ないと判断できます。つまり、VS Code の拡張機能側でのみ newSiteName が正しく扱われていない可能性が高くなります。

パターン別の切り分け結果と考え方

ここまでの手順を踏まえたとき、どのパターンに当てはまるかで原因を推定できます。

状況想定される原因次の一手
CLI デプロイは成功するが、VS Code からのデプロイのみで newSiteName エラーAzure Functions 拡張機能のバグまたは内部状態の不整合拡張機能のバージョン情報を控え、アップデートを待つ/Issue 登録を検討
CLI デプロイも失敗し、Function App 自体へのアクセスができないAzure 側のアクセス権限・ネットワーク制限・Function App 設定の問題ポータル上のアクセス制限・権限(RBAC)・ファイアウォール設定を確認
キャッシュ削除・再サインインであっさり解決キャッシュ汚損または期限切れトークンの残留定期的なキャッシュクリアや VS Code 再起動を運用に取り入れる
テナント切り替えで Function App が突然一覧に現れる誤ったテナント・サブスクリプションを選択していたチーム内でテナント・サブスクリプション対応表を共有し、ミスを減らす

根本原因をもう一度整理する

ここまでの内容を、エラーの直接原因と背景要因に分けて整理します。

直接原因

  • Azure Functions 拡張機能が、デプロイ先 Function App 名(newSiteName)を取得・保持できていない。
  • newSiteName が null もしくは undefined のまま内部処理に渡され、「Expected value to be neither null nor undefined」という内部エラーとして表面化している。

主な背景要因

  • VS Code のキャッシュ汚損
    長期間の利用やアップデートの繰り返しにより、古い形式のキャッシュが残り続け、最新の拡張機能と噛み合わなくなる。
  • テナント・サブスクリプション情報のミスマッチ
    マルチテナント環境やゲストテナント利用時に、意図しないテナントが選択されている。
  • サインイン状態の不整合
    トークンの失効やアカウント切り替えにより、VS Code が想定通りの権限で Azure にアクセスできていない。
  • 一部バージョンの拡張機能のバグ
    特定バージョンの Azure Functions 拡張機能において、newSiteName の null チェックが不十分で、内部エラーとしてユーザーに露出している可能性がある。

ユーザー報告ベースでは、2024 年末〜 2025 年初にかけて同様の事象が増えているという声もあり、該当期間の拡張機能バージョンに不具合が含まれていた可能性も考えられます。いずれにせよ、キャッシュ削除やテナント選択の見直しで回避できるケースが多く、まずは本記事の対処フローを順番に試すのが現実的です。

チームで共有したいチェックリスト

複数の開発者・複数の PC で同じエラーが再現している場合、問題は個人の環境に閉じていません。チームとして共通のチェックリストを持っておくと、原因の切り分けがスムーズになります。

観点確認すべき質問確認方法
アカウントAzure Portal と VS Code は同じアカウントでログインしているか?Azure Portal 右上のアカウントと、VS Code Azure パネルのアカウントを見比べる
テナント対象 Function App が存在するテナントを VS Code で選択しているか?ステータスバーや Accounts & Tenant 拡張機能でテナント名を確認
サブスクリプション目的のサブスクリプションにチェックが入っているか?Azure 拡張機能の「サブスクリプションの選択」から確認
キャッシュ最近 VS Code のキャッシュ削除を行ったか?本記事の手順に従い、CachedData 等のフォルダーを削除
拡張機能Azure Functions 拡張機能はチーム全員で同じバージョンか?拡張機能ビューでバージョンを確認し、揃える
CLI デプロイAzure CLI からは正常にデプロイできるか?az functionapp deployment source config-zip をチームの代表環境で試す

よくある質問(FAQ)

Q1. PC を変えても同じエラーが出るのですが、Azure 側の障害でしょうか?

A. 一時的な障害の可能性もゼロではありませんが、マルチテナント環境やアカウント設定の齟齬が原因であることが多いです。まずは、アカウント・テナント・サブスクリプションの組み合わせを全員で確認し、CLI デプロイも試してみると切り分けやすくなります。

Q2. Function App やリソースグループを作り直した方がよいですか?

A. ほとんどの場合、Azure 側のリソースを作り直す必要はありません。VS Code 側のキャッシュや拡張機能の状態が原因であることが多いため、本記事の A〜E の対処を一通り試したうえで、それでも解決しない場合にのみ新規リソースの作成を検討すると良いでしょう。

Q3. キャッシュフォルダーを削除すると、VS Code の設定や拡張機能は全部消えてしまいますか?

A. 本記事で削除対象としているのは キャッシュ専用のフォルダーであり、ユーザー設定やインストール済み拡張機能そのものは別の場所に保存されています。VS Code を再起動すると必要なキャッシュは自動的に再生成されます。ただし、カスタムスニペットや設定ファイルを独自に配置している場合は、念のためバックアップを取っておくと安心です。

Q4. Azure CLI でのデプロイには慣れていないのですが、必須ですか?

A. CLI デプロイは必須ではありませんが、「Azure 側のリソースや権限に問題がないか」を切り分ける強力な手段です。VS Code 側の問題か、Azure 側の問題かを明確にできるため、チームに一人は CLI デプロイを試せるメンバーがいると、トラブルシュート全体がスムーズになります。

Q5. 2024 年末〜 2025 年初にかけて発生例が増えているという話を聞きましたが、本当ですか?

A. ユーザーコミュニティ等ではそのような報告も見られますが、環境やバージョンによって再現状況は異なります。重要なのは、キャッシュ削除・拡張機能の再インストール・テナント/サブスクリプションの確認といった基本的な対処を押さえておくことです。バージョン固有の問題だったとしても、これらの手順で多くのケースを回避・軽減できます。

再発防止のためのベストプラクティス

最後に、同じトラブルで何度も悩まされないように、日常運用に組み込みやすい再発防止策をまとめます。

  • 定期的な VS Code 再起動とキャッシュクリア
    長時間 VS Code を起動しっぱなしにせず、アップデートのタイミングなどで再起動&キャッシュ削除を行う。
  • テナント・サブスクリプションの一覧化
    「どのテナントのどのサブスクリプションに、どの Function App があるか」をチームで共有するドキュメントを用意する。
  • アカウント運用ルールの明確化
    開発用アカウント・本番用アカウントを分ける場合は、VS Code でどのアカウントを使うかを明文化し、混在させない。
  • CLI デプロイ手順のチーム共有
    Azure CLI での config-zip デプロイ手順を Wiki などにまとめ、「VS Code 以外の経路でもデプロイできる状態」を維持する。
  • 拡張機能バージョンの統一
    チーム内で Azure Functions 拡張機能のバージョンを揃え、「誰かだけ動いて誰かは動かない」といった状況を避ける。

まとめ

VS Code から Azure Functions をデプロイした際に表示される「Internal error: Expected value to be neither null nor undefined: newSiteName」というメッセージは、一見すると原因が分かりにくい内部エラーですが、実態としては 「デプロイ先 Function App 名が拡張機能側で解決できていない」ことを意味しています。

実務上の対処としては、次の流れでチェックするのがおすすめです。

  1. VS Code のキャッシュ削除 → 再起動(CachedData 等の削除)。
  2. Azure Functions 拡張機能の再インストールと、Azure 拡張機能全体の最新化。
  3. Azure への再サインインと、テナント/サブスクリプションの明示的な選択。
  4. 必要に応じて Azure CLI による直接デプロイを試し、VS Code 拡張機能固有の問題かを切り分ける。

これらを一通り実施することで、多くのケースでエラーを解消し、再び VS Code からスムーズに Azure Functions をデプロイできるはずです。同様のトラブルが再発した場合にも、本記事のチェックリストを参照しながら、原因を体系的に絞り込んでいってください。

この記事を書いた人

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

コメント

コメントする

目次