Tencent/WeKnora · error

create elasticsearch v8 client: %w

Error message

create elasticsearch v8 client: %w

What it means

createElasticsearchV8Engine wraps the elasticsearch NewTypedClient construction error (invalid address format, unusable config). The v8 SDK client could not be built, so the ES retrieve engine cannot register.

Source

Thrown at internal/container/engine_factory.go:204

func isESv7(version string) bool {
	return strings.HasPrefix(version, "7.")
}

func createElasticsearchV8Engine(store types.VectorStore, cfg *config.Config) (interfaces.RetrieveEngineService, error) {
	cc := store.ConnectionConfig
	if err := utils.ValidateURLForSSRF(cc.Addr); err != nil {
		return nil, fmt.Errorf("elasticsearch address failed SSRF validation: %w", err)
	}
	client, err := elasticsearch.NewTypedClient(elasticsearch.Config{
		Addresses: []string{cc.Addr},
		Username:  cc.Username,
		Password:  cc.Password,
		Transport: &utils.SSRFValidatingRoundTripper{
			Base: utils.NewSSRFSafeTransport(utils.DefaultSSRFSafeHTTPClientConfig()),
		},
	})
	if err != nil {
		return nil, fmt.Errorf("create elasticsearch v8 client: %w", err)
	}
	repo := elasticsearchRepoV8.NewElasticsearchEngineRepository(client, cfg, &store.IndexConfig)
	return retriever.NewKVHybridRetrieveEngine(repo, types.ElasticsearchRetrieverEngineType), nil
}

func createElasticsearchV7Engine(store types.VectorStore, cfg *config.Config) (interfaces.RetrieveEngineService, error) {
	cc := store.ConnectionConfig
	if err := utils.ValidateURLForSSRF(cc.Addr); err != nil {
		return nil, fmt.Errorf("elasticsearch address failed SSRF validation: %w", err)
	}
	client, err := esv7.NewClient(esv7.Config{
		Addresses: []string{cc.Addr},
		Username:  cc.Username,
		Password:  cc.Password,
		Transport: &utils.SSRFValidatingRoundTripper{
			Base: utils.NewSSRFSafeTransport(utils.DefaultSSRFSafeHTTPClientConfig()),
		},
	})

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Validate the ES address URL format and scheme
  2. Check credentials/TLS settings in connection_config
  3. Fix the store config and retry registration
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at internal/container/engine_factory.go:204 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/55fd5c23f56f5f48. Report an issue: GitHub.