Insights

技術情報

Google Antigravity で `invalid UTF-8` が発生し AI チャットが不能になった

Google Antigravity の AI チャットで invalid UTF-8 エラーが出た原因は GEMINI.md だった

Google Antigravity を使っていたところ、AI チャットを実行するたびにエラーが出て、まったく利用できない状態になりました。
最初は Xcode など開発環境のアップデートが原因かと思いましたが、切り分けていくと、原因はプロジェクト内の GEMINI.md でした。
同じようなエラーで詰まった方の参考になればと思い、調査した内容を残しておきます。


発生したエラー

Antigravity のエディタ上で AI チャットを起動すると、以下のエラーが表示されました。

Error: agent executor error: proto: field google.cloud.aiplatform.master.Part.text contains invalid UTF-8

詳細ログには、次のような記録もありました。

marshal trajectory: marshal: proto: field exa.chat_pb.ChatMessagePrompt.prompt contains invalid UTF-8
failed to commit ... trajectory.generator_metadata[0]: Invalid UTF-8 in protobuf string field
string field contains invalid UTF-8

エラー内容を見る限り、AI に渡そうとしているプロンプト内に、UTF-8 として扱えないデータが含まれているように見えます。
つまり、内部でプロンプトを組み立てて Protocol Buffers に変換する段階で落ちている、という状態だと考えました。


最初に疑ったのは Xcode と Git

不具合が出始めたタイミングが Xcode のアップデート直後だったため、まずは開発環境側を疑いました。
実際、アップデート直後は一時的に git が動かない状態にもなっていたため、以下を確認しました。

  • xcode-select --install の実行
  • xcrun の動作確認
  • git の再設定

ただ、これらを直しても Antigravity の AI チャットエラーは解消しませんでした。
この時点で、Xcode や Git が直接の原因ではなさそうだと判断しました。


Antigravity 側のリセットも効果なし

次に、Antigravity 本体や設定ファイルの破損を疑いました。
試した内容は以下です。

  • シェル初期化スクリプトの確認
  • Antigravity のキャッシュ削除
  • ユーザープロファイルの初期化
  • アプリ本体の上書きインストール
  • Gemini Code Assist プラグインの再インストール

ここまでやっても症状は変わりませんでした。
アプリ本体やキャッシュの問題ではなく、Antigravity が読み込んでいる何かが原因になっている可能性が高そうです。


空のプロジェクトでは正常に動いた

原因が環境全体にあるのか、特定のプロジェクトにあるのかを確認するため、空のディレクトリをワークスペースとして開いてみました。
結果、空のプロジェクトでは AI チャットが正常に動作しました。
ここで、原因は Antigravity 本体ではなく、特定のプロジェクト内にあるファイルだと判断できました。


原因はルート直下の GEMINI.md

プロジェクト内のファイルを、ディレクトリ単位・ファイル単位で外しながら確認しました。
その結果、ルート直下にある GEMINI.md を外すと、AI チャットが復旧しました。
かなり意外でした。
invalid UTF-8 と出ていたので、まずは GEMINI.md の文字コードを疑いましたが、確認した限りではファイル自体に明確な問題はありませんでした。

  • 文字コードは UTF-8
  • BOM なし
  • 制御文字の混入なし
  • file -I でも正常な UTF-8 と判定

つまり、ファイルそのものが壊れていたわけではありません。
正常な UTF-8 の Markdown ファイルでも、Antigravity 側がプロンプトとして読み込む過程で、内部的に不正なデータとして扱ってしまうケースがあるようです。


なぜ起きたのか

ここからは推測です。
今回の GEMINI.md は、複数の開発ルールをまとめた比較的大きなファイルでした。
Antigravity が GEMINI.md を自動的に読み込み、AI への指示としてプロンプトに結合しているとすると、次のような可能性があります。

  • GEMINI.md のサイズが大きすぎて、内部処理で問題が起きた
  • 日本語を含む長い Markdown を分割する過程で、マルチバイト文字の境界が壊れた
  • 特定の記法や文字列が、Antigravity 側のプロンプト変換処理と相性が悪かった

正確な原因は不明です。
ただ、GEMINI.md を外すと即座に直ったため、このファイルがトリガーになっていたのは間違いなさそうです。


対処方法

同じエラーが出た場合は、まずプロジェクトルートにある指示ファイルを確認するのがよさそうです。
特に以下のようなファイルです。

  • GEMINI.md
  • AGENTS.md
  • CLAUDE.md
  • その他、AI エージェント向けのルールファイル

一時的にリネームして、AI チャットが動くか確認します。

GEMINI.md
↓
_GEMINI.md

これで動くようであれば、ファイルの内容を減らして再確認します。
今回のようなケースでは、いきなりアプリを再インストールするよりも、まず空のプロジェクトで再現するか確認した方が早いです。


今回の教訓

invalid UTF-8 と表示されても、必ずしもファイル自体が壊れているとは限りません。
ファイルは正常でも、それを読み込むツール側の処理で失敗することがあります。
今回は、まさにそのパターンでした。
特に AI エディタ系のツールは、プロジェクト内の Markdown や設定ファイルを自動的に読み込むことがあります。エラー内容だけを見ると文字コードの問題に見えますが、実際には「AI に渡すプロンプトの組み立て処理」で落ちている可能性もあります。
まずは空のプロジェクトで試す。
次に、ルート直下の AI 指示ファイルを外す。
この順番で確認すると、かなり早く切り分けられます。