From 86e5efb0ae3acc1ae574e745a509803a53aba443 Mon Sep 17 00:00:00 2001 From: Shannon Sands Date: Sat, 6 Jun 2026 08:42:35 +1000 Subject: [PATCH] Preserve Telegram onboarding fallback errors --- hermes_cli/web_server.py | 5 +++++ tests/hermes_cli/test_web_server.py | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/hermes_cli/web_server.py b/hermes_cli/web_server.py index 5e3a706dcf..040b01b4d3 100644 --- a/hermes_cli/web_server.py +++ b/hermes_cli/web_server.py @@ -3500,6 +3500,11 @@ def _telegram_onboarding_request_sync( status_code=502, detail="Telegram setup service is unavailable. Try again shortly.", ) from exc + except Exception as exc: + raise HTTPException( + status_code=502, + detail="Telegram setup service is unavailable. Try again shortly.", + ) from exc try: parsed = response.json() diff --git a/tests/hermes_cli/test_web_server.py b/tests/hermes_cli/test_web_server.py index 31cf2c8f33..004367769c 100644 --- a/tests/hermes_cli/test_web_server.py +++ b/tests/hermes_cli/test_web_server.py @@ -1182,6 +1182,26 @@ class TestWebServerEndpoints: assert kwargs["headers"]["Content-Type"] == "application/json" assert kwargs["headers"]["User-Agent"].startswith("HermesDashboard/") + def test_telegram_onboarding_worker_request_maps_unexpected_errors( + self, monkeypatch + ): + import hermes_cli.web_server as ws + + monkeypatch.setenv("TELEGRAM_ONBOARDING_URL", "not a valid url") + + with pytest.raises(ws.HTTPException) as exc: + ws._telegram_onboarding_request_sync( + "POST", + "/v1/telegram/pairings", + body={"bot_name": "Hermes Agent"}, + ) + + assert exc.value.status_code == 502 + assert ( + exc.value.detail + == "Telegram setup service is unavailable. Try again shortly." + ) + def test_telegram_onboarding_start_strips_poll_token(self, monkeypatch): import hermes_cli.web_server as ws