Usuarios de la red Pampling experimentaban errores intermitentes ERR_CONNECTION_TIMED_OUT al acceder a cualquier subdominio de *.pampl.ing desde Chrome o Edge. El mismo dominio funcionaba correctamente en:
Invoke-WebRequest)curl desde línea de comandosTras descartar DNS, HSTS preload, certificados SSL y firewall:
Test-NetConnection puerto 443 devolvía TcpTestSucceeded: TrueTest confirmatorio definitivo: desactivar QUIC en chrome://flags/#enable-quic (poner en Disabled) hacía que las webs funcionaran inmediatamente.
HTTP/3 (QUIC) sobre UDP 443.
Traefik estaba configurado con --entrypoints.https.http3 y exponía el puerto 443/udp. Cuando un navegador basado en Chromium recibe una respuesta con la cabecera alt-svc: h3=":443", prioriza HTTP/3 sobre HTTP/2 para las siguientes conexiones.
La red corporativa de Pampling (router o firewall) bloqueaba o degradaba el tráfico UDP 443. Chrome intentaba establecer la conexión QUIC sobre UDP, timeaba, y no hacía fallback limpio a HTTP/2 sobre TCP — resultando en el ERR_CONNECTION_TIMED_OUT visible al usuario.
En /data/coolify/proxy/docker-compose.yml, eliminar:
command: → - '--entrypoints.https.http3'ports: → - '443:443/udp'Recrear Traefik:
cd /data/coolify/proxy && docker compose up -d --force-recreate
Verificación: curl -skI https://analytics.pampl.ing | grep -i alt-svc no debe devolver nada.
Tras desactivar HTTP/3 en el servidor, los navegadores con QUIC ya cacheado seguían intentando UDP 443 durante el TTL de la cabecera alt-svc anterior (horas o días).
Para forzar la invalidación inmediata, se añadió un middleware global en Traefik que envía Alt-Svc: clear en todas las respuestas HTTPS.
Crear /data/coolify/proxy/dynamic/alt-svc-clear.yaml:
http:
middlewares:
clear-altsvc:
headers:
customResponseHeaders:
Alt-Svc: "clear"
Añadir en /data/coolify/proxy/docker-compose.yml, sección command::
- '--entrypoints.https.http.middlewares=clear-altsvc@file'
Recrear Traefik. Los ~700 PCs de la empresa reciben la cabecera Alt-Svc: clear en la siguiente petición y olvidan automáticamente el soporte QUIC cacheado.
Verificación: curl -skI https://analytics.pampl.ing | grep -i alt-svc debe devolver alt-svc: clear.
El middleware Alt-Svc: clear solo es necesario mientras haya clientes con QUIC cacheado. Pasadas 48-72h se debe retirar para evitar enviar una cabecera innecesaria:
/data/coolify/proxy/dynamic/alt-svc-clear.yaml--entrypoints.https.http.middlewares=clear-altsvc@file del docker-composeERR_CONNECTION_TIMED_OUT solo en Chrome/Edge y funcionando en Firefox/curl/PowerShell es indicativo de protocolo (QUIC) o caché del navegadoralt-svc durante horas. Forzar invalidación con Alt-Svc: clear es la vía más limpia para propagar el cambio rápidamente