Repository navigation
Conversation
Contributor
|
The following comment was made by an LLM, it may be inaccurate: |
Contributor
|
Thanks for tracking this down and including tests, @moritzWa! The If v2 has the same gap (a custom provider stream going silent with no idle timeout), a pull request against the |
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue for this PR
Closes #54014
Type of change
What does this PR do?
If the provider stream sends nothing for 30 minutes, the processor stops the turn with an error: "No response from the provider for 30 minutes. The turn was stopped; send a message to retry." The session goes idle with that error instead of showing as working forever.
tool-calluntil itstool-result/tool-error). Subagents, long commands and permission prompts can legitimately keep the stream silent for hours. Silence while the model is still writing a tool's input does count, since that is where a stalled stream shows up.OPENCODE_STREAM_IDLE_TIMEOUT_MSchanges the limit;0turns it off. 30 minutes stays well above long but legitimate silences, like a provider buffering a large tool call (cursor-opencode-provider allows 20 minutes for that).How did you verify your code works?
Two tests in
test/session/processor-effect.test.tswith a 400 ms limit: a stream that sends one chunk and hangs stops with the error and the session goes idle (it times out without this change); a tool that runs 1.5 s does not trip it.bun typecheckand the session tests pass.prompt.test.tshas load-dependent 5 s timeouts that fail intermittently ondevtoo.Screenshots / recordings
No UI change: the error shows in the transcript like any other provider error.
Checklist