From 68b452b71a6680375c42bbb34976611880dc2f4c Mon Sep 17 00:00:00 2001 From: octo-patch Date: Wed, 8 Apr 2026 12:51:05 +0800 Subject: [PATCH] fix: read request_id and traceparent early in on_http_request_headers Fixes #643 Move request_id and traceparent initialization to the start of on_http_request_headers so that all subsequent log messages within the same handler (including select_llm_provider) carry the correct request ID instead of showing 'no_request_id'. --- crates/llm_gateway/src/stream_context.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/crates/llm_gateway/src/stream_context.rs b/crates/llm_gateway/src/stream_context.rs index afb0b050..c5bc064b 100644 --- a/crates/llm_gateway/src/stream_context.rs +++ b/crates/llm_gateway/src/stream_context.rs @@ -809,6 +809,10 @@ impl HttpContext for StreamContext { return Action::Continue; } + // Capture request ID and traceparent early so all subsequent log messages include them + self.request_id = self.get_http_request_header(REQUEST_ID_HEADER); + self.traceparent = self.get_http_request_header(TRACE_PARENT_HEADER); + // Capture HTTP method and protocol for tracing self.http_method = self.get_http_request_header(":method"); self.http_protocol = self.get_http_request_header(":scheme"); @@ -884,9 +888,6 @@ impl HttpContext for StreamContext { self.delete_content_length_header(); self.save_ratelimit_header(); - self.request_id = self.get_http_request_header(REQUEST_ID_HEADER); - self.traceparent = self.get_http_request_header(TRACE_PARENT_HEADER); - Action::Continue }