diff --git a/src/edge_proxy/main.py b/src/edge_proxy/main.py index 63d61b4..d0b4663 100644 --- a/src/edge_proxy/main.py +++ b/src/edge_proxy/main.py @@ -12,6 +12,7 @@ def serve(): proxy_headers=settings.server.proxy_headers, reload=settings.server.reload, use_colors=settings.logging.colours, + timeout_keep_alive=settings.server.timeout_keep_alive, ) diff --git a/src/edge_proxy/settings.py b/src/edge_proxy/settings.py index fdc3647..afe0002 100644 --- a/src/edge_proxy/settings.py +++ b/src/edge_proxy/settings.py @@ -103,6 +103,10 @@ class ServerSettings(BaseModel): port: int = 8000 reload: bool = False proxy_headers: bool = False + # Matches uvicorn's default. Override (e.g. to 120s) when clients poll on + # an interval longer than this — otherwise pooled connections get closed + # server-side before the next poll, causing ConnectionResetError clients. + timeout_keep_alive: int = 5 class HealthCheckSettings(BaseModel):