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.mdAGENTS.mdCLAUDE.md- その他、AI エージェント向けのルールファイル
一時的にリネームして、AI チャットが動くか確認します。
GEMINI.md
↓
_GEMINI.md
これで動くようであれば、ファイルの内容を減らして再確認します。
今回のようなケースでは、いきなりアプリを再インストールするよりも、まず空のプロジェクトで再現するか確認した方が早いです。
今回の教訓
invalid UTF-8 と表示されても、必ずしもファイル自体が壊れているとは限りません。
ファイルは正常でも、それを読み込むツール側の処理で失敗することがあります。
今回は、まさにそのパターンでした。
特に AI エディタ系のツールは、プロジェクト内の Markdown や設定ファイルを自動的に読み込むことがあります。エラー内容だけを見ると文字コードの問題に見えますが、実際には「AI に渡すプロンプトの組み立て処理」で落ちている可能性もあります。
まずは空のプロジェクトで試す。
次に、ルート直下の AI 指示ファイルを外す。
この順番で確認すると、かなり早く切り分けられます。