Hanabi9248 opened a new issue, #4866:
URL: https://github.com/apache/rocketmq-dashboard/issues/4866

   ### Before Creating the Bug Report
   
   - [x] I have searched the [open 
issues](https://github.com/apache/rocketmq-dashboard/issues) of this repository 
and believe that this is not a duplicate.
   
   - [x] This is a defect in RocketMQ Studio, not a usage question and not a 
defect in another Apache RocketMQ repository.
   
   - [x] I can reproduce this on the current `master` branch, or I have stated 
the exact version I am running below.
   
   
   ### Studio Version
   
   rocketmq-studio at 4c697f07acde460e2344375cb1f82669f5b270fd
   
   ### Runtime Environment
   
   Windows; Node.js 24.19.0, Vitest 4.1.10. Reproduced with the real 
useAgentRun and useConversationTimeline hooks together, mocking only the 
API/stream boundaries.
   
   ### Connected RocketMQ Cluster
   
   No live cluster needed for this frontend regression.
   
   ### Build Toolchain
   
   _No response_
   
   ### Describe the Bug
   
   When a run finishes and the subsequent timeline request fails, the live 
answer is cleared even though the persisted transcript has not replaced it. 
useConversationTimeline.refetch catches the request error and resolves, so 
finishStream treats the refresh as successful and clears blocksRef.
   
   ### Steps to Reproduce
   
   1. Render useConversationTimeline(7) and pass its refetch to useAgentRun(7), 
as the AI page does.
   2. Resolve the initial timeline request with an empty transcript.
   3. Send a message and deliver a text_delta containing an answer.
   4. End the stream and reject the next timeline request with Error("timeline 
unavailable").
   5. Inspect blocksRef after send settles.
   
   ### What Did You Expect to See?
   
   Keep the live answer when history cannot be refreshed, and surface the 
refresh failure.
   
   ### What Did You See Instead?
   
   blocksRef.current becomes [] although it contained the answer immediately 
before the refresh. The timeline error is set, but the run cleanup has already 
discarded the answer.
   
   ### Additional Context
   
   The existing run-hook refresh-failure test mocks refetchTimeline as 
rejecting; the actual timeline hook swallows that rejection. A test composing 
both real hooks reproduces the difference. I can submit a focused fix and 
regression test.
   
   ### Are You Willing to Submit a Pull Request?
   
   - [x] Yes, I am willing to submit a pull request.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to