[Bug] Handle Gemini error responses safely in /quick ai

オープン
#82 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

@CodeMatrix1 がすでに取り組んでいます。

2026年3月30日 から。

  • #81 @CodeMatrix1 による — マージされずにクローズ
  • #83 @CodeMatrix1 による — オープン

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
52/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
typescript

調査の方向性

/quick aiのエントリーポイントから開始し、response.data.candidates[0].content.parts[0].text周辺のGeminiレスポンス処理を追跡します。過負荷または一時的な利用不能のレスポンスを再現し、その後、明示的なプロバイダーメッセージが表示され、予期しないレスポンスが汎用的な失敗を引き起こすのではなくログに記録されることを確認します。

索引モデルが issue の本文から書いたものです。

説明

bug
What happened?

Description

When /quick ai is used with Gemini and the provider returns an error payload instead of generated candidate text, the AI flow fails.

The current implementation assumes the Gemini response always contains text at:

response.data.candidates[0].content.parts[0].text

In practice, Gemini can return an error object instead of candidates, for example when the model is overloaded or temporarily unavailable. In those cases, /quick ai does not handle the response shape safely.

Expected behavior

  • /quick ai should safely handle Gemini responses that do not include candidates
  • if Gemini returns an explicit error payload, the app should surface the provider message instead of failing
  • if Gemini returns an unexpected shape without generated text, the app should log the error in gemini response.

Actual behaviour

  • /quick ai assumes the Gemini response always contains generated text at response.data.candidates[0].content.parts[0].text
  • when Gemini returns an error payload instead of candidates, the AI flow fails
  • proper logs are not generated
  • the modal falls back to a generic failure message instead of handling the provider response safely
Steps to reproduce
  1. Install the Quick Replies app
  2. Configure Gemini as the AI provider
  3. Trigger /quick ai
  4. Enter a prompt and click Generate
  5. Hit a Gemini error response such as overload / temporary unavailability
  6. Observe that the response does not contain generated candidate text
Relevant ScreenShots
Image
Version

v8.2.1

What browsers are you seeing the problem on?

Firefox

主要言語
TypeScript
スター
7
フォーク
21
PR マージ指標
30日以内にマージされた PR はありません

環境構築

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

RocketChat/Apps.QuickReplies のほかの issue

RocketChat/Apps.QuickReplies の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。