Summary
The V2 TUI retry notice prints an upstream nginx HTML error page verbatim when Little Frank returns HTTP 503. The raw response consumes several lines and exposes transport-level markup instead of a concise provider-unavailable message.
Environment
- OpenCode version: V2 development build; exact build unavailable from the report
- OS: macOS (from reporter context)
- Terminal: tmux; underlying terminal unavailable
- Shell: Unavailable
- Install/channel:
opencode2 development channel
- Active plugins: Unavailable
- Model: Little Frank (
anomaly / OpenAI), medium variant
Reproduction
- Use Little Frank in the V2 TUI.
- Have the provider return an nginx
503 Service Temporarily Unavailable HTML response.
- Wait for the session retry UI to render the scheduled retry.
Expected Behavior
Show a bounded, human-readable retry notice, for example: Retry attempt 3 scheduled: provider temporarily unavailable (HTTP 503).
The raw HTML response may remain available in logs or expandable diagnostics, but should not be printed inline by default.
Actual Behavior
The retry notice includes the complete HTML document:
Retry attempt 3 scheduled: Provider request failed with HTTP 503: <html>
<head><title>503 Service Temporarily Unavailable</title></head>
<body>
<center><h1>503 Service Temporarily Unavailable</h1></center>
<hr><center>nginx</center>
</body>
</html>
[provider.internal]
Additional Context
Summary
The V2 TUI retry notice prints an upstream nginx HTML error page verbatim when Little Frank returns HTTP 503. The raw response consumes several lines and exposes transport-level markup instead of a concise provider-unavailable message.
Environment
opencode2development channelanomaly/ OpenAI), medium variantReproduction
503 Service Temporarily UnavailableHTML response.Expected Behavior
Show a bounded, human-readable retry notice, for example:
Retry attempt 3 scheduled: provider temporarily unavailable (HTTP 503).The raw HTML response may remain available in logs or expandable diagnostics, but should not be printed inline by default.
Actual Behavior
The retry notice includes the complete HTML document:
Additional Context