-
-
Notifications
You must be signed in to change notification settings - Fork 36
Description
When the LLM provider returns a 503 Service Unavailable (Overloaded) error during the tool-calling/generation phase, the ECA server does not gracefully handle the failure. Instead of reporting a connection error or retrying, the UI displays Generating... and hangs indefinitely at the @cursor marker.
Environment
- Process:
/home/saulo/.emacs.d/eca/eca server --verbose --log-level debug - Workspace:
~/.emacs.d/ - Mode: Agent
Steps to Reproduce
Set up a Gemini free model (free tier leads to the same more often). E.g., google/gemini-2.5-flash
Initiate a chat with the agent to perform a file edit (e.g., echo "hi" at @/home/saulo/.emacs.d/init.sh).
The LLM begins the response, but the provider returns a 503 error mid-stream.
Observe the chat buffer stuck at:
echo "hi" at @/home/saulo/.emacs.d/init.sh
I will add `echo "hi"` to the `init.sh` file.
Generating...
@cursor(init.org 1:1) @
stop
Attempting to run eca-chat-tool-call-accept-all results in no action.
Logs
The server logs show an unhandled 503 status code from the OpenAI endpoint:
[OPENAI-CHAT] 4952 Unexpected response status: %s body: %s 503 [{
"error": {
"code": 503,
"message": "The model is overloaded. Please try again later.",
"status": "UNAVAILABLE"
}
}]
[OPENAI-CHAT] [4952] response-error {:message "LLM response status: 503 body: [...]"}
Expected Behavior
The ECA server should catch the 503 error, notify the user that the model is overloaded, and terminate the "Generating" state so the user can retry or change models.
Actual Behavior
The process hangs. The stop marker is reached in the buffer, but the internal state machine appears to be waiting for a completion that has been aborted by the server. No logs are produced after the 503 error when trying to interact with the tool calls.