bug: agent stops responding after multiple concurrent tabs

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

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
静か
技術スタック
python, typescript
領域
api, backend, frontend

調査の方向性

Start with the deployed reproduction using three browser tabs, then inspect main.py, especially BoundedMemorySaver(max_threads=200) and the streaming request path. Check whether concurrent sessions, connection limits, rate limits, or unsurfaced backend errors explain the hang; done means independent tabs receive responses, and resource failures show an error instead of waiting silently.

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

説明

Bug

The agent stops responding when multiple browser tabs are open against the deployed app. On the third tab, the agent hangs after the user sends a message — no response, no streaming indicator, no error.

Steps to reproduce

  1. Open the deployed app in tab 1, send a message (e.g. "visualize a musical chart") — works fine
  2. Open tab 2, send a message — works fine
  3. Open tab 3, send a message (e.g. "I want to understand the difference between BFS and DFS...") — agent never responds

The UI shows the user messages and suggestion chips ("Try these Prompts") but no assistant response arrives. No loading indicator, no error state.

Screenshot

![Production screenshot showing 3 messages sent with no agent response](screenshot attached in issue)

The chat shows:

  • "visualize a musical chart"
  • "Create a 3D animation of a sphere turning into an icosahedron..."
  • "I want to understand the difference between BFS and DFS. Create an interactive comparison on a node graph."

None received a response. Suggestion chips are visible but the agent is unresponsive.

Possible causes

  1. Thread/session exhaustion — The agent uses BoundedMemorySaver(max_threads=200) in main.py. Multiple tabs may be creating separate threads that exhaust the pool or hit a concurrency limit.
  2. WebSocket/SSE connection limit — The browser or server may be hitting a connection limit for streaming responses.
  3. LangGraph checkpoint contention — Multiple concurrent sessions writing to the in-memory checkpointer could cause deadlocks.
  4. OpenAI API rate limiting — Multiple concurrent requests to GPT-5.4 could hit rate limits with no visible error surfaced to the user.
  5. Missing error handling — The frontend may not surface backend errors, making it look like the agent is "thinking" forever.

Expected behavior

Each tab should operate as an independent session. If a resource limit is reached, the user should see an error message rather than silent failure.

Environment

  • Deployed on Render
  • Agent: LangGraph + CopilotKit middleware
  • Model: GPT-5.4 via langchain_openai
  • Checkpointer: BoundedMemorySaver(max_threads=200)
主要言語
TypeScript
スター
1.6k
フォーク
202
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

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

CopilotKit/OpenGenerativeUI のほかの issue

CopilotKit/OpenGenerativeUI の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

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

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