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
- Validate the ES address URL format and scheme
- Check credentials/TLS settings in connection_config
- 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.