HTTP Proxy Broken After v2026.2.24 Update
v2026.2.24 Regression
Tracked in openclaw/openclaw#26207. A Telegram fix in v2026.2.24 accidentally replaces the global HTTP dispatcher with a bare Agent that ignores HTTP_PROXY / HTTPS_PROXY. All outbound requests fail in proxy-dependent environments. Multiple PRs address this: #26229, #26233, #26239, #26326.
You updated OpenClaw from 2026.2.23 to 2026.2.24. Everything was working. Now all outbound requests fail with "Connection error" or "fetch failed." Your proxy environment variables haven't changed. Rolling back to 2.23 fixes it immediately.
Next Step
Fix now, then reduce repeat incidents
If this issue keeps coming back, validate your setup in Doctor first, then harden your config.
Jump to Section
What the Error Looks Like
After updating to 2026.2.24, you see these in gateway logs or agent output:
The pattern: everything fails. Not just one provider or one channel — all outbound HTTPS requests timeout or fail. If you were on 2.23 yesterday and it worked, and today on 2.24 nothing works, this is almost certainly the regression.
Why This Happens
Telegram fix introduces setGlobalDispatcher
Issue #25682 fixed a Telegram connectivity problem by adding setGlobalDispatcher(new Agent({autoSelectFamily: true})) in the Telegram channel initialization code (~L1151 in the built bundle). This was meant to fix Telegram only, but Agent is process-global.
Bare Agent ignores proxy environment variables
Node's default global dispatcher (or the proxy-aware EnvHttpProxyAgent if configured) reads HTTP_PROXY and HTTPS_PROXY to route requests through your proxy. The bare Agent({}) does not. It connects directly, which times out or gets blocked in proxy-mandatory environments.
Process-wide blast radius
setGlobalDispatcher replaces the dispatcher for all fetch() calls in the entire Node process — not just the Telegram plugin. Every LLM API call, every webhook, every plugin download now bypasses the proxy and fails.
Confirm You Are Affected
openclaw --version # If output is 2026.2.24, you are affected # Also check if proxy env vars are set echo "HTTP_PROXY=$HTTP_PROXY" echo "HTTPS_PROXY=$HTTPS_PROXY" # Quick connectivity test through proxy curl -x "$HTTPS_PROXY" https://api.anthropic.com/v1/messages -I 2>&1 | head -3
Diagnosis checklist:
curl through proxy works → proxy is fine, OpenClaw is the problemcurl also fails → your proxy itself has an issue, not this bugFix A: Downgrade to v2026.2.23 (Immediate)
The fastest fix. Restores the working global dispatcher.
npm install -g [email protected] openclaw gateway restart openclaw --version # should show 2026.2.23
This is the recommended immediate fix. You lose whatever the 2.24 update added, but you get a working proxy back instantly. Upgrade again once a patched version is available.
Fix B: Upgrade to a Patched Version
Multiple PRs fix this regression by replacing the bare Agent with EnvHttpProxyAgent, which respects proxy environment variables:
npm install -g openclaw@latest openclaw gateway restart # Verify the fix openclaw --version openclaw logs --tail 5 | grep -i dispatcher
Check the releases page to confirm the latest version includes the fix (look for mentions of PR #26229, #26233, or #26326).
Fix C: Environment Variable Workaround
If you can't change versions (e.g., managed deployment), you can force Node to use the proxy-aware dispatcher by setting an undici environment variable before the gateway starts:
# In your systemd service file or docker-compose environment:
NODE_OPTIONS="--require=/path/to/proxy-fix.js"
# proxy-fix.js (create this file):
# const { EnvHttpProxyAgent, setGlobalDispatcher } = require('undici');
# setGlobalDispatcher(new EnvHttpProxyAgent());This is a fragile workaround — it races against the Telegram plugin's setGlobalDispatcher. Depending on module loading order, the Telegram code may overwrite your fix. Downgrade (Fix A) or upgrade (Fix B) is strongly preferred.
Verify Proxy Is Working
Expected: Agent responds normally — no "Connection error"
Expected: No errors. May see "using EnvHttpProxyAgent" on patched versions.
Expected: Telegram channel shows healthy, no "fetch failed" errors
Still Stuck?
If you downgraded to 2.23 and still have connection errors, the proxy issue may be unrelated to this regression. Check:
# Is the proxy reachable? curl -x "$HTTPS_PROXY" https://httpbin.org/ip # Is the proxy set in the gateway's environment? # (If running via systemd, check the unit file) systemctl show openclaw-gateway --property=Environment # For Docker, check the container's env docker exec openclaw-gateway env | grep -i proxy
Common gotcha: the proxy environment variables are set in your shell but not in the systemd service or Docker container environment. The gateway process needs the variables in its own environment, not just your login shell.
Run the Doctor
Checks proxy configuration, outbound connectivity, gateway version, and known regressions.
Related Issues
Other connection & proxy problems:
Fix It Faster With Our Tools
Did this guide solve your problem?