Tencent/WeKnora · error

unsupported engine type: %s

Error message

unsupported engine type: %s

What it means

createEngineServiceFromStore's default case: the vector store's EngineType doesn't match any supported engine (postgres, elasticsearch, qdrant, milvus, weaviate, doris, sqlite, tencent vectordb, opensearch). A persisted or imported row carries an unknown/unregistered engine type.

Source

Thrown at internal/container/engine_factory.go:86

		return createPostgresEngine(store, db)
	case types.ElasticsearchRetrieverEngineType:
		return createElasticsearchEngine(store, cfg)
	case types.QdrantRetrieverEngineType:
		return createQdrantEngine(store)
	case types.MilvusRetrieverEngineType:
		return createMilvusEngine(ctx, store)
	case types.WeaviateRetrieverEngineType:
		return createWeaviateEngine(store)
	case types.DorisRetrieverEngineType:
		return createDorisEngine(store)
	case types.SQLiteRetrieverEngineType:
		return createSQLiteEngine(store, db)
	case types.TencentVectorDBRetrieverEngineType:
		return createTencentVectorDBEngine(store)
	case types.OpenSearchRetrieverEngineType:
		return createOpenSearchEngine(ctx, store, auditSink)
	default:
		return nil, fmt.Errorf("unsupported engine type: %s", store.EngineType)
	}
}

// validateRuntimeVectorStoreAddresses is the final guard for persisted or
// imported vector-store rows. Create/test handlers validate the same fields at
// the input boundary, but runtime construction must not assume every stored row
// was written through those handlers.
func validateRuntimeVectorStoreAddresses(store types.VectorStore) error {
	cc := store.ConnectionConfig
	check := func(label, endpoint string) error {
		endpoint = strings.TrimSpace(endpoint)
		if endpoint == "" {
			return nil
		}
		if err := utils.ValidateURLForSSRF(endpoint); err != nil {
			return fmt.Errorf("%s failed SSRF validation: %w", label, err)
		}
		return nil

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Correct the store's engine_type to a supported value
  2. Check migration/import code wrote a valid engine type
  3. Add a factory case if a new engine type was introduced
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at internal/container/engine_factory.go:86 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/71f55fd7b6f6a325. Report an issue: GitHub.