fix: bypass LoggingMiddleware for SSE streaming endpoint BaseHTTPMiddleware buffers StreamingResponse bodies, which breaks real-time SSE delivery of training progress in Docker containers. Skip the middleware entirely for /api/train/progress so events flow directly to the client unbuffered

This commit is contained in:
Roland Tannous 2026-03-17 13:57:42 +00:00
commit edf9d28930

View file

@ -27,6 +27,11 @@ logger = structlog.get_logger(__name__)
class LoggingMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next: Callable) -> Response:
# Bypass middleware for SSE streaming — BaseHTTPMiddleware
# can buffer StreamingResponse bodies, breaking real-time delivery
if request.url.path == "/api/train/progress":
return await call_next(request)
start_time = time.time()
try: