Insights

技術情報

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

Google Antigravity を使用中、AI チャットを実行しようとするたびにエラーが発生し、利用できない状態に陥りました。
当初は開発環境(Xcode 等)のアップデートによる影響を疑いましたが、原因を切り分けていくと意外なファイルが影響していることが判明しました。

同様の事象に遭遇した方の参考になれば幸いです。


発生した事象

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)で落ちていることが推測できます。

調査のステップ

1. 外部環境(Xcode / Git)の影響確認

不具合が発生したタイミングが Xcode のアップデート直後だったため、まずはツールチェーンの不整合を疑いました。
実際に、アップデート直後は一時的に git が動作しない状態になっていたため、以下の修復を試みました。

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

しかし、これらで開発ツール群を正常化しても、Antigravity の AI チャットエラーは解消されませんでした。

2. アプリケーション本体の切り分け

次に、Antigravity 自体の設定やキャッシュの破損を疑い、以下のリセット作業を行いました。

  • シェル初期化スクリプト(.zshrc 等)のノイズ除去
  • Antigravity のキャッシュディレクトリ削除
  • ユーザープロファイルの初期化
  • アプリケーション本体の上書きインストール
  • Gemini Code Assist プラグインの再インストール

これらの対策を講じても症状は改善せず、「アプリ本体の問題ではなく、読み込んでいるデータ側に原因がある」可能性が濃厚となりました。

3. プロジェクト単位での切り分け(最小構成テスト)

原因が環境にあるのかプロジェクトにあるのかを特定するため、「空のディレクトリ」をワークスペースとして開いて検証しました。

  • 検証結果: 空のプロジェクトでは AI チャットが正常に動作した。

この結果から、原因は Antigravity 本体ではなく、「特定のプロジェクトに含まれる何らかのファイル」にあることが確定しました。


原因の特定

プロジェクト内のファイルを、ディレクトリ単位・ファイル単位で除外しながら動作確認を繰り返しました。
その結果、ルート直下にある GEMINI.md をプロジェクトから外すと、即座に AI チャットが復旧することを発見しました。

GEMINI.md の状態調査

「Invalid UTF-8」と表示されていたため、該当ファイルの文字コードを詳細に検査しましたが、結果は意外なものでした。

  • 文字コード: UTF-8 (BOMなし)
  • 制御文字: 混入なし
  • ツールによる判定: file -I 等でも正常な UTF-8 と判定される

ファイルそのものが破損しているわけではなく、「正常な UTF-8 ファイルであっても、Antigravity 側の内部処理(プロンプトへの結合や Protobuf への変換)を通る際に、不正なデータとして扱われてしまう」という挙動でした。

なぜエラーが発生したのか(推測)

今回の GEMINI.md は、複数の開発ルールを統合して生成した比較的大きなファイルでした。
正確な仕様は公開されていませんが、以下のいずれかの理由で内部エラーを誘発したと考えられます。

  1. 特別扱いのファイル: Antigravity が GEMINI.md をシステムプロンプトとして自動的に読み込む際、特定の長さや記法でパースに失敗している。
  2. バイト列の分断: 巨大なマルチバイト文字(日本語)を含むテキストを内部でチャンク分割した際、文字の境界が壊れた状態でシリアライズされた。

今回の教訓と対策

今回のトラブルシューティングを通じて、以下の 2 点が重要な学びとなりました。

  1. invalid UTF-8 は必ずしも「ファイルの破損」を意味しない
    ファイル自体が正常でも、それを利用するツール側のバグや処理上限によって、同様のエラーが出るケースがあります。
  2. 切り分けは「最小構成」から始めるのが最短ルート
    環境設定を疑って再インストールを繰り返す前に、「空のプロジェクトでも再現するか」を確認することで、調査範囲を大幅に絞り込むことができました。

対処法

もし同様のエラーに遭遇した場合は、まずプロジェクトルートを確認し、GEMINI.md またはそれに類する指示ファイルを一時的にリネームするか、内容を簡略化してみてください。


執筆者:[あなたの名前/部署名]
キーワード: Google Antigravity, Gemini, UTF-8 Error, トラブルシューティング, 開発効率化