Unable to upload large files, N8N + Traefik

Hi, I am using V3.5.1 and N8N stable, I am able to upload small files in the N8N form trigger, but it will time out with large files (650mb wav file). Always times out in 60 seconds. I have added timeouts here, but its not working, what am I doing wrong?

dynamic/dynamic_conf.yml

http:
routers:
# Router for the n8n main UI
n8n-ui:
rule: "Host(n8n.domain.com)"
entryPoints:
- "websecure"
service: "n8n-lb"
middlewares:
- "n8n-auth@file"
- "n8n-cors@file"
#- "n8n-buffering@file"
tls:
certResolver: "mytlschallenge"

# Router for the public webhook endpoint
n8n-webhook-router:
  rule: "Host(`n8n.domain.com`) && PathPrefix(`/webhook`)"
  entryPoints:
    - "websecure"
  service: "n8n-lb"
  middlewares:
    - "n8n-cors@file"
      #- "n8n-buffering@file"
  tls:
    certResolver: "mytlschallenge"

services:
n8n-lb:
loadBalancer:
servers:
- url: "http://n8n-web:5678"
passHostHeader: true
serversTransport: "n8n-transport@file"

serversTransports:
n8n-transport:
forwardingTimeouts:
dialTimeout: "30s"
idleConnTimeout: "600s"
responseHeaderTimeout: "600s"

middlewares:
n8n-auth:
basicAuth:
users:
- "some:stuff"

n8n-cors:
  headers:
    accessControlAllowMethods:
      - "GET"
      - "POST"
      - "PUT"
      - "DELETE"
      - "OPTIONS"
      - "PATCH"
    accessControlAllowHeaders:
      - "Content-Type"
      - "Authorization"
      - "X-Requested-With"
      - "Accept"
      - "Origin"
      - "X-N8N-API-KEY"
    accessControlAllowOriginList:
      - "https://n8n.domain.com"
      - "https://domain.com"
      - "http://localhost"
      - "https://localhost"
    accessControlMaxAge: 100
    addVaryHeader: true

n8n-buffering:
  buffering:
    maxRequestBodyBytes: 5368709120
    memRequestBodyBytes: 1073741824
    retryExpression: "IsNetworkError() && Attempts() <= 2"

entryPoints:
websecure:
address: ":443"
transport:
respondingTimeouts:
readTimeout: "600s"
writeTimeout: "600s"
idleTimeout: "600s"


Error logs:
2025-09-12T22:44:29Z DBG github.com/traefik/traefik/v3/pkg/proxy/httputil/proxy.go:121 > 502 Bad Gateway error="readfrom tcp 172.18.0.2:36248->172.18.0.6:5678: i/o timeout"
49.148.134.55 - usereng [12/Sep/2025:22:43:29 +0000] "POST /form/a1e9420b-d58f-4eb0-a2fc-f958371fb654 HTTP/2.0" 502 11 "-" "-" 121 "n8n-ui@file" "http://n8n-web:5678" 60000ms

docker-compose.yml
services:
traefik:
image: "traefik"
container_name: n8n-traefik
restart: always
command:
- "--api=true"
#- "--api.insecure=true" # Optional, use only during testing
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
- "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
- "--providers.file.directory=/etc/traefik/dynamic"
- "--providers.file.watch=true"
# --- ADD/MODIFY THESE LOGGING LINES ---
- "--log.level=DEBUG" # Set log level to DEBUG for maximum verbosity
- "--accesslog=true" # Enable access logs to see incoming HTTP requests
- "--accesslog.filepath=/dev/stdout" # Direct access logs to stdout (for docker logs)
# --- END LOGGING LINES ---
ports:
- "80:80"
- "443:443"
volumes:
- traefik_data:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./dynamic:/etc/traefik/dynamic:ro
environment:
- N8N_BASIC_AUTH_USER_ENV=${N8N_BASIC_AUTH_USER}
- N8N_BASIC_AUTH_PASSWORD_HASH_ENV=${N8N_BASIC_AUTH_PASSWORD_HASH}
- SUBDOMAIN=${SUBDOMAIN}
- DOMAIN_NAME=${DOMAIN_NAME}

networks:
  - traefik_network

Use 3 backticks before and after code/config to make it more readable and preserve spacing, which is important in yaml.

Maybe check this post.