Tencent/WeKnora · error

failed to create provider %s (%s): %w

Error message

failed to create provider %s (%s): %w

What it means

The provider registry failed to instantiate the concrete web search provider from the entity's type and parameters (bad parameter set, unsupported/unknown provider type stored in the entity). Includes entity name and provider type for diagnosis.

Source

Thrown at internal/application/service/web_search.go:111

	// New path: load provider entity from DB
	if providerID != "" {
		tenantID, ok := types.TenantIDFromContext(ctx)
		if !ok {
			return nil, fmt.Errorf("workspace ID not found in context")
		}

		entity, err := s.providerRepo.GetByID(ctx, tenantID, providerID)
		if err != nil {
			return nil, fmt.Errorf("failed to load web search provider %s: %w", providerID, err)
		}
		if entity == nil {
			return nil, fmt.Errorf("web search provider not found: %s", providerID)
		}

		params := mergeProxyFromWebSearchConfig(entity.Parameters, cfg)
		provider, err := s.registry.CreateProvider(string(entity.Provider), params)
		if err != nil {
			return nil, fmt.Errorf("failed to create provider %s (%s): %w", entity.Name, entity.Provider, err)
		}
		return provider, nil
	}

	// Backward compatibility: use the deprecated config.Provider field
	if cfg.Provider != "" {
		logger.Warnf(ctx, "Using deprecated WebSearchConfig.Provider field: %s. Please migrate to WebSearchProviderEntity.", cfg.Provider)
		params := mergeProxyFromWebSearchConfig(types.WebSearchProviderParameters{
			APIKey: cfg.APIKey,
		}, cfg)
		provider, err := s.registry.CreateProvider(cfg.Provider, params)
		if err != nil {
			return nil, fmt.Errorf("web search provider %s is not available: %w", cfg.Provider, err)
		}
		return provider, nil
	}

	return nil, fmt.Errorf("no web search provider configured")

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Check entity.Parameters for missing/invalid fields (API key, endpoint)
  2. Confirm the stored provider type is supported by the registry
  3. Fix the provider entity configuration and retry
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at internal/application/service/web_search.go:111 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/f9fd61843593d124. Report an issue: GitHub.