Skip to content

fix(gateway): honor proxy env vars in SMS, Slack, Teams, and Google Chat adapters#26657

Closed
EloquentBrush0x wants to merge 1 commit into
NousResearch:mainfrom
EloquentBrush0x:fix/trust-env-sms-slack-teams-google-chat
Closed

fix(gateway): honor proxy env vars in SMS, Slack, Teams, and Google Chat adapters#26657
EloquentBrush0x wants to merge 1 commit into
NousResearch:mainfrom
EloquentBrush0x:fix/trust-env-sms-slack-teams-google-chat

Conversation

@EloquentBrush0x

Copy link
Copy Markdown
Contributor

Summary

aiohttp.ClientSession defaults to trust_env=False, which silently ignores HTTP_PROXY, HTTPS_PROXY, and ALL_PROXY environment variables. Users behind a corporate or network proxy cannot reach external APIs — all outbound requests fail with connection errors, with no indication that the proxy is the cause.

Symmetric with wecom.py (line 276), weixin.py (lines 1055/1268/1274), and matrix.py (no-proxy path) which already set this flag. Complements the open LINE fix (#26635) with the remaining gateway and plugin adapters.

Root cause

Every affected session is constructed without trust_env=True:

File Session use
gateway/platforms/sms.py Persistent Twilio REST session (connect) + fallback session (send) — both hit https://api.twilio.com
gateway/platforms/slack.py Ephemeral response_url POST — hits https://hooks.slack.com/… callback URLs
plugins/platforms/teams/adapter.py Standalone send session — hits login.microsoftonline.com (token) then Bot Framework service URL
plugins/platforms/google_chat/adapter.py Standalone send session — hits https://chat.googleapis.com/v1/…

Changes

  • gateway/platforms/sms.py: trust_env=True on the persistent Twilio session in connect() and on the fallback session in send().
  • gateway/platforms/slack.py: trust_env=True on the ephemeral response_url POST session.
  • plugins/platforms/teams/adapter.py: trust_env=True on the standalone-send session.
  • plugins/platforms/google_chat/adapter.py: trust_env=True on the standalone-send session.

WhatsApp sessions are intentionally excluded — they connect to http://127.0.0.1:{bridge_port} (local bridge process) and must not be routed through a system proxy.

Validation

  • tests/gateway/test_sms.py: 39/39 pass (sequential, -n1; xdist port-binding race is pre-existing)
  • tests/gateway/test_slack.py: all pass
  • tests/gateway/test_google_chat.py: standalone-send tests fail due to google-auth not installed in the local venv — identical failure on main without this PR (pre-existing env issue, not introduced here)
  • tests/gateway/test_teams.py: same pre-existing env skip as Google Chat
  • No behavior change for users not behind a proxy (trust_env=True is a no-op when no proxy env vars are set)

…eams, Google Chat adapters

aiohttp.ClientSession defaults to trust_env=False, which silently ignores
HTTP_PROXY, HTTPS_PROXY, and ALL_PROXY environment variables. Users behind
a corporate or network proxy cannot reach external APIs on any of these
platforms — all outbound requests fail with connection errors.

Symmetric with wecom.py (line 276), weixin.py (lines 1055/1268/1274), and
matrix.py (no-proxy path) which already set this flag. Complements the
open LINE fix (NousResearch#26635) with the remaining gateway and plugin adapters.

Changed:
- gateway/platforms/sms.py: persistent Twilio session (connect) + fallback
  session (send) — both hit https://api.twilio.com
- gateway/platforms/slack.py: ephemeral response_url POST session —
  hits https://hooks.slack.com/... callback URLs
- plugins/platforms/teams/adapter.py: standalone send session —
  hits login.microsoftonline.com (token) + Bot Framework service URL
- plugins/platforms/google_chat/adapter.py: standalone send session —
  hits https://chat.googleapis.com/v1/...

WhatsApp sessions are excluded: they connect to http://127.0.0.1:{port}
(local bridge) and must not be routed through a system proxy.
@alt-glitch alt-glitch added type/bug Something isn't working comp/gateway Gateway runner, session dispatch, delivery comp/plugins Plugin system and bundled plugins platform/slack Slack app adapter platform/sms SMS (Twilio) adapter P2 Medium — degraded but workaround exists labels May 16, 2026
teknium1 added a commit that referenced this pull request May 17, 2026
…tors

Adds release-note attribution mappings for 9 contributors from group 4:
- @EloquentBrush0x (PR #26657)
- @subtract0 (PR #25658)
- @zwolniony (PR #26961)
- @that-ambuj (PR #26582)
- @zccyman (PR #25294)
- @lidge-jun (PR #26814)
- @phoenixshen (PR #26768)
- @AhmetArif0 (PR #26635)
- (francip already mapped from prior PR #26134 attribution)

#27147 dropped from this batch — already landed on main as 4b17c24.
@teknium1

Copy link
Copy Markdown
Contributor

Merged via PR #27308 — your commit was cherry-picked onto current main as part of a batch salvage of low-risk new-contributor PRs. Authorship preserved (fix(gateway): add trust_env=True to aiohttp sessions in SMS, Slack, Teams, Google Chat adapters). Thanks for the contribution.

@teknium1 teknium1 closed this May 17, 2026
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
…tors

Adds release-note attribution mappings for 9 contributors from group 4:
- @EloquentBrush0x (PR NousResearch#26657)
- @subtract0 (PR NousResearch#25658)
- @zwolniony (PR NousResearch#26961)
- @that-ambuj (PR NousResearch#26582)
- @zccyman (PR NousResearch#25294)
- @lidge-jun (PR NousResearch#26814)
- @phoenixshen (PR NousResearch#26768)
- @AhmetArif0 (PR NousResearch#26635)
- (francip already mapped from prior PR NousResearch#26134 attribution)

NousResearch#27147 dropped from this batch — already landed on main as 4b17c24.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/gateway Gateway runner, session dispatch, delivery comp/plugins Plugin system and bundled plugins P2 Medium — degraded but workaround exists platform/slack Slack app adapter platform/sms SMS (Twilio) adapter type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants