@@ -220,17 +220,17 @@ func NewProvider(evaluationStrategy EvaluationStrategy, options ...Option) (*Pro
220220 }
221221
222222 if len (config .providers ) == 0 {
223- return nil , errors .New ("providers cannot be nil or empty " )
223+ return nil , errors .New ("no providers configured: at least one provider must be registered using WithProvider() " )
224224 }
225225
226226 providers := make ([]NamedProvider , 0 , len (config .providers ))
227227 collectedHooks := make ([]of.Hook , 0 , len (config .providers ))
228228 for i , provider := range config .providers {
229229 // Validate Providers
230230 if provider .FeatureProvider == nil {
231- return nil , fmt .Errorf ("provider at %d cannot be nil" , i )
231+ return nil , fmt .Errorf ("provider %s at %d cannot be nil" , provider . name , i )
232232 }
233- if provider .Name () == "" {
233+ if provider .name == "" {
234234 return nil , fmt .Errorf ("provider name at %d cannot be the empty string" , i )
235235 }
236236
@@ -448,8 +448,13 @@ func (p *Provider) startListening(ctx context.Context, name string, h of.EventHa
448448 for {
449449 select {
450450 case e := <- h .EventChannel ():
451+ if e .EventMetadata == nil {
452+ e .EventMetadata = make (map [string ]any )
453+ }
451454 e .EventMetadata [MetadataProviderName ] = name
452- e .EventMetadata [MetadataProviderType ] = h .(of.FeatureProvider ).Metadata ().Name
455+ if p , ok := h .(of.FeatureProvider ); ok {
456+ e .EventMetadata [MetadataProviderType ] = p .Metadata ().Name
457+ }
453458 p .inboundEvents <- namedEvent {
454459 Event : e ,
455460 providerName : name ,
0 commit comments