From d29a62baa2971c3412918ef8a54555d83ef6e84b Mon Sep 17 00:00:00 2001 From: Ludwig Bedacht Date: Wed, 25 Feb 2026 12:01:51 +0100 Subject: [PATCH 1/4] chore: bump engine dependency --- router-tests/go.mod | 2 +- router-tests/go.sum | 4 ++-- router/core/engine_loader_hooks.go | 6 ++---- router/go.mod | 2 +- router/go.sum | 4 ++-- 5 files changed, 8 insertions(+), 10 deletions(-) diff --git a/router-tests/go.mod b/router-tests/go.mod index 28d13da9e5..fdd792824a 100644 --- a/router-tests/go.mod +++ b/router-tests/go.mod @@ -27,7 +27,7 @@ require ( github.com/wundergraph/cosmo/demo/pkg/subgraphs/projects v0.0.0-20250715110703-10f2e5f9c79e github.com/wundergraph/cosmo/router v0.0.0-20260213130455-6e3277e7b850 github.com/wundergraph/cosmo/router-plugin v0.0.0-20250808194725-de123ba1c65e - github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.255 + github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225102916-4d7345e52c03 go.opentelemetry.io/otel v1.36.0 go.opentelemetry.io/otel/sdk v1.36.0 go.opentelemetry.io/otel/sdk/metric v1.36.0 diff --git a/router-tests/go.sum b/router-tests/go.sum index 8740bb0404..d7fe3a06e6 100644 --- a/router-tests/go.sum +++ b/router-tests/go.sum @@ -356,8 +356,8 @@ github.com/wundergraph/astjson v1.1.0 h1:xORDosrZ87zQFJwNGe/HIHXqzpdHOFmqWgykCLV github.com/wundergraph/astjson v1.1.0/go.mod h1:h12D/dxxnedtLzsKyBLK7/Oe4TAoGpRVC9nDpDrZSWw= github.com/wundergraph/go-arena v1.1.0 h1:9+wSRkJAkA2vbYHp6s8tEGhPViRGQNGXqPHT0QzhdIc= github.com/wundergraph/go-arena v1.1.0/go.mod h1:ROOysEHWJjLQ8FSfNxZCziagb7Qw2nXY3/vgKRh7eWw= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.255 h1:lN+D5OWay3U1mwtRlA+j7kJqP5ksKdRFMvYA+8XLJ1E= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.255/go.mod h1:gfmmrPd2khZONmwYE8RIfnGjwIG+RqL52jYiBzcUST8= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225102916-4d7345e52c03 h1:wjALIhBiOORLyU3pxUO3pXZL+1vNs+A0YP4qfRTUJZI= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225102916-4d7345e52c03/go.mod h1:gfmmrPd2khZONmwYE8RIfnGjwIG+RqL52jYiBzcUST8= github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 h1:FnBeRrxr7OU4VvAzt5X7s6266i6cSVkkFPS0TuXWbIg= github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= diff --git a/router/core/engine_loader_hooks.go b/router/core/engine_loader_hooks.go index 9390b5d132..d0e0f5da99 100644 --- a/router/core/engine_loader_hooks.go +++ b/router/core/engine_loader_hooks.go @@ -261,10 +261,8 @@ func (f *engineLoaderHooks) OnFinished(ctx context.Context, ds resolve.DataSourc for i, downstreamError := range subgraphError.DownstreamErrors { var errorCode string if downstreamError.Extensions != nil { - if ok := downstreamError.Extensions["code"]; ok != nil { - if code, ok := downstreamError.Extensions["code"].(string); ok { - errorCode = code - } + if value := downstreamError.Extensions.Get("code"); value != nil { + errorCode = value.String() } } diff --git a/router/go.mod b/router/go.mod index 443739c1d0..037d7693b2 100644 --- a/router/go.mod +++ b/router/go.mod @@ -31,7 +31,7 @@ require ( github.com/tidwall/gjson v1.18.0 github.com/tidwall/sjson v1.2.5 github.com/twmb/franz-go v1.16.1 - github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.255 + github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225102916-4d7345e52c03 // Do not upgrade, it renames attributes we rely on go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 go.opentelemetry.io/contrib/propagators/b3 v1.23.0 diff --git a/router/go.sum b/router/go.sum index f4b0641642..1983417a8c 100644 --- a/router/go.sum +++ b/router/go.sum @@ -328,8 +328,8 @@ github.com/wundergraph/astjson v1.1.0 h1:xORDosrZ87zQFJwNGe/HIHXqzpdHOFmqWgykCLV github.com/wundergraph/astjson v1.1.0/go.mod h1:h12D/dxxnedtLzsKyBLK7/Oe4TAoGpRVC9nDpDrZSWw= github.com/wundergraph/go-arena v1.1.0 h1:9+wSRkJAkA2vbYHp6s8tEGhPViRGQNGXqPHT0QzhdIc= github.com/wundergraph/go-arena v1.1.0/go.mod h1:ROOysEHWJjLQ8FSfNxZCziagb7Qw2nXY3/vgKRh7eWw= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.255 h1:lN+D5OWay3U1mwtRlA+j7kJqP5ksKdRFMvYA+8XLJ1E= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.255/go.mod h1:gfmmrPd2khZONmwYE8RIfnGjwIG+RqL52jYiBzcUST8= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225102916-4d7345e52c03 h1:wjALIhBiOORLyU3pxUO3pXZL+1vNs+A0YP4qfRTUJZI= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225102916-4d7345e52c03/go.mod h1:gfmmrPd2khZONmwYE8RIfnGjwIG+RqL52jYiBzcUST8= github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= github.com/yosida95/uritemplate/v3 v3.0.2/go.mod h1:ILOh0sOhIJR3+L/8afwt/kE++YT040gmv5BQTMR2HP4= github.com/yuin/gopher-lua v1.1.1 h1:kYKnWBjvbNP4XLT3+bPEwAXJx262OhaHDWDVOPjL46M= From 8bca435d9dd648381303a5518cca44104356954f Mon Sep 17 00:00:00 2001 From: Ludwig Bedacht Date: Wed, 25 Feb 2026 12:36:39 +0100 Subject: [PATCH 2/4] chore: use GetStringBytes to get an unescaped string --- router-tests/go.mod | 2 +- router-tests/go.sum | 4 ++-- router/core/engine_loader_hooks.go | 2 +- router/go.mod | 2 +- router/go.sum | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/router-tests/go.mod b/router-tests/go.mod index fdd792824a..99f651c2f2 100644 --- a/router-tests/go.mod +++ b/router-tests/go.mod @@ -27,7 +27,7 @@ require ( github.com/wundergraph/cosmo/demo/pkg/subgraphs/projects v0.0.0-20250715110703-10f2e5f9c79e github.com/wundergraph/cosmo/router v0.0.0-20260213130455-6e3277e7b850 github.com/wundergraph/cosmo/router-plugin v0.0.0-20250808194725-de123ba1c65e - github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225102916-4d7345e52c03 + github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225112952-0abe0dc15b36 go.opentelemetry.io/otel v1.36.0 go.opentelemetry.io/otel/sdk v1.36.0 go.opentelemetry.io/otel/sdk/metric v1.36.0 diff --git a/router-tests/go.sum b/router-tests/go.sum index d7fe3a06e6..ac8f86d7ef 100644 --- a/router-tests/go.sum +++ b/router-tests/go.sum @@ -356,8 +356,8 @@ github.com/wundergraph/astjson v1.1.0 h1:xORDosrZ87zQFJwNGe/HIHXqzpdHOFmqWgykCLV github.com/wundergraph/astjson v1.1.0/go.mod h1:h12D/dxxnedtLzsKyBLK7/Oe4TAoGpRVC9nDpDrZSWw= github.com/wundergraph/go-arena v1.1.0 h1:9+wSRkJAkA2vbYHp6s8tEGhPViRGQNGXqPHT0QzhdIc= github.com/wundergraph/go-arena v1.1.0/go.mod h1:ROOysEHWJjLQ8FSfNxZCziagb7Qw2nXY3/vgKRh7eWw= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225102916-4d7345e52c03 h1:wjALIhBiOORLyU3pxUO3pXZL+1vNs+A0YP4qfRTUJZI= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225102916-4d7345e52c03/go.mod h1:gfmmrPd2khZONmwYE8RIfnGjwIG+RqL52jYiBzcUST8= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225112952-0abe0dc15b36 h1:U/sDI36G2mzXbfvYCyBzVgoRJ93i4HF/T/Nsqnyy4OU= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225112952-0abe0dc15b36/go.mod h1:gfmmrPd2khZONmwYE8RIfnGjwIG+RqL52jYiBzcUST8= github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 h1:FnBeRrxr7OU4VvAzt5X7s6266i6cSVkkFPS0TuXWbIg= github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= diff --git a/router/core/engine_loader_hooks.go b/router/core/engine_loader_hooks.go index d0e0f5da99..1d284f06ed 100644 --- a/router/core/engine_loader_hooks.go +++ b/router/core/engine_loader_hooks.go @@ -262,7 +262,7 @@ func (f *engineLoaderHooks) OnFinished(ctx context.Context, ds resolve.DataSourc var errorCode string if downstreamError.Extensions != nil { if value := downstreamError.Extensions.Get("code"); value != nil { - errorCode = value.String() + errorCode = string(value.GetStringBytes()) } } diff --git a/router/go.mod b/router/go.mod index 037d7693b2..198dd8fef1 100644 --- a/router/go.mod +++ b/router/go.mod @@ -31,7 +31,7 @@ require ( github.com/tidwall/gjson v1.18.0 github.com/tidwall/sjson v1.2.5 github.com/twmb/franz-go v1.16.1 - github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225102916-4d7345e52c03 + github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225112952-0abe0dc15b36 // Do not upgrade, it renames attributes we rely on go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 go.opentelemetry.io/contrib/propagators/b3 v1.23.0 diff --git a/router/go.sum b/router/go.sum index 1983417a8c..6817e44453 100644 --- a/router/go.sum +++ b/router/go.sum @@ -328,8 +328,8 @@ github.com/wundergraph/astjson v1.1.0 h1:xORDosrZ87zQFJwNGe/HIHXqzpdHOFmqWgykCLV github.com/wundergraph/astjson v1.1.0/go.mod h1:h12D/dxxnedtLzsKyBLK7/Oe4TAoGpRVC9nDpDrZSWw= github.com/wundergraph/go-arena v1.1.0 h1:9+wSRkJAkA2vbYHp6s8tEGhPViRGQNGXqPHT0QzhdIc= github.com/wundergraph/go-arena v1.1.0/go.mod h1:ROOysEHWJjLQ8FSfNxZCziagb7Qw2nXY3/vgKRh7eWw= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225102916-4d7345e52c03 h1:wjALIhBiOORLyU3pxUO3pXZL+1vNs+A0YP4qfRTUJZI= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225102916-4d7345e52c03/go.mod h1:gfmmrPd2khZONmwYE8RIfnGjwIG+RqL52jYiBzcUST8= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225112952-0abe0dc15b36 h1:U/sDI36G2mzXbfvYCyBzVgoRJ93i4HF/T/Nsqnyy4OU= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225112952-0abe0dc15b36/go.mod h1:gfmmrPd2khZONmwYE8RIfnGjwIG+RqL52jYiBzcUST8= github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= github.com/yosida95/uritemplate/v3 v3.0.2/go.mod h1:ILOh0sOhIJR3+L/8afwt/kE++YT040gmv5BQTMR2HP4= github.com/yuin/gopher-lua v1.1.1 h1:kYKnWBjvbNP4XLT3+bPEwAXJx262OhaHDWDVOPjL46M= From f7ce5aa232677b62312705b449e15a2f831d0fe8 Mon Sep 17 00:00:00 2001 From: Ludwig Bedacht Date: Wed, 25 Feb 2026 15:30:15 +0100 Subject: [PATCH 3/4] chore: bump engine version --- router-tests/go.mod | 2 +- router-tests/go.sum | 4 ++-- router/go.mod | 2 +- router/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/router-tests/go.mod b/router-tests/go.mod index 99f651c2f2..251d8af3c0 100644 --- a/router-tests/go.mod +++ b/router-tests/go.mod @@ -27,7 +27,7 @@ require ( github.com/wundergraph/cosmo/demo/pkg/subgraphs/projects v0.0.0-20250715110703-10f2e5f9c79e github.com/wundergraph/cosmo/router v0.0.0-20260213130455-6e3277e7b850 github.com/wundergraph/cosmo/router-plugin v0.0.0-20250808194725-de123ba1c65e - github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225112952-0abe0dc15b36 + github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.257 go.opentelemetry.io/otel v1.36.0 go.opentelemetry.io/otel/sdk v1.36.0 go.opentelemetry.io/otel/sdk/metric v1.36.0 diff --git a/router-tests/go.sum b/router-tests/go.sum index ac8f86d7ef..2c12b0b234 100644 --- a/router-tests/go.sum +++ b/router-tests/go.sum @@ -356,8 +356,8 @@ github.com/wundergraph/astjson v1.1.0 h1:xORDosrZ87zQFJwNGe/HIHXqzpdHOFmqWgykCLV github.com/wundergraph/astjson v1.1.0/go.mod h1:h12D/dxxnedtLzsKyBLK7/Oe4TAoGpRVC9nDpDrZSWw= github.com/wundergraph/go-arena v1.1.0 h1:9+wSRkJAkA2vbYHp6s8tEGhPViRGQNGXqPHT0QzhdIc= github.com/wundergraph/go-arena v1.1.0/go.mod h1:ROOysEHWJjLQ8FSfNxZCziagb7Qw2nXY3/vgKRh7eWw= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225112952-0abe0dc15b36 h1:U/sDI36G2mzXbfvYCyBzVgoRJ93i4HF/T/Nsqnyy4OU= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225112952-0abe0dc15b36/go.mod h1:gfmmrPd2khZONmwYE8RIfnGjwIG+RqL52jYiBzcUST8= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.257 h1:hGsaKXRkH3o8DkyizY48/wC1Q+NB1nfD9EKVA7Gc81Y= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.257/go.mod h1:gfmmrPd2khZONmwYE8RIfnGjwIG+RqL52jYiBzcUST8= github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342 h1:FnBeRrxr7OU4VvAzt5X7s6266i6cSVkkFPS0TuXWbIg= github.com/xrash/smetrics v0.0.0-20250705151800-55b8f293f342/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= diff --git a/router/go.mod b/router/go.mod index 198dd8fef1..7519ebbf65 100644 --- a/router/go.mod +++ b/router/go.mod @@ -31,7 +31,7 @@ require ( github.com/tidwall/gjson v1.18.0 github.com/tidwall/sjson v1.2.5 github.com/twmb/franz-go v1.16.1 - github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225112952-0abe0dc15b36 + github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.257 // Do not upgrade, it renames attributes we rely on go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 go.opentelemetry.io/contrib/propagators/b3 v1.23.0 diff --git a/router/go.sum b/router/go.sum index 6817e44453..ad42d0211f 100644 --- a/router/go.sum +++ b/router/go.sum @@ -328,8 +328,8 @@ github.com/wundergraph/astjson v1.1.0 h1:xORDosrZ87zQFJwNGe/HIHXqzpdHOFmqWgykCLV github.com/wundergraph/astjson v1.1.0/go.mod h1:h12D/dxxnedtLzsKyBLK7/Oe4TAoGpRVC9nDpDrZSWw= github.com/wundergraph/go-arena v1.1.0 h1:9+wSRkJAkA2vbYHp6s8tEGhPViRGQNGXqPHT0QzhdIc= github.com/wundergraph/go-arena v1.1.0/go.mod h1:ROOysEHWJjLQ8FSfNxZCziagb7Qw2nXY3/vgKRh7eWw= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225112952-0abe0dc15b36 h1:U/sDI36G2mzXbfvYCyBzVgoRJ93i4HF/T/Nsqnyy4OU= -github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.256.0.20260225112952-0abe0dc15b36/go.mod h1:gfmmrPd2khZONmwYE8RIfnGjwIG+RqL52jYiBzcUST8= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.257 h1:hGsaKXRkH3o8DkyizY48/wC1Q+NB1nfD9EKVA7Gc81Y= +github.com/wundergraph/graphql-go-tools/v2 v2.0.0-rc.257/go.mod h1:gfmmrPd2khZONmwYE8RIfnGjwIG+RqL52jYiBzcUST8= github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= github.com/yosida95/uritemplate/v3 v3.0.2/go.mod h1:ILOh0sOhIJR3+L/8afwt/kE++YT040gmv5BQTMR2HP4= github.com/yuin/gopher-lua v1.1.1 h1:kYKnWBjvbNP4XLT3+bPEwAXJx262OhaHDWDVOPjL46M= From ceb8a425df3a66d19f9ed5e5d6082da7341d2b96 Mon Sep 17 00:00:00 2001 From: Ludwig Bedacht Date: Thu, 26 Feb 2026 13:04:04 +0100 Subject: [PATCH 4/4] chore: trigger workflow on label change in PR --- .github/workflows/query-planner-ci.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/query-planner-ci.yaml b/.github/workflows/query-planner-ci.yaml index 7e5a2bb9c6..6608a158ad 100644 --- a/.github/workflows/query-planner-ci.yaml +++ b/.github/workflows/query-planner-ci.yaml @@ -1,6 +1,13 @@ name: Query Planner CI on: pull_request: + types: + - opened + - synchronize + - reopened + - labeled + - unlabeled + paths: # This workflow should run every time router-ci and cli-ci runs - 'pnpm-lock.yaml'