<figure class="wp-block-image aligncenter"><img src="https://flowgenius.in/wp-content/uploads/2026/01/n8n-queue-mode-proxy-configuration-error.png" alt="Step by Step Guide to solve n8n queue mode proxy configuration error" /><figcaption style="text-align: center;">Step by Step Guide to solve n8n queue mode proxy configuration error</p>
<hr />
</figcaption></figure>
<p style="margin-bottom: 2em; line-height: 1.9;"><strong>Who this is for:</strong> Developers and DevOps engineers running n8n in Queue Mode behind corporate HTTP proxies. <strong>We cover this in detail in the </strong><a href="https://flowgenius.in/n8n-queue-mode-error-guide/">n8n Queue Mode Errors Guide.</a></p>
<p> </p>
<hr />
<h2 style="margin-bottom: 45px; line-height: 1.3;">Quick Diagnosis</h2>
<p style="margin-bottom: 2em; line-height: 1.9;"><strong>Symptom:</strong> n8n starts in <strong>Queue Mode</strong> but logs <code>Proxy configuration error – unable to reach queue endpoint</code> (or similar).</p>
<p style="margin-bottom: 2em; line-height: 1.9;"><strong>Root cause:</strong> The HTTP proxy defined in the environment intercepts or rewrites the internal queue traffic (Redis, RabbitMQ, or the built‑in memory queue), preventing n8n from publishing or consuming jobs.</p>
<p style="margin-bottom: 2em; line-height: 1.9;"><strong>Featured‑snippet solution</strong></p>
<ol style="margin-bottom: 1.8em; line-height: 1.9;">
<li>Remove or correct the <code>HTTP_PROXY</code>/<code>HTTPS_PROXY</code> variables for the queue host.</li>
<li>If a proxy is required for outbound internet calls, set <code>NO_PROXY</code> (or <code>no_proxy</code>) to include the queue host (e.g., <code>NO_PROXY=localhost,127.0.0.1,queue.my‑domain.com</code>).</li>
<li>Restart n8n and verify the queue health endpoint (<code>/health/queue</code>) returns <strong>200 OK</strong>.</li>
</ol>
<div style="margin: 55px 0;">
<hr />
</div>
<h2 style="margin-bottom: 45px; line-height: 1.3;">1. What Triggers the Proxy Configuration Error in n8n Queue Mode?</h2>
<p><strong>If you encounter any </strong><a href="/n8n-queue-mode-environment-variable-missing">n8n queue mode environment variable missing </a><strong>resolve them before continuing with the setup.</strong></p>
<table style="border-collapse: collapse; width: 100%; margin-bottom: 2em;">
<thead>
<tr>
<th style="border: 1px solid #e0e0e0; padding: 13px; text-align: left;">Trigger</th>
<th style="border: 1px solid #e0e0e0; padding: 13px; text-align: left;">Typical Log Message</th>
<th style="border: 1px solid #e0e0e0; padding: 13px; text-align: left;">Why It Happens</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Global <code>HTTP_PROXY</code>/<code>HTTPS_PROXY</code> env vars point to a corporate forward proxy</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Proxy configuration error – unable to reach queue endpoint</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">n8n routes <strong>all</strong> outbound HTTP traffic—including internal queue connections—through the proxy, which refuses or rewrites the request.</td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Missing <code>NO_PROXY</code> entry for the queue service</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Same as above</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">The proxy treats the queue’s hostname/IP as an external address and attempts to forward it, causing connection refusal.</td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Proxy authentication mismatch (username/password)</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Proxy authentication failed</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Queue traffic is sent with wrong credentials; the proxy drops the request.</td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Docker/Kubernetes sidecar proxy interfering with internal network</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Error: connect ECONNREFUSED</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Container network namespace routes internal traffic through the sidecar’s proxy.</td>
</tr>
</tbody>
</table>
<p style="margin-bottom: 2em; line-height: 1.9;"><strong>Key takeaway</strong>: Queue Mode expects <strong>direct, unauthenticated</strong> communication with the queue backend. Any proxy that intercepts this traffic must be explicitly bypassed.</p>
<div style="margin: 55px 0;">
<hr />
</div>
<h2 style="margin-bottom: 45px; line-height: 1.3;">2. Prerequisite Checklist: Verify Your Environment</h2>
<table style="border-collapse: collapse; width: 100%; margin-bottom: 2em;">
<thead>
<tr>
<th style="border: 1px solid #e0e0e0; padding: 13px; text-align: left;">Item</th>
<th style="border: 1px solid #e0e0e0; padding: 13px; text-align: left;">Recommended Setting</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">n8n version</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">≥ 1.0.0 (latest LTS)</td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Queue backend</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Redis 6+, RabbitMQ 3.8+, or built‑in memory</td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Proxy variables</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;"><code>HTTP_PROXY</code>, <code>HTTPS_PROXY</code> **only** for outbound internet calls</td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;"><code>NO_PROXY</code> / <code>no_proxy</code></td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Include queue host (e.g., <code>queue.my‑domain.com,127.0.0.1</code>)</td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Container runtime</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Docker 20+, Kubernetes 1.22+</td>
</tr>
</tbody>
</table>
<p style="margin-bottom: 2em; line-height: 1.9;"><strong>EEFA note</strong> – Older n8n releases hard‑code proxy handling that cannot be overridden.</p>
<div style="margin: 55px 0;">
<hr />
</div>
<h2 style="margin-bottom: 45px; line-height: 1.3;">3. Step‑by‑Step Fix – Adjust Proxy Settings for Queue Mode</h2>
<h3 style="margin-bottom: 45px; line-height: 1.3;">3.1. Inspect Current Proxy Environment</h3>
<p style="margin-bottom: 2em; line-height: 1.9;"><em>Purpose</em>: Confirm which proxy variables are currently exported inside the n8n container or host.</p>
<pre style="background: #fafafa; padding: 20px; border: 1px solid #e0e0e0; overflow: auto;"># List all proxy‑related environment variables
printenv | grep -i proxy
# Example output that causes the error
# HTTP_PROXY=http://proxy.corp.com:3128
# HTTPS_PROXY=http://proxy.corp.com:3128
# NO_PROXY=
</pre>
<h3 style="margin-bottom: 45px; line-height: 1.3;">3.2. Update <code>.env</code> (or Docker‑compose) to Bypass the Queue Host</h3>
<p style="margin-bottom: 2em; line-height: 1.9;"><strong>Option A – Direct edit of <code>.env</code></strong></p>
<pre style="background: #fafafa; padding: 20px; border: 1px solid #e0e0e0; overflow: auto;"># Existing proxy for external APIs
HTTP_PROXY=http://proxy.corp.com:3128
HTTPS_PROXY=http://proxy.corp.com:3128
# Add the queue host to NO_PROXY (no trailing comma!)
NO_PROXY=localhost,127.0.0.1,queue.my-domain.com
</pre>
<p style="margin-bottom: 2em; line-height: 1.9;"><strong>Option B – Docker‑Compose override</strong></p>
<pre style="background: #fafafa; padding: 20px; border: 1px solid #e0e0e0; overflow: auto;">services:
n8n:
image: n8nio/n8n
environment:
- HTTP_PROXY=http://proxy.corp.com:3128
- HTTPS_PROXY=http://proxy.corp.com:3128
- NO_PROXY=localhost,127.0.0.1,queue.my-domain.com
# other config …
</pre>
<p style="margin-bottom: 2em; line-height: 1.9;"><strong>EEFA</strong>: Do <strong>not</strong> add a trailing comma in <code>NO_PROXY</code>; some DNS resolvers treat it as an empty host and break the bypass.</p>
<h3 style="margin-bottom: 45px; line-height: 1.3;">3.3. Restart n8n and Verify Queue Health</h3>
<p style="margin-bottom: 2em; line-height: 1.9;"><em>Purpose</em>: Apply the new environment and confirm the queue backend is reachable.</p>
<pre style="background: #fafafa; padding: 20px; border: 1px solid #e0e0e0; overflow: auto;"># Docker Compose
docker compose up -d n8n
# Kubernetes
kubectl rollout restart deployment/n8n
</pre>
<p style="margin-bottom: 2em; line-height: 1.9;">Now query the health endpoint:</p>
<pre style="background: #fafafa; padding: 20px; border: 1px solid #e0e0e0; overflow: auto;"># Request the queue health check
curl -s http://localhost:5678/health/queue | jq .
</pre>
<p style="margin-bottom: 2em; line-height: 1.9;">Expected JSON response:</p>
<pre style="background: #fafafa; padding: 20px; border: 1px solid #e0e0e0; overflow: auto;">{
"queue": "ok",
"backend": "redis",
"latencyMs": 12
}
</pre>
<p style="margin-bottom: 2em; line-height: 1.9;">If the response is not <code>200 OK</code>, continue to the advanced section.</p>
<div style="margin: 55px 0;">
<hr />
</div>
<h2 style="margin-bottom: 45px; line-height: 1.3;">4. Advanced: Deploy a Dedicated Queue Proxy (Nginx or Traefik)</h2>
<p style="margin-bottom: 2em; line-height: 1.9;">When corporate policy forces all outbound traffic through a forward proxy, you can isolate queue traffic by front‑ending the queue with a lightweight reverse proxy that **does not** forward to the corporate proxy. If you encounter any <a href="/n8n-queue-mode-incorrect-environment-mode">n8n queue mode incorrect environment mode </a>resolve them before continuing with the setup.</p>
<table style="border-collapse: collapse; width: 100%; margin-bottom: 2em;">
<thead>
<tr>
<th style="border: 1px solid #e0e0e0; padding: 13px; text-align: left;">Feature</th>
<th style="border: 1px solid #e0e0e0; padding: 13px; text-align: left;">Nginx</th>
<th style="border: 1px solid #e0e0e0; padding: 13px; text-align: left;">Traefik</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Configuration file size</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Small, static</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Dynamic via labels</td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">TLS termination</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Simple <code>proxy_pass</code></td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Built‑in ACME</td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Health checks</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;"><code>proxy_next_upstream</code></td>
<td style="border: 1px solid #e0e0e0; padding: 13px;"><code>healthcheck.path</code></td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Docker support</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;"><code>nginx:alpine</code></td>
<td style="border: 1px solid #e0e0e0; padding: 13px;"><code>traefik:latest</code></td>
</tr>
</tbody>
</table>
<h3 style="margin-bottom: 45px; line-height: 1.3;">4.1. Nginx Example (Docker)</h3>
<p style="margin-bottom: 2em; line-height: 1.9;"><em>Purpose</em>: Expose Redis on port 6379 without invoking the corporate proxy.</p>
<pre style="background: #fafafa; padding: 20px; border: 1px solid #e0e0e0; overflow: auto;">version: "3.8"
services:
queue-proxy:
image: nginx:alpine
ports:
- "6379:6379"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
restart: unless-stopped
n8n:
image: n8nio/n8n
environment:
- N8N_QUEUE_BROKER=redis://queue-proxy:6379
- HTTP_PROXY=http://proxy.corp.com:3128
- HTTPS_PROXY=http://proxy.corp.com:3128
- NO_PROXY=localhost,127.0.0.1,queue-proxy
depends_on:
- queue-proxy
</pre>
<p style="margin-bottom: 2em; line-height: 1.9;">`nginx.conf` (stream module forwards to the real Redis service):</p>
<pre style="background: #fafafa; padding: 20px; border: 1px solid #e0e0e0; overflow: auto;">events {}
stream {
upstream redis_backend {
server redis:6379;
}
server {
listen 6379;
proxy_pass redis_backend;
# Ensure Nginx does not forward through any external proxy
proxy_bind $remote_addr;
}
}
</pre>
<h3 style="margin-bottom: 45px; line-height: 1.3;">4.2. Traefik Example (Kubernetes)</h3>
<p style="margin-bottom: 2em; line-height: 1.9;"><em>Purpose</em>: Provide a TCP entry point for Redis that bypasses side‑car proxies.</p>
<pre style="background: #fafafa; padding: 20px; border: 1px solid #e0e0e0; overflow: auto;">apiVersion: v1
kind: Service
metadata:
name: queue-proxy
spec:
selector:
app: redis
ports:
- port: 6379
targetPort: 6379
---
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
name: queue-proxy-ingress
spec:
entryPoints:
- redis
routes:
- match: HostSNI(`*`)
services:
- name: queue-proxy
port: 6379
</pre>
<p style="margin-bottom: 2em; line-height: 1.9;"><strong>EEFA</strong>: Ensure the Traefik entry point <code>redis</code> is **not** configured with <code>forwardedHeaders.trustedIPs</code> that point to the corporate proxy; otherwise the same error reappears.</p>
<div style="margin: 55px 0;">
<hr />
</div>
<h2 style="margin-bottom: 45px; line-height: 1.3;">5. Common Pitfalls & EEFA (Error‑Free Assurance) Notes</h2>
<table style="border-collapse: collapse; width: 100%; margin-bottom: 2em;">
<thead>
<tr>
<th style="border: 1px solid #e0e0e0; padding: 13px; text-align: left;">Pitfall</th>
<th style="border: 1px solid #e0e0e0; padding: 13px; text-align: left;">Why It Happens</th>
<th style="border: 1px solid #e0e0e0; padding: 13px; text-align: left;">Fix</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Adding the queue host to <code>NO_PROXY</code> but forgetting the <strong>port</strong> (e.g., <code>queue.my-domain.com:6379</code>)</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;"><code>NO_PROXY</code> matches only the hostname; extra characters break the match.</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Use the hostname alone: <code>NO_PROXY=queue.my-domain.com</code>.</td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Using uppercase <code>NO_PROXY</code> in some containers while the runtime expects lowercase <code>no_proxy</code>.</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Variable name mismatch.</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Set <strong>both</strong>: <code>NO_PROXY=…</code> and <code>no_proxy=…</code>.</td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Proxy authentication credentials contain special characters (<code>@</code>, <code>:</code>) and are not URL‑encoded.</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">The proxy cannot parse the credentials.</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">URL‑encode them, e.g., <code>http://user%40domain:pa%3Ass@proxy.corp.com:3128</code>.</td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Running n8n behind a **sidecar** (e.g., Istio) that automatically injects <code>HTTP_PROXY</code> into every pod.</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Sidecar forces proxy usage for all outbound traffic.</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">
<pre style="background: #fafafa; padding: 20px; border: 1px solid #e0e0e0; overflow: auto;">metadata:
annotations:
sidecar.istio.io/inject: "false"
</pre>
</td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Forgetting to restart **all** containers after env var changes (Docker Compose may only restart the changed service).</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Old containers still use stale variables.</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Run <code>docker compose down && docker compose up -d</code> or <code>kubectl rollout restart deployment/n8n</code> for the whole deployment.</td>
</tr>
</tbody>
</table>
<div style="margin: 55px 0;">
<hr />
</div>
<h2 style="margin-bottom: 45px; line-height: 1.3;">6. Validation Checklist: Confirm the Queue Is Operational</h2>
<table style="border-collapse: collapse; width: 100%; margin-bottom: 2em;">
<thead>
<tr>
<th style="border: 1px solid #e0e0e0; padding: 13px; text-align: left;">Check</th>
<th style="border: 1px solid #e0e0e0; padding: 13px; text-align: left;">Command / Action</th>
<th style="border: 1px solid #e0e0e0; padding: 13px; text-align: left;">Expected Result</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Proxy vars correctly set</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;"><code>printenv | grep -i proxy</code></td>
<td style="border: 1px solid #e0e0e0; padding: 13px;"><code>NO_PROXY</code> includes the queue host</td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Queue health endpoint reachable</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;"><code>curl -s http://localhost:5678/health/queue</code></td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">JSON with <code>"queue":"ok"</code></td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">n8n logs show no proxy errors</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;"><code>docker logs n8n | grep "Proxy"</code></td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">No lines containing <code>Proxy configuration error</code></td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Jobs are processed</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Trigger a simple workflow that queues a task; watch the **Execution** list</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">Execution status changes to **Success** within seconds</td>
</tr>
<tr>
<td style="border: 1px solid #e0e0e0; padding: 13px;">No sidecar proxy interference</td>
<td style="border: 1px solid #e0e0e0; padding: 13px;"><code>kubectl describe pod n8n | grep sidecar</code></td>
<td style="border: 1px solid #e0e0e0; padding: 13px;">No sidecar containers listed</td>
</tr>
</tbody>
</table>
<div style="margin: 55px 0;">
<hr />
</div>
<h2 style="margin-bottom: 45px; line-height: 1.3;">7. Persistent Issues: Debugging Tips & Log Locations</h2>
<ol style="margin-bottom: 1.8em; line-height: 1.9;">
<li><strong>n8n logs</strong> – <code>docker logs n8n</code> or <code>kubectl logs deployment/n8n</code>. Look for <code>ERR_PROXY</code>, <code>ECONNREFUSED</code>, or queue‑initialization messages.</li>
<li><strong>Queue backend logs</strong> – Redis (<code>docker logs redis</code>) or RabbitMQ (<code>docker logs rabbitmq</code>). Verify connection attempts from the n8n container IP.</li>
<li><strong>Network trace</strong> – Capture traffic inside the n8n container to ensure it bypasses the proxy:
<pre style="background: #fafafa; padding: 20px; border: 1px solid #e0e0e0; overflow: auto;">docker exec -it n8n apk add tcpdump
docker exec -it n8n tcpdump -i any port 6379 -c 5
</pre>
</li>
<li><strong>Environment diff</strong> – Compare a working instance vs. the failing one:
<pre style="background: #fafafa; padding: 20px; border: 1px solid #e0e0e0; overflow: auto;">diff <(docker exec good-n8n printenv) <(docker exec bad-n8n printenv) | grep -i proxy
</pre>
</li>
</ol>
<p style="margin-bottom: 2em; line-height: 1.9;">If the error persists after these steps, open an issue on the <strong>n8n GitHub</strong> with relevant logs and proxy configuration details.</p>
<div style="margin: 55px 0;">
<hr />
</div>
<h2 style="margin-bottom: 45px; line-height: 1.3;">Conclusion</h2>
<p style="margin-bottom: 2em; line-height: 1.9;">By correctly scoping proxy variables and explicitly bypassing the queue host with <code>NO_PROXY</code> (or by isolating the queue behind a dedicated reverse proxy), you eliminate the “Proxy configuration error” that blocks n8n’s Queue Mode. The steps above provide a reproducible, production‑ready fix that restores direct, low‑latency communication with Redis, RabbitMQ, or the built‑in memory queue, ensuring reliable job processing in real‑world deployments.</p>
Step by Step Guide to solve n8n queue mode proxy configuration error
Who this is for: Developers and DevOps engineers running n8n in Queue Mode behind corporate HTTP proxies. We cover this in detail in the n8n Queue Mode Errors Guide.
Quick Diagnosis
Symptom: n8n starts in Queue Mode but logs Proxy configuration error – unable to reach queue endpoint (or similar).
Root cause: The HTTP proxy defined in the environment intercepts or rewrites the internal queue traffic (Redis, RabbitMQ, or the built‑in memory queue), preventing n8n from publishing or consuming jobs.
Featured‑snippet solution
Remove or correct the HTTP_PROXY/HTTPS_PROXY variables for the queue host.
If a proxy is required for outbound internet calls, set NO_PROXY (or no_proxy) to include the queue host (e.g., NO_PROXY=localhost,127.0.0.1,queue.my‑domain.com).
Restart n8n and verify the queue health endpoint (/health/queue) returns 200 OK.
1. What Triggers the Proxy Configuration Error in n8n Queue Mode?
Global HTTP_PROXY/HTTPS_PROXY env vars point to a corporate forward proxy
Proxy configuration error – unable to reach queue endpoint
n8n routes all outbound HTTP traffic—including internal queue connections—through the proxy, which refuses or rewrites the request.
Missing NO_PROXY entry for the queue service
Same as above
The proxy treats the queue’s hostname/IP as an external address and attempts to forward it, causing connection refusal.
Proxy authentication mismatch (username/password)
Proxy authentication failed
Queue traffic is sent with wrong credentials; the proxy drops the request.
Docker/Kubernetes sidecar proxy interfering with internal network
Error: connect ECONNREFUSED
Container network namespace routes internal traffic through the sidecar’s proxy.
Key takeaway: Queue Mode expects direct, unauthenticated communication with the queue backend. Any proxy that intercepts this traffic must be explicitly bypassed.
2. Prerequisite Checklist: Verify Your Environment
Item
Recommended Setting
n8n version
≥ 1.0.0 (latest LTS)
Queue backend
Redis 6+, RabbitMQ 3.8+, or built‑in memory
Proxy variables
HTTP_PROXY, HTTPS_PROXY **only** for outbound internet calls
NO_PROXY / no_proxy
Include queue host (e.g., queue.my‑domain.com,127.0.0.1)
Container runtime
Docker 20+, Kubernetes 1.22+
EEFA note – Older n8n releases hard‑code proxy handling that cannot be overridden.
3. Step‑by‑Step Fix – Adjust Proxy Settings for Queue Mode
3.1. Inspect Current Proxy Environment
Purpose: Confirm which proxy variables are currently exported inside the n8n container or host.
# List all proxy‑related environment variables
printenv | grep -i proxy
# Example output that causes the error
# HTTP_PROXY=http://proxy.corp.com:3128
# HTTPS_PROXY=http://proxy.corp.com:3128
# NO_PROXY=
3.2. Update .env (or Docker‑compose) to Bypass the Queue Host
Option A – Direct edit of .env
# Existing proxy for external APIs
HTTP_PROXY=http://proxy.corp.com:3128
HTTPS_PROXY=http://proxy.corp.com:3128
# Add the queue host to NO_PROXY (no trailing comma!)
NO_PROXY=localhost,127.0.0.1,queue.my-domain.com
If the response is not 200 OK, continue to the advanced section.
4. Advanced: Deploy a Dedicated Queue Proxy (Nginx or Traefik)
When corporate policy forces all outbound traffic through a forward proxy, you can isolate queue traffic by front‑ending the queue with a lightweight reverse proxy that **does not** forward to the corporate proxy. If you encounter any n8n queue mode incorrect environment mode resolve them before continuing with the setup.
Feature
Nginx
Traefik
Configuration file size
Small, static
Dynamic via labels
TLS termination
Simple proxy_pass
Built‑in ACME
Health checks
proxy_next_upstream
healthcheck.path
Docker support
nginx:alpine
traefik:latest
4.1. Nginx Example (Docker)
Purpose: Expose Redis on port 6379 without invoking the corporate proxy.
`nginx.conf` (stream module forwards to the real Redis service):
events {}
stream {
upstream redis_backend {
server redis:6379;
}
server {
listen 6379;
proxy_pass redis_backend;
# Ensure Nginx does not forward through any external proxy
proxy_bind $remote_addr;
}
}
4.2. Traefik Example (Kubernetes)
Purpose: Provide a TCP entry point for Redis that bypasses side‑car proxies.
EEFA: Ensure the Traefik entry point redis is **not** configured with forwardedHeaders.trustedIPs that point to the corporate proxy; otherwise the same error reappears.
5. Common Pitfalls & EEFA (Error‑Free Assurance) Notes
Pitfall
Why It Happens
Fix
Adding the queue host to NO_PROXY but forgetting the port (e.g., queue.my-domain.com:6379)
NO_PROXY matches only the hostname; extra characters break the match.
Use the hostname alone: NO_PROXY=queue.my-domain.com.
Using uppercase NO_PROXY in some containers while the runtime expects lowercase no_proxy.
Variable name mismatch.
Set both: NO_PROXY=… and no_proxy=….
Proxy authentication credentials contain special characters (@, :) and are not URL‑encoded.
If the error persists after these steps, open an issue on the n8n GitHub with relevant logs and proxy configuration details.
Conclusion
By correctly scoping proxy variables and explicitly bypassing the queue host with NO_PROXY (or by isolating the queue behind a dedicated reverse proxy), you eliminate the “Proxy configuration error” that blocks n8n’s Queue Mode. The steps above provide a reproducible, production‑ready fix that restores direct, low‑latency communication with Redis, RabbitMQ, or the built‑in memory queue, ensuring reliable job processing in real‑world deployments.