Stop long prunes failing with a bare 500 (0.60.1)
CI / check (push) Successful in 13m35s
CI / build-and-push (push) Successful in 2m10s

A prune that deletes a lot of data (image prune -a in particular) easily
runs past docker-py's 60s read timeout. requests' ReadTimeout is not a
DockerException, so it slipped past safe_call and the UI only showed
"Request failed with status code 500".

Prunes now use a client with a 540s timeout (below nginx's 600s
proxy_read_timeout), and safe_call turns transport timeouts and
connection errors into DockerError, so they surface as a 502 with a
message.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
menzeljandClaude Opus 5 committed 2026-09-18 09:39:47 +02:00
1 parent 8edea8f971
commit f766ded528
7 files changed
+120 -11

No files matched your search

+2 -2
View File
@@ -6,7 +6,7 @@ from typing import Optional
from docker.errors import APIError
from docker.types import IPAMConfig, IPAMPool
from docker_client import DockerError, get_client, safe_call
from docker_client import DockerError, get_client, get_long_client, safe_call
COMPOSE_PROJECT_LABEL = "com.docker.compose.project"
DEFAULT_NETWORKS = {"bridge", "host", "none"}
@@ -133,5 +133,5 @@ def delete_network(network_id: str) -> None:
def prune_networks() -> dict:
client = get_client()
client = get_long_client()
return safe_call(client.networks.prune)