SigNoz/signoz · error

gateway_unsupported

gateway_unsupported

Error message

unsupported call

What it means

The noop gateway provider implements the gateway.Gateway interface but every method is a stub returning an 'unsupported call' error. This one is returned by GetIngestionKeys when the noop provider is the configured ingestion-key gateway.

Source

Thrown at pkg/gateway/noopgateway/provider.go:27

	"github.com/SigNoz/signoz/pkg/gateway"
	"github.com/SigNoz/signoz/pkg/types/gatewaytypes"
	"github.com/SigNoz/signoz/pkg/valuer"
)

type provider struct{}

func NewProviderFactory() factory.ProviderFactory[gateway.Gateway, gateway.Config] {
	return factory.NewProviderFactory(factory.MustNewName("noop"), func(ctx context.Context, ps factory.ProviderSettings, c gateway.Config) (gateway.Gateway, error) {
		return New(ctx, ps, c)
	})
}

func New(_ context.Context, _ factory.ProviderSettings, _ gateway.Config) (gateway.Gateway, error) {
	return &provider{}, nil
}

func (p *provider) GetIngestionKeys(_ context.Context, _ valuer.UUID, _, _ int) (*gatewaytypes.GettableIngestionKeys, error) {
	return nil, errors.New(errors.TypeUnsupported, gateway.ErrCodeGatewayUnsupported, "unsupported call")
}

func (p *provider) SearchIngestionKeysByName(_ context.Context, _ valuer.UUID, _ string, _, _ int) (*gatewaytypes.GettableIngestionKeys, error) {
	return nil, errors.New(errors.TypeUnsupported, gateway.ErrCodeGatewayUnsupported, "unsupported call")
}

func (p *provider) CreateIngestionKey(_ context.Context, _ valuer.UUID, _ string, _ []string, _ time.Time) (*gatewaytypes.GettableCreatedIngestionKey, error) {
	return nil, errors.New(errors.TypeUnsupported, gateway.ErrCodeGatewayUnsupported, "unsupported call")
}

func (p *provider) UpdateIngestionKey(_ context.Context, _ valuer.UUID, _ string, _ string, _ []string, _ time.Time) error {
	return errors.New(errors.TypeUnsupported, gateway.ErrCodeGatewayUnsupported, "unsupported call")
}

func (p *provider) DeleteIngestionKey(_ context.Context, _ valuer.UUID, _ string) error {
	return errors.New(errors.TypeUnsupported, gateway.ErrCodeGatewayUnsupported, "unsupported call")
}

View on GitHub (pinned to 5069bf80b0)

Solutions

  1. Configure a real gateway provider in the gateway config (set the provider type for ingestion keys)
  2. If you don't need the feature, avoid the ingestion-key API routes
  3. Check config docs for the correct provider name/env vars

Example fix

// before
gateway:
  ingestionKey:
    provider: noop
// after
gateway:
  ingestionKey:
    provider: <supported-provider>
Defensive patterns

Strategy: type-guard

Validate before calling

// before listing keys, confirm a non-noop gateway is configured
cfg, _ := settings.Gateway()
if cfg.Provider == "noop" { return errors.New("ingestion keys unavailable") }

Type guard

func isNoopGateway(cfg gateway.Config) bool { return cfg.Provider == "noop" || cfg.Provider == "" }

Try / catch

if err != nil && errors.Asc(err, gateway.ErrCodeGatewayUnsupported) { /* skip feature, don't retry */ }

Prevention

When it happens

Trigger: Running signoz with the noop gateway selected (e.g. no external ingestion-key store configured) and hitting GET ingestion keys endpoints.

Common situations: Default/empty gateway config in dev or minimal installs; upgrading to a version where ingestion-key endpoints require an explicit gateway provider.

Related errors


AI-assisted analysis of SigNoz/signoz@5069bf80b0 (2026-08-28). Data as JSON: /api/errors/e21b1cefe6531631. Report an issue: GitHub.