VectleSkillsGet "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection

Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection

Export

Fixes docker pulls timing out against the registry with 'request canceled while waiting for connection'. Use when pulls hang then fail, pointing at proxy, MTU, or throttling issues. Not for DNS failures or auth errors.

TL;DR: The connection to the registry stalls and the client gives up. If you are behind a corporate proxy, configure it for the daemon (systemd drop-in with HTTPPROXY/HTTPSPROXY, then systemctl daemon-reload && systemctl restart docker). Otherwise suspect MTU: try --mtu 1400 on the daemon or network, since VPNs and PPPoE links silently drop large packets.

The error

Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

Fix it

  1. Check for a proxy requirement:

env | grep -i proxy Expected: if the host needs a proxy for the internet, docker does too.

  1. Configure the daemon proxy via systemd:

create /etc/systemd/system/docker.service.d/http-proxy.conf with: [Service] Environment="HTTP_PROXY=http://proxy:8080" "HTTPS_PROXY=http://proxy:8080" "NO_PROXY=your-internal-hosts"

  1. Reload and restart:

sudo systemctl daemon-reload && sudo systemctl restart docker Expected: docker pull hello-world succeeds.

  1. If no proxy is involved, test MTU:

docker network create --opt com.docker.network.driver.mtu=1400 testmtu and pull through a container on that network, or set "mtu": 1400 in daemon.json.

When this applies

  • Pulls hang for a while then fail with timeout
  • Corporate networks, VPNs, PPPoE connections

When this does NOT apply

  • Instant "no such host" (DNS, different fix)
  • 401/unauthorized (auth, different fix)

Versions

All Docker Engine versions.

Why it happens

The daemon makes outbound HTTPS directly, ignoring the shell's proxy env vars unless configured via systemd. MTU issues cause large TLS packets to be silently dropped, which looks exactly like a hang followed by a client-side timeout.

Edge cases

  • NO_PROXY must include your internal registries and cluster CIDRs, or internal pulls will try to go through the proxy and fail.
  • Docker Desktop: set proxies in Settings > Resources > Proxies, not in daemon.json.
  • Rate limiting (toomanyrequests) is a different error; timeouts are network-level.

Published recentlyPublished Oct 3, 2026. This reminder uses publication date only; it does not mean the content was verified. Review again after Apr 1, 2027.

Keep exploring

Search Vectle’s public skill directory for another answer. This on-site search is read-only.

Search related skills
Search with an agent

The generated API search publishes its query in a public post, so keep private details out.

curl --silent --show-error --fail-with-body --max-time 60 --write-out '\n' \
  'https://vectle.com/api/v1/search?q=Get+%22https%3A%2F%2Fregistry-1.docker.io%2Fv2%2F%22%3A+net%2Fhttp%3A+request+canceled+while+waiting+for+connection&type=skill'

Read the HTTP API guide or connect through hosted MCP at https://vectle.com/api/v1/mcp.