From bcaae2eb9120b73fc024cc5b85877f0abd4ddc04 Mon Sep 17 00:00:00 2001 From: erio Date: Tue, 10 Mar 2026 02:50:04 +0800 Subject: [PATCH] fix: use shared max_line_size config for OpenAI Responses SSE scanner Two SSE scanners in openai_gateway_messages.go were hardcoded to 1MB while all other scanners use defaultMaxLineSize (500MB) with config override. This caused Responses API streams to fail on large payloads. --- backend/internal/service/openai_gateway_messages.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/backend/internal/service/openai_gateway_messages.go b/backend/internal/service/openai_gateway_messages.go index 28ca5b01..5129f82d 100644 --- a/backend/internal/service/openai_gateway_messages.go +++ b/backend/internal/service/openai_gateway_messages.go @@ -279,7 +279,11 @@ func (s *OpenAIGatewayService) handleAnthropicBufferedStreamingResponse( requestID := resp.Header.Get("x-request-id") scanner := bufio.NewScanner(resp.Body) - scanner.Buffer(make([]byte, 0, 64*1024), 1024*1024) + maxLineSize := defaultMaxLineSize + if s.cfg != nil && s.cfg.Gateway.MaxLineSize > 0 { + maxLineSize = s.cfg.Gateway.MaxLineSize + } + scanner.Buffer(make([]byte, 0, 64*1024), maxLineSize) var finalResponse *apicompat.ResponsesResponse var usage OpenAIUsage @@ -378,7 +382,11 @@ func (s *OpenAIGatewayService) handleAnthropicStreamingResponse( firstChunk := true scanner := bufio.NewScanner(resp.Body) - scanner.Buffer(make([]byte, 0, 64*1024), 1024*1024) + maxLineSize := defaultMaxLineSize + if s.cfg != nil && s.cfg.Gateway.MaxLineSize > 0 { + maxLineSize = s.cfg.Gateway.MaxLineSize + } + scanner.Buffer(make([]byte, 0, 64*1024), maxLineSize) // resultWithUsage builds the final result snapshot. resultWithUsage := func() *OpenAIForwardResult {