{"record":{"id":"a38ca31beff812ae","repo":"SigNoz/signoz","slug":"unsupported-a38ca3","errorCode":"unsupported","errorMessage":"fetching license is not supported","messagePattern":"fetching license is not supported","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"pkg/licensing/nooplicensing/provider.go","lineNumber":39,"sourceCode":"}\n\nfunc New(_ context.Context, _ factory.ProviderSettings, _ licensing.Config) (licensing.Licensing, error) {\n\treturn &noopLicensing{stopChan: make(chan struct{})}, nil\n}\n\nfunc (provider *noopLicensing) Start(context.Context) error {\n\t<-provider.stopChan\n\treturn nil\n\n}\n\nfunc (provider *noopLicensing) Stop(context.Context) error {\n\tclose(provider.stopChan)\n\treturn nil\n}\n\nfunc (provider *noopLicensing) Activate(ctx context.Context, organizationID valuer.UUID, key string) error {\n\treturn errors.New(errors.TypeUnsupported, licensing.ErrCodeUnsupported, \"fetching license is not supported\")\n}\n\nfunc (provider *noopLicensing) Validate(ctx context.Context) error {\n\treturn errors.New(errors.TypeUnsupported, licensing.ErrCodeUnsupported, \"validating license is not supported\")\n}\n\nfunc (provider *noopLicensing) Refresh(ctx context.Context, organizationID valuer.UUID) error {\n\treturn errors.New(errors.TypeUnsupported, licensing.ErrCodeUnsupported, \"refreshing license is not supported\")\n}\n\nfunc (provider *noopLicensing) Checkout(ctx context.Context, organizationID valuer.UUID, postableSubscription *licensetypes.PostableSubscription) (*licensetypes.GettableSubscription, error) {\n\treturn nil, errors.New(errors.TypeUnsupported, licensing.ErrCodeUnsupported, \"checkout session is not supported\")\n}\n\nfunc (provider *noopLicensing) Portal(ctx context.Context, organizationID valuer.UUID, postableSubscription *licensetypes.PostableSubscription) (*licensetypes.GettableSubscription, error) {\n\treturn nil, errors.New(errors.TypeUnsupported, licensing.ErrCodeUnsupported, \"portal session is not supported\")\n}\n","sourceCodeStart":21,"sourceCodeEnd":57,"githubUrl":"https://github.com/SigNoz/signoz/blob/5069bf80b08f1f00d7e014eccc09902f9871004f/pkg/licensing/nooplicensing/provider.go#L21-L57","documentation":"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.","triggerScenarios":"Calling noopLicensing.Activate(ctx, orgID, key) (provider-level API, not HTTP) during startup or license activation flows.","commonSituations":"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.","solutions":["Skip license activation logic when the noop provider is in use","Wire a real licensing provider implementation if activation must succeed"],"exampleFix":"// before\nif err := provider.Activate(ctx, orgID, licenseKey); err != nil { return err }\n// after\nif _, noop := provider.(*nooplicensing.NoopLicensing); !noop {\n    if err := provider.Activate(ctx, orgID, licenseKey); err != nil { return err }\n}","handlingStrategy":"type-guard","validationCode":null,"typeGuard":"func isNoopProvider(p licensing.Provider) bool { _, ok := p.(*nooplicensing.NoopLicensing); return ok }","tryCatchPattern":"if err := provider.Activate(ctx, org, key); err != nil && errors.Is(err, licensing.ErrCodeUnsupported) { /* licensing disabled */ }","preventionTips":["Skip activation flows when the noop provider is registered"],"tags":["licensing","noop","provider","unsupported"],"backgroundTag":"feature-not-implemented","analyzedSha":"5069bf80b08f1f00d7e014eccc09902f9871004f","analyzedAt":"2026-08-28T06:22:12.824Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}