mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-04-08 03:00:28 -04:00
fix: persist ResultMessage errors to session and simplify adapter
- Append COPILOT_ERROR_PREFIX marker when convert_message produces a StreamError, so the error card survives page refresh. - Collapse duplicate ternaries into a single if/else block.
This commit is contained in:
@@ -216,15 +216,11 @@ class SDKResponseAdapter:
|
||||
responses.append(StreamFinish())
|
||||
elif sdk_message.subtype in ("error", "error_during_execution"):
|
||||
raw_error = str(sdk_message.result or "Unknown error")
|
||||
is_transient = is_transient_api_error(raw_error)
|
||||
responses.append(
|
||||
StreamError(
|
||||
errorText=(
|
||||
FRIENDLY_TRANSIENT_MSG if is_transient else raw_error
|
||||
),
|
||||
code=("transient_api_error" if is_transient else "sdk_error"),
|
||||
)
|
||||
)
|
||||
if is_transient_api_error(raw_error):
|
||||
error_text, code = FRIENDLY_TRANSIENT_MSG, "transient_api_error"
|
||||
else:
|
||||
error_text, code = raw_error, "sdk_error"
|
||||
responses.append(StreamError(errorText=error_text, code=code))
|
||||
responses.append(StreamFinish())
|
||||
else:
|
||||
logger.warning(
|
||||
|
||||
@@ -1218,7 +1218,7 @@ async def stream_chat_completion_sdk(
|
||||
extra,
|
||||
)
|
||||
|
||||
# Log errors being sent to frontend
|
||||
# Persist error markers so they survive page refresh
|
||||
if isinstance(response, StreamError):
|
||||
logger.error(
|
||||
"%s Sending error to frontend: %s (code=%s)",
|
||||
@@ -1226,6 +1226,13 @@ async def stream_chat_completion_sdk(
|
||||
response.errorText,
|
||||
response.code,
|
||||
)
|
||||
session.messages.append(
|
||||
ChatMessage(
|
||||
role="assistant",
|
||||
content=f"{COPILOT_ERROR_PREFIX} {response.errorText}",
|
||||
)
|
||||
)
|
||||
ended_with_stream_error = True
|
||||
|
||||
yield response
|
||||
|
||||
|
||||
Reference in New Issue
Block a user