Aborting with incomplete response

1. Caddy version (caddy version):

2.2.1, custom built with Caddy Docker Proxy and Cloudflare support

2. How I run Caddy:

a. System environment:

OS: Ubuntu 20.04.1 LTS
Docker: 19.03.8
Docker Compose: 1.23.2

b. Command:

docker-compose up -d

c. Service/unit/compose file:

---
version: "3.4"

services:
  caddy:
    build: .
    env_file:
      - .caddy-env
    container_name: caddy
    volumes:
      - /var/www/files:/var/www
      - /var/run/docker.sock:/var/run/docker.sock
      - caddy_data:/data
    ports:
      - 80:80
      - 443:443
    labels:
      caddy_1.email: "i.am@chrisrees.dev"
      caddy_1.admin: "off"
      caddy_2: (cloudflare-tls)
      caddy_2.tls.dns: "cloudflare {env.CLOUDFLARE_API_KEY}"
      caddy_3: files.chrisrees.dev
      caddy_3.file_server: "browse"
      caddy_3.root: "* /var/www"
      caddy_3.import: "cloudflare-tls"
    restart: unless-stopped

  codex:
    image: ajslater/codex
    container_name: codex
    environment:
      - PUID=992 # ubooquity
      - PGID=995 # media
      - TZ=America/New_York
      - UMASK_SET=002
    volumes:
      - /data/config/codex:/config
      - /data/media/Comics:/comics
    ports:
      - 9810:9810
    depends_on:
      - caddy
    labels:
      caddy: codex.chrisrees.dev
      # caddy: comics.chrisrees.dev
      caddy.reverse_proxy: "{{upstreams 9810}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.import: "cloudflare-tls"
    restart: unless-stopped

  ddclient:
    image: ghcr.io/linuxserver/ddclient
    container_name: ddclient
    environment:
      - PUID=988 # ddclient
      - PGID=988 # ddclient
      - TZ=America/New_York
    volumes:
      - /data/config/ddclient:/config
    restart: unless-stopped

  dozzle:
    image: amir20/dozzle
    container_name: dozzle
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 9999:8080
    depends_on:
      - caddy
    labels:
      caddy: dozzle.chrisrees.dev
      caddy.reverse_proxy: "{{upstreams 8080}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.import: "cloudflare-tls"
    restart: unless-stopped

  grocy:
    image: ghcr.io/linuxserver/grocy
    container_name: grocy
    environment:
      - PUID=982 # grocy
      - PGID=995 # media
      - TZ=America/New_York
      - UMASK_SET=002
    volumes:
      - /data/config/grocy:/config
    ports:
      - 9283:80
    depends_on:
      - caddy
    labels:
      caddy: grocy.chrisrees.dev
      caddy.reverse_proxy: "{{upstreams 80}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.import: "cloudflare-tls"
    restart: unless-stopped

  lidarr:
    image: ghcr.io/linuxserver/lidarr
    container_name: lidarr
    environment:
      - PUID=994 # lidarr
      - PGID=995 # media
      - TZ=America/New_York
      - UMASK_SET=002
    volumes:
      - /data/config/lidarr:/config
      - /data:/data
    ports:
      - 8686:8686
    depends_on:
      - caddy
      - sabnzbd
    labels:
      caddy: lidarr.chrisrees.dev
      caddy.reverse_proxy: "{{upstreams 8686}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.import: "cloudflare-tls"
    restart: unless-stopped

  lychee:
    image: ghcr.io/linuxserver/lychee
    container_name: lychee
    env_file: .lychee-env
    environment:
      - PUID=981 # lychee
      - PGID=995 # media
      - TZ=America/New_York
      - UMASK_SET=002
    volumes:
      - /data/config/lychee:/config
      - /data/media/sync/Serneum/files/Pictures/lychee:/pictures
    ports:
      - 9284:80
    depends_on:
      - caddy
      - mariadb
    labels:
      caddy: lychee.chrisrees.dev
      caddy.reverse_proxy: "{{upstreams 80}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.import: "cloudflare-tls"
    restart: unless-stopped

  mariadb:
    image: ghcr.io/linuxserver/mariadb
    container_name: mariadb
    environment:
      - PUID=118 # mysql
      - PGID=995 # media
      - TZ=America/New_York
      - UMASK_SET=002
    ports:
      - 3306:3306
    volumes:
      - /data/config/mariadb:/config
    restart: unless-stopped

  mylar:
    image: ghcr.io/linuxserver/mylar3:nightly
    container_name: mylar
    environment:
      - PUID=991 # mylar
      - PGID=995 # media
      - TZ=America/New_York
      - UMASK_SET=002
    volumes:
      - /data/config/mylar:/config
      - /data:/data
    ports:
      - 8090:8090
    depends_on:
      - caddy
      - sabnzbd
    labels:
      caddy: mylar.chrisrees.dev
      caddy.reverse_proxy: "{{upstreams 8090}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.import: "cloudflare-tls"
    restart: unless-stopped

  nextcloud:
    image: ghcr.io/linuxserver/nextcloud
    container_name: nextcloud
    environment:
      - PUID=989 # nextcloud
      - PGID=995 # media
      - TZ=America/New_York
      - UMASK_SET=002
    volumes:
      - /data/config/nextcloud:/config
      - /data/media/sync:/data
    ports:
      - 9443:443
    depends_on:
      - caddy
      - mariadb
    labels:
      caddy: nextcloud.chrisrees.dev
      caddy.reverse_proxy: "{{upstreams 443}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.reverse_proxy.transport: http
      caddy.reverse_proxy.transport.tls_insecure_skip_verify: "{{\"\"}}"
      caddy.encode: "gzip"
      caddy.import: "cloudflare-tls"
    restart: unless-stopped

  nzbhydra:
    image: ghcr.io/linuxserver/nzbhydra2
    container_name: nzbhydra
    environment:
      - PUID=987 # nzbhydra
      - PGID=995 # media
      - TZ=America/New_York
      - UMASK_SET=002
    volumes:
      - /data/config/nzbhydra:/config
      - /data:/data
    ports:
      - 5076:5076
    depends_on:
      - caddy
      - sabnzbd
    labels:
      caddy: hydra.chrisrees.dev
      caddy.reverse_proxy: "{{upstreams 5076}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.import: "cloudflare-tls"
    restart: unless-stopped

  organizr:
    image: organizr/organizr
    container_name: organizr
    environment:
      - PUID=985 # organizr
      - PGID=995 # media
      - TZ=America/New_York
      - UMASK_SET=002
    volumes:
      - /data/config/organizr:/config
      - /data:/data
    ports:
      - 8001:80
    depends_on:
      - caddy
    labels:
      caddy: organizr.chrisrees.dev
      caddy.reverse_proxy: "{{upstreams 80}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.import: "cloudflare-tls"
    restart: unless-stopped

  plex:
    image: ghcr.io/linuxserver/plex
    container_name: plex
    environment:
      - PUID=117 # plex
      - PGID=995 # media
      - TZ=America/New_York
      - VERSION=docker
      - UMASK_SET=002
    volumes:
      - /data/config/plex:/config
      - /data/media:/data
    ports:
      - 32400:32400
    depends_on:
      - caddy
    labels:
      caddy: plex.chrisrees.dev
      caddy.reverse_proxy: "{{upstreams 32400}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.import: "cloudflare-tls"
    devices:
      - /dev/dri:/dev/dri
    restart: unless-stopped

  radarr:
    image: ghcr.io/linuxserver/radarr
    container_name: radarr
    environment:
      - PUID=995 # radarr
      - PGID=995 # media
      - TZ=America/New_York
      - UMASK_SET=002
    volumes:
      - /data/config/radarr:/config
      - /data:/data
    ports:
      - 7878:7878
    depends_on:
      - caddy
      - sabnzbd
    labels:
      caddy: radarr.chrisrees.dev
      caddy.reverse_proxy: "{{upstreams 7878}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.import: "cloudflare-tls"
    restart: unless-stopped

  sabnzbd:
    image: ghcr.io/linuxserver/sabnzbd
    container_name: sabnzbd
    environment:
      - PUID=993 # sabnzbd
      - PGID=995 # media
      - TZ=America/New_York
      - UMASK_SET=002
    volumes:
      - /data/config/sabnzbd:/config
      - /data/usenet:/data/usenet
    ports:
      - 8080:8080
    depends_on:
      - caddy
    labels:
      caddy: sabnzbd.chrisrees.dev
      caddy.reverse_proxy: "{{upstreams 8080}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.import: "cloudflare-tls"
    restart: unless-stopped

  signald:
    image: finn/signald
    container_name: signald
    volumes:
      - /data/config/signald/run:/signald
    restart: unless-stopped

  sonarr:
    image: ghcr.io/linuxserver/sonarr:preview
    container_name: sonarr
    environment:
      - PUID=997 # sonarr
      - PGID=995 # media
      - TZ=America/New_York
      - UMASK_SET=002
    volumes:
      - /data/config/sonarr:/config
      - /data:/data
    ports:
      - 8989:8989
    depends_on:
      - caddy
      - sabnzbd
    labels:
      caddy: sonarr.chrisrees.dev
      caddy.reverse_proxy: "{{upstreams 8989}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.import: "cloudflare-tls"
    restart: unless-stopped

  speedtest:
    image: henrywhitaker3/speedtest-tracker
    container_name: speedtest
    environment:
      - PUID=984 # speedtest
      - PGID=995 # media
      - TZ=America/New_York
      - UMASK=002
      - OOKLA_EULA_GDPR=true
      - AUTH=true
    volumes:
      - /data/config/speedtest:/config
    ports:
      - 8765:80
    depends_on:
      - caddy
    logging:
      driver: "json-file"
      options:
        max-file: "10"
        max-size: "200k"
    labels:
      caddy: speedtest.chrisrees.dev
      caddy.reverse_proxy: "{{upstreams 80}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.import: "cloudflare-tls"
    restart: unless-stopped

  syncthing:
    image: ghcr.io/linuxserver/syncthing
    container_name: syncthing
    environment:
      - PUID=990 # syncthing
      - PGID=995 # media
      - TZ=America/New_York
      - UMASK_SET=002
    volumes:
      - /data/config/syncthing:/config
      - /data/media/sync:/data
    ports:
      - 8384:8384
      - 22000:22000
      - 21027:21027/udp
    depends_on:
      - caddy
    labels:
      caddy: sync.chrisrees.dev
      caddy.reverse_proxy: "/* {{upstreams 8384}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.import: "cloudflare-tls"
    restart: unless-stopped

  thelounge:
    image: ghcr.io/linuxserver/thelounge
    container_name: thelounge
    environment:
      - PUID=983 # thelounge
      - PGID=995 # media
      - TZ=America/New_York
      - UMASK_SET=002
    volumes:
      - /data/config/thelounge:/config
    ports:
      - 9000:9000
    depends_on:
      - caddy
    labels:
      caddy: lounge.chrisrees.dev
      caddy.reverse_proxy: "{{upstreams 9000}}"
      caddy.reverse_proxy.flush_interval: -1
      caddy.import: "cloudflare-tls"
    restart: unless-stopped

volumes:
  caddy_data: {}

d. My complete Caddyfile or JSON config:

See comment to avoid hitting the character limit

3. The problem I’m having:

I’ve noticed these logs popping up periodically and am unsure of what they really mean or what I can do to solve them

4. Error messages and/or full log output:

yesterday at 3:35 AM  {"level":"error","ts":1609403700.296945,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 3:36 AM  {"level":"error","ts":1609403803.4472125,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 3:38 AM  {"level":"error","ts":1609403906.8651874,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 3:40 AM  {"level":"error","ts":1609404010.735137,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 3:41 AM  {"level":"error","ts":1609404114.2361896,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 3:43 AM  {"level":"error","ts":1609404217.694259,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 3:45 AM  {"level":"error","ts":1609404321.673235,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 3:47 AM  {"level":"error","ts":1609404425.078202,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 3:48 AM  {"level":"error","ts":1609404528.734216,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 3:50 AM  {"level":"error","ts":1609404631.861046,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 3:51 AM  {"level":"error","ts":1609404680.384811,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 3:52 AM  {"level":"error","ts":1609404779.6926677,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:29 AM  {"level":"error","ts":1609428542.659997,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:30 AM  {"level":"error","ts":1609428645.9888477,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:32 AM  {"level":"error","ts":1609428749.9139576,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:34 AM  {"level":"error","ts":1609428853.09779,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:35 AM  {"level":"error","ts":1609428957.150645,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:37 AM  {"level":"error","ts":1609429061.150932,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:39 AM  {"level":"error","ts":1609429165.253752,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:41 AM  {"level":"error","ts":1609429269.079028,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:42 AM  {"level":"error","ts":1609429373.098621,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:44 AM  {"level":"error","ts":1609429476.6597562,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:46 AM  {"level":"error","ts":1609429580.5916452,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:48 AM  {"level":"error","ts":1609429684.6039712,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:49 AM  {"level":"error","ts":1609429788.7203343,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:51 AM  {"level":"error","ts":1609429892.6537583,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:54 AM  {"level":"error","ts":1609430079.6389182,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:54 AM  {"level":"error","ts":1609430079.702885,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:56 AM  {"level":"error","ts":1609430183.7740085,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:58 AM  {"level":"error","ts":1609430287.581291,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 10:59 AM  {"level":"error","ts":1609430391.5822973,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:01 AM  {"level":"error","ts":1609430506.16556,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:01 AM  {"level":"error","ts":1609430507.711836,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:01 AM  {"level":"error","ts":1609430507.7928784,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:03 AM  {"level":"error","ts":1609430610.9539316,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:05 AM  {"level":"error","ts":1609430715.0620363,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:06 AM  {"level":"error","ts":1609430819.0674253,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:08 AM  {"level":"error","ts":1609430922.9815245,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:10 AM  {"level":"error","ts":1609431026.9876127,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:12 AM  {"level":"error","ts":1609431130.1523705,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:16 AM  {"level":"error","ts":1609431397.6590524,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:18 AM  {"level":"error","ts":1609431500.9538388,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:20 AM  {"level":"error","ts":1609431604.951055,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:21 AM  {"level":"error","ts":1609431680.641389,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:22 AM  {"level":"error","ts":1609431779.6955495,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:57 AM  {"level":"error","ts":1609433852.3242965,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 11:59 AM  {"level":"error","ts":1609433969.3511887,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:02 PM  {"level":"error","ts":1609434157.6142793,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:05 PM  {"level":"error","ts":1609434335.946595,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:10 PM  {"level":"error","ts":1609434649.8175187,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:12 PM  {"level":"error","ts":1609434753.3045049,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:14 PM  {"level":"error","ts":1609434857.236571,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:17 PM  {"level":"error","ts":1609435045.7093198,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:19 PM  {"level":"error","ts":1609435149.3935227,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:20 PM  {"level":"error","ts":1609435253.3971536,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:22 PM  {"level":"error","ts":1609435357.382438,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:24 PM  {"level":"error","ts":1609435461.240424,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:26 PM  {"level":"error","ts":1609435564.5079806,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:27 PM  {"level":"error","ts":1609435667.8858945,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:29 PM  {"level":"error","ts":1609435771.3121865,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:31 PM  {"level":"error","ts":1609435874.5859241,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:32 PM  {"level":"error","ts":1609435977.8619628,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:34 PM  {"level":"error","ts":1609436081.768129,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:37 PM  {"level":"error","ts":1609436243.1578662,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:38 PM  {"level":"error","ts":1609436339.6970673,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 12:40 PM  {"level":"error","ts":1609436439.4951704,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 1:17 PM  {"level":"error","ts":1609438637.6115441,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 1:19 PM  {"level":"error","ts":1609438741.1774645,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 1:21 PM  {"level":"error","ts":1609438870.6455677,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 1:22 PM  {"level":"error","ts":1609438974.5989978,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 1:24 PM  {"level":"error","ts":1609439078.3464766,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 1:26 PM  {"level":"error","ts":1609439182.3655074,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 1:28 PM  {"level":"error","ts":1609439286.362469,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 1:30 PM  {"level":"error","ts":1609439438.0095048,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 1:32 PM  {"level":"error","ts":1609439537.6401463,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
yesterday at 3:32 PM  {"level":"info","ts":1609446720.6991441,"logger":"tls","msg":"cleaned up storage units"}
yesterday at 6:40 PM  {"level":"error","ts":1609458049.7018754,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"write tcp 192.168.128.4:443->108.162.216.226:57308: write: connection reset by peer"}
yesterday at 6:41 PM  {"level":"error","ts":1609458064.1281474,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"write tcp 192.168.128.4:443->108.162.216.226:57314: write: broken pipe"}
today at 1:51 AM  {"level":"error","ts":1609483885.5967984,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 1:53 AM  {"level":"error","ts":1609483988.8919003,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 1:54 AM  {"level":"error","ts":1609484092.8145595,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 1:56 AM  {"level":"error","ts":1609484206.8441145,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 1:58 AM  {"level":"error","ts":1609484310.148266,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 2:00 AM  {"level":"error","ts":1609484414.1352534,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 2:02 AM  {"level":"error","ts":1609484545.0905962,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 2:04 AM  {"level":"error","ts":1609484649.145482,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 2:05 AM  {"level":"error","ts":1609484752.5161886,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 2:08 AM  {"level":"error","ts":1609484896.6852808,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 2:10 AM  {"level":"error","ts":1609485000.1186495,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 2:13 AM  {"level":"error","ts":1609485207.4215553,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 2:14 AM  {"level":"error","ts":1609485264.989103,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 2:16 AM  {"level":"error","ts":1609485364.350466,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 2:16 AM  {"level":"error","ts":1609485364.350466,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 8:51 AM  {"level":"error","ts":1609509081.5631945,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 8:51 AM  {"level":"error","ts":1609509081.5631945,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}
today at 8:53 AM  {"level":"error","ts":1609509185.535363,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","error":"context canceled"}

5. What I already tried:

I tried implementing the flush_interval -1 from Context cancelled when Webpack HMR sends updates on all of my services with no luck

6. Links to relevant resources:

Config JSON

{
  "admin": {
    "disabled": true
  },
  "apps": {
    "http": {
      "servers": {
        "srv0": {
          "listen": [
            ":443"
          ],
          "routes": [
            {
              "match": [
                {
                  "host": [
                    "nextcloud.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "encodings": {
                            "gzip": {}
                          },
                          "handler": "encode"
                        },
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "transport": {
                            "protocol": "http",
                            "tls": {
                              "insecure_skip_verify": true
                            }
                          },
                          "upstreams": [
                            {
                              "dial": "192.168.128.6:443"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "speedtest.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "upstreams": [
                            {
                              "dial": "192.168.128.12:80"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "organizr.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "upstreams": [
                            {
                              "dial": "192.168.128.15:80"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "sabnzbd.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "upstreams": [
                            {
                              "dial": "192.168.128.9:8080"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "dozzle.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "upstreams": [
                            {
                              "dial": "192.168.128.8:8080"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "lidarr.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "upstreams": [
                            {
                              "dial": "192.168.128.18:8686"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "lounge.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "upstreams": [
                            {
                              "dial": "192.168.128.14:9000"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "lychee.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "upstreams": [
                            {
                              "dial": "192.168.128.13:80"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "radarr.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "upstreams": [
                            {
                              "dial": "192.168.128.20:7878"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "sonarr.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "upstreams": [
                            {
                              "dial": "192.168.128.21:8989"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "codex.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "upstreams": [
                            {
                              "dial": "192.168.128.16:9810"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "files.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "handler": "vars",
                          "root": "/var/www"
                        },
                        {
                          "browse": {},
                          "handler": "file_server",
                          "hide": [
                            "Caddyfile"
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "grocy.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "upstreams": [
                            {
                              "dial": "192.168.128.7:80"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "hydra.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "upstreams": [
                            {
                              "dial": "192.168.128.17:5076"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "mylar.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "upstreams": [
                            {
                              "dial": "192.168.128.19:8090"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "plex.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "upstreams": [
                            {
                              "dial": "192.168.128.10:32400"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            },
            {
              "match": [
                {
                  "host": [
                    "sync.chrisrees.dev"
                  ]
                }
              ],
              "handle": [
                {
                  "handler": "subroute",
                  "routes": [
                    {
                      "handle": [
                        {
                          "flush_interval": -1,
                          "handler": "reverse_proxy",
                          "upstreams": [
                            {
                              "dial": "192.168.128.11:8384"
                            }
                          ]
                        }
                      ],
                      "match": [
                        {
                          "path": [
                            "/*"
                          ]
                        }
                      ]
                    }
                  ]
                }
              ],
              "terminal": true
            }
          ]
        }
      }
    },
    "tls": {
      "automation": {
        "policies": [
          {
            "subjects": [
              "nextcloud.chrisrees.dev",
              "speedtest.chrisrees.dev",
              "organizr.chrisrees.dev",
              "sabnzbd.chrisrees.dev",
              "dozzle.chrisrees.dev",
              "lidarr.chrisrees.dev",
              "lounge.chrisrees.dev",
              "lychee.chrisrees.dev",
              "radarr.chrisrees.dev",
              "sonarr.chrisrees.dev",
              "codex.chrisrees.dev",
              "files.chrisrees.dev",
              "grocy.chrisrees.dev",
              "hydra.chrisrees.dev",
              "mylar.chrisrees.dev",
              "plex.chrisrees.dev",
              "sync.chrisrees.dev"
            ],
            "issuer": {
              "challenges": {
                "dns": {
                  "provider": {
                    "api_token": "<TOKEN>",
                    "name": "cloudflare"
                  }
                }
              },
              "email": "i.am@chrisrees.dev",
              "module": "acme"
            }
          },
          {
            "issuer": {
              "email": "i.am@chrisrees.dev",
              "module": "acme"
            }
          }
        ]
      }
    }
  }
}

“context canceled” on a request usually means the client closed the connection early; in this case, the proxy started writing the response but couldn’t finish because the client cancelled it. The Go standard library panics here (or at least it used to) but we simply emit a log instead.

I guess we could use more discretion with the log leveling… emit a debug-level log if the error is context.Canceled, otherwise let it stay an error level. It’d be less noisy.

So it sounds like it’s a non-issue just noisy if I’m understanding correctly. If that’s the case, I can live with it but changing the logging level would be nice for the future. I was seeing it somewhat sporadically so I thought it might be a config issue on my side. Thanks!

This topic was automatically closed after 30 days. New replies are no longer allowed.