Timeout Forgejo Container Registry

Da ich vor einigen Wochen die ersten Forgejo-Runner in meinem Homelab in Betrieb genommen habe, wurde es langsam Zeit, mein gutes altes Drone.io in Rente zu schicken. Grundsätzlich haben die einzelnen Container-Builds mit anschließendem push auf die Forgejo-Container-Registry auch funktioniert.

Mein Upload läuft über eine VDSL-Leitung mit nur 10 Mbit. Bei mehreren größeren Images kam es wiederholt zum Timeout-Fehler status code 499 - Internal Server Error.


Analyse Status Code 499

Zuerst habe ich den Fehler im Forgejo-Server vermutet. Also: Logs prüfen – jedoch keine Auffälligkeiten außer der beendeten Verbindung.

Falls du Forgejo nutzt: Den Loglevel hochstellen kann helfen, tiefergehende Infos zu bekommen. Bei mir brachte es leider keine neuen Hinweise.


Timeout beim docker push Kommando?

Mein erster Verdacht: zu langsame Upload-Bandbreite. Darum habe ich die Timeouts im Docker-Client erhöht:

Docker Timeout erhöhen
export DOCKER_CLIENT_TIMEOUT=300
export DOCKER_PUSH_TIMEOUT=300

Leider half das nicht weiter. Ich habe einige Images zu Builder-Images umgestellt – eine Notlösung, aber das eigentliche Problem blieb.


Die Ursache

Zufallsfund: In einer Immich-Diskussion stieß ich auf ein ähnliches Problem.

Seit 2024 hat Traefik einen Default-Timeout von 60 Sekunden. Bei langsamen Uploads führt das zu 499 - Internal Server Error. Das war mein Problem. Bingo!


Die Lösung

Einfach die Timeout-Parameter in Traefik hochsetzen. Hier der relevante Abschnitt aus meiner traefik.yml:

traefik.yml
web:
address: ":80"
http:
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: ":443"
transport:
respondingTimeouts:
readTimeout: 600s
idleTimeout: 300s
writeTimeout: 600s

Seitdem laufen auch größere docker push-Vorgänge ohne Abbruch durch.


Gemacht mit ❤️ und Astro
© 2025 |
Version: v1.11.2
Impressum
Datenschutz