diff --git a/thirdparty/sqd.go b/thirdparty/sqd.go index 6b6c2b1ab..3c388cc52 100644 --- a/thirdparty/sqd.go +++ b/thirdparty/sqd.go @@ -71,13 +71,13 @@ func (v *SqdVendor) GenerateConfigs(ctx context.Context, logger *zerolog.Logger, return nil, fmt.Errorf("sqd vendor requires upstream.evm.chainId to be defined") } - // If endpoint not set on upstream, read from settings - if upstream.Endpoint == "" { - endpoint, ok := settings["endpoint"].(string) - if !ok || endpoint == "" { - return nil, fmt.Errorf("sqd vendor requires endpoint in upstream config or settings") - } - upstream.Endpoint = endpoint + // Always prefer endpoint from settings if it contains {chainId} placeholder + // This ensures the provider's configured endpoint takes precedence over any + // empty or invalid endpoint that might be set on the upstream from overrides + if settingsEndpoint, ok := settings["endpoint"].(string); ok && settingsEndpoint != "" && strings.Contains(settingsEndpoint, "{chainId}") { + upstream.Endpoint = settingsEndpoint + } else if upstream.Endpoint == "" { + return nil, fmt.Errorf("sqd vendor requires endpoint in settings with {chainId} placeholder") } if !strings.Contains(upstream.Endpoint, "{chainId}") {