SigNoz/signoz · warning
unsupported
unsupported
Error message
fetching license is not supported
What it means
The noop licensing provider's Activate method always returns an unsupported error — fetching a license requires a real licensing backend, which the noop provider intentionally omits.
Source
Thrown at pkg/licensing/nooplicensing/provider.go:39
}
func New(_ context.Context, _ factory.ProviderSettings, _ licensing.Config) (licensing.Licensing, error) {
return &noopLicensing{stopChan: make(chan struct{})}, nil
}
func (provider *noopLicensing) Start(context.Context) error {
<-provider.stopChan
return nil
}
func (provider *noopLicensing) Stop(context.Context) error {
close(provider.stopChan)
return nil
}
func (provider *noopLicensing) Activate(ctx context.Context, organizationID valuer.UUID, key string) error {
return errors.New(errors.TypeUnsupported, licensing.ErrCodeUnsupported, "fetching license is not supported")
}
func (provider *noopLicensing) Validate(ctx context.Context) error {
return errors.New(errors.TypeUnsupported, licensing.ErrCodeUnsupported, "validating license is not supported")
}
func (provider *noopLicensing) Refresh(ctx context.Context, organizationID valuer.UUID) error {
return errors.New(errors.TypeUnsupported, licensing.ErrCodeUnsupported, "refreshing license is not supported")
}
func (provider *noopLicensing) Checkout(ctx context.Context, organizationID valuer.UUID, postableSubscription *licensetypes.PostableSubscription) (*licensetypes.GettableSubscription, error) {
return nil, errors.New(errors.TypeUnsupported, licensing.ErrCodeUnsupported, "checkout session is not supported")
}
func (provider *noopLicensing) Portal(ctx context.Context, organizationID valuer.UUID, postableSubscription *licensetypes.PostableSubscription) (*licensetypes.GettableSubscription, error) {
return nil, errors.New(errors.TypeUnsupported, licensing.ErrCodeUnsupported, "portal session is not supported")
}
View on GitHub (pinned to 5069bf80b0)
Solutions
- Skip license activation logic when the noop provider is in use
- Wire a real licensing provider implementation if activation must succeed
Example fix
// before
if err := provider.Activate(ctx, orgID, licenseKey); err != nil { return err }
// after
if _, noop := provider.(*nooplicensing.NoopLicensing); !noop {
if err := provider.Activate(ctx, orgID, licenseKey); err != nil { return err }
} Defensive patterns
Strategy: type-guard
Type guard
func isNoopProvider(p licensing.Provider) bool { _, ok := p.(*nooplicensing.NoopLicensing); return ok } Try / catch
if err := provider.Activate(ctx, org, key); err != nil && errors.Is(err, licensing.ErrCodeUnsupported) { /* licensing disabled */ } Prevention
- Skip activation flows when the noop provider is registered
When it happens
Trigger: Calling noopLicensing.Activate(ctx, orgID, key) (provider-level API, not HTTP) during startup or license activation flows.
Common situations: Self-hosted build passing a license key via env/config, which triggers Activate on the noop provider; tests or init code that unconditionally activate licensing.
Related errors
AI-assisted analysis of SigNoz/signoz@5069bf80b0 (2026-08-28).
Data as JSON: /api/errors/a38ca31beff812ae.
Report an issue: GitHub.