From ac4553359d391a6d43d471fe4e85591cff6e8ae4 Mon Sep 17 00:00:00 2001 From: John Lee Date: Tue, 5 May 2026 08:25:59 +0800 Subject: [PATCH] fix(trace): Fix TraceState vendor-id length validation to match W3C spec The W3C Trace Context spec defines vendor-id as: vendor-id = lcalpha 0*14( key-chars ) This allows up to 15 characters (1 lcalpha + up to 14 key-chars), but the previous regex only allowed 14 (lcalpha + 13 key-chars). Also fix the vendor portion from {0,13} to {0,14} to match the spec. Fixes #5136. Signed-off-by: John Lee --- opentelemetry-api/src/opentelemetry/trace/span.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opentelemetry-api/src/opentelemetry/trace/span.py b/opentelemetry-api/src/opentelemetry/trace/span.py index b0cda475e2f..7bb6e1e5439 100644 --- a/opentelemetry-api/src/opentelemetry/trace/span.py +++ b/opentelemetry-api/src/opentelemetry/trace/span.py @@ -21,7 +21,7 @@ _KEY_FORMAT = ( r"[a-z][_0-9a-z\-\*\/]{0,255}|" - r"[a-z0-9][_0-9a-z\-\*\/]{0,240}@[a-z][_0-9a-z\-\*\/]{0,13}" + r"[a-z0-9][_0-9a-z\-\*\/]{0,240}@[a-z][_0-9a-z\-\*\/]{0,14}" ) _KEY_PATTERN = re.compile(_KEY_FORMAT)