Tencent/WeKnora · error

invalid provider type: %s

Error message

invalid provider type: %s

What it means

Validation in webSearchProviderService.CreateProvider: the provider entity's Provider type string is not one of the recognized web search provider types (Bing, Google, Tavily, Baidu, Searxng, etc.). The %s echoes the rejected value; the entity is rejected before persistence so no unusable provider config reaches the registry.

Source

Thrown at internal/application/service/web_search_provider.go:30

// webSearchProviderService implements interfaces.WebSearchProviderService
type webSearchProviderService struct {
	repo interfaces.WebSearchProviderRepository
}

// NewWebSearchProviderService creates a new web search provider service
func NewWebSearchProviderService(repo interfaces.WebSearchProviderRepository) interfaces.WebSearchProviderService {
	return &webSearchProviderService{repo: repo}
}

// CreateProvider creates a new web search provider configuration.
func (s *webSearchProviderService) CreateProvider(ctx context.Context, provider *types.WebSearchProviderEntity) error {
	if provider.TenantID == 0 {
		return fmt.Errorf("tenant ID is required")
	}

	if !isValidProviderType(provider.Provider) {
		return fmt.Errorf("invalid provider type: %s", provider.Provider)
	}

	if err := validateProviderParameters(provider.Provider, provider.Parameters); err != nil {
		return err
	}

	if provider.IsDefault {
		if err := s.repo.ClearDefault(ctx, provider.TenantID, ""); err != nil {
			logger.Warnf(ctx, "Failed to clear default providers: %v", err)
		}
	}

	logger.Infof(ctx, "Creating web search provider: tenant=%d, name=%s, type=%s", provider.TenantID, provider.Name, provider.Provider)
	return s.repo.Create(ctx, provider)
}

// UpdateProvider updates an existing provider.
func (s *webSearchProviderService) UpdateProvider(ctx context.Context, provider *types.WebSearchProviderEntity) error {

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Send a supported provider type (bing, google, tavily, searxng, etc.)
  2. Check the API handler's type binding/enum mapping
  3. Fix the entity payload before persisting
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at internal/application/service/web_search_provider.go:30 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Tencent/WeKnora@988cbb0330 (2026-09-02). Data as JSON: /api/errors/1ed5b9b49cad8c8a. Report an issue: GitHub.