mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-20 15:33:54 +00:00
fix(streaming): distinguish empty-stream exhaustion from connection failure in status message
An exhausted EmptyStreamError previously reported 'Connection to provider failed' — misleading, since the connection succeeded (stream opened) and the provider simply sent nothing. Add a dedicated third branch so users debugging a misconfigured endpoint aren't sent chasing network issues. Follow-up to #64420.
This commit is contained in:
parent
f4af35f90d
commit
92057474f3
1 changed files with 26 additions and 11 deletions
|
|
@ -2949,17 +2949,32 @@ def interruptible_streaming_api_call(agent, api_kwargs: dict, *, on_first_delta=
|
|||
mid_tool_call=False,
|
||||
diag=request_client_holder.get("diag"),
|
||||
)
|
||||
agent._buffer_status(
|
||||
"❌ Provider returned malformed streaming data after "
|
||||
f"{_max_stream_retries + 1} attempts. "
|
||||
"The provider may be experiencing issues — "
|
||||
"try again in a moment."
|
||||
if _is_stream_parse_err else
|
||||
"❌ Connection to provider failed after "
|
||||
f"{_max_stream_retries + 1} attempts. "
|
||||
"The provider may be experiencing issues — "
|
||||
"try again in a moment."
|
||||
)
|
||||
if _is_stream_parse_err:
|
||||
_exhausted_msg = (
|
||||
"❌ Provider returned malformed streaming data after "
|
||||
f"{_max_stream_retries + 1} attempts. "
|
||||
"The provider may be experiencing issues — "
|
||||
"try again in a moment."
|
||||
)
|
||||
elif _is_empty_stream:
|
||||
# The connection SUCCEEDED (stream opened) but the
|
||||
# provider sent no chunks — saying "connection
|
||||
# failed" here sends users chasing network issues
|
||||
# when the problem is the provider/endpoint.
|
||||
_exhausted_msg = (
|
||||
"❌ Provider returned an empty response stream "
|
||||
f"after {_max_stream_retries + 1} attempts. "
|
||||
"The provider may be experiencing issues — "
|
||||
"try again in a moment."
|
||||
)
|
||||
else:
|
||||
_exhausted_msg = (
|
||||
"❌ Connection to provider failed after "
|
||||
f"{_max_stream_retries + 1} attempts. "
|
||||
"The provider may be experiencing issues — "
|
||||
"try again in a moment."
|
||||
)
|
||||
agent._buffer_status(_exhausted_msg)
|
||||
else:
|
||||
_err_lower = str(e).lower()
|
||||
_is_stream_unsupported = (
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue