forked from wrenn/wrenn
fix: improve error feedback for terminal disconnects and host unavailability
Show "[session disconnected]" in terminal when PTY websocket closes cleanly. Map scheduler and agent unavailability errors to 503 with user-friendly message instead of leaking internal details.
This commit is contained in:
@ -332,6 +332,7 @@
|
|||||||
|
|
||||||
if (s.state === 'connected') {
|
if (s.state === 'connected') {
|
||||||
updateSession(id, { state: 'disconnected' });
|
updateSession(id, { state: 'disconnected' });
|
||||||
|
int.term.write('\r\n\x1b[38;2;107;104;98m[session disconnected]\x1b[0m\r\n');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -54,6 +54,8 @@ func agentErrToHTTP(err error) (int, string, string) {
|
|||||||
return http.StatusConflict, "conflict", err.Error()
|
return http.StatusConflict, "conflict", err.Error()
|
||||||
case connect.CodePermissionDenied:
|
case connect.CodePermissionDenied:
|
||||||
return http.StatusForbidden, "forbidden", err.Error()
|
return http.StatusForbidden, "forbidden", err.Error()
|
||||||
|
case connect.CodeUnavailable:
|
||||||
|
return http.StatusServiceUnavailable, "no_hosts_available", "no servers available — try again later"
|
||||||
case connect.CodeUnimplemented:
|
case connect.CodeUnimplemented:
|
||||||
return http.StatusNotImplemented, "agent_error", err.Error()
|
return http.StatusNotImplemented, "agent_error", err.Error()
|
||||||
default:
|
default:
|
||||||
@ -108,6 +110,9 @@ func serviceErrToHTTP(err error) (int, string, string) {
|
|||||||
return http.StatusForbidden, "forbidden", "forbidden"
|
return http.StatusForbidden, "forbidden", "forbidden"
|
||||||
case strings.Contains(msg, "invalid or expired"):
|
case strings.Contains(msg, "invalid or expired"):
|
||||||
return http.StatusUnauthorized, "unauthorized", "invalid or expired credentials"
|
return http.StatusUnauthorized, "unauthorized", "invalid or expired credentials"
|
||||||
|
case strings.Contains(msg, "no online") && strings.Contains(msg, "hosts available"),
|
||||||
|
strings.Contains(msg, "no host has sufficient resources"):
|
||||||
|
return http.StatusServiceUnavailable, "no_hosts_available", "no servers available — try again later"
|
||||||
case strings.Contains(msg, "invalid"):
|
case strings.Contains(msg, "invalid"):
|
||||||
return http.StatusBadRequest, "invalid_request", "invalid request"
|
return http.StatusBadRequest, "invalid_request", "invalid request"
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user