spring-projects/spring-ai · error · IllegalArgumentException

WeaviateClient could not be created.

Error message

WeaviateClient could not be created.

What it means

Guard thrown while creating the WeaviateClient bean in auto-configuration: the underlying Weaviate Java client could not connect or authenticate (bad host/scheme, network failure, invalid API key), so the auto-configuration cannot expose the client bean.

Solutions

  1. Verify spring.ai.vectorstore.weaviate host, scheme, and API key values
  2. Check network connectivity to the Weaviate instance
  3. Provide a custom WeaviateClient bean to bypass auto-configuration
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/main/java/org/springframework/ai/vectorstore/weaviate/autoconfigure/WeaviateVectorStoreAutoConfiguration.java:72 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of spring-projects/spring-ai@98a7beda4f (2026-09-11). Data as JSON: /api/errors/ebe834000cba1db1. Report an issue: GitHub.

Appendix: source

Thrown at auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/main/java/org/springframework/ai/vectorstore/weaviate/autoconfigure/WeaviateVectorStoreAutoConfiguration.java:72

public class WeaviateVectorStoreAutoConfiguration {

	@Bean
	@ConditionalOnMissingBean(WeaviateConnectionDetails.class)
	PropertiesWeaviateConnectionDetails weaviateConnectionDetails(WeaviateVectorStoreProperties properties) {
		return new PropertiesWeaviateConnectionDetails(properties);
	}

	@Bean
	@ConditionalOnMissingBean
	public WeaviateClient weaviateClient(WeaviateVectorStoreProperties properties,
			WeaviateConnectionDetails connectionDetails) {
		try {
			return WeaviateAuthClient.apiKey(
					new Config(properties.getScheme(), connectionDetails.getHost(), properties.getHeaders()),
					properties.getApiKey());
		}
		catch (AuthException e) {
			throw new IllegalArgumentException("WeaviateClient could not be created.", e);
		}
	}

	@Bean
	@ConditionalOnMissingBean
	BatchingStrategy batchingStrategy() {
		return new TokenCountBatchingStrategy();
	}

	@Bean
	@ConditionalOnMissingBean
	public WeaviateVectorStore vectorStore(EmbeddingModel embeddingModel, WeaviateClient weaviateClient,
			WeaviateVectorStoreProperties properties, ObjectProvider<ObservationRegistry> observationRegistry,
			ObjectProvider<VectorStoreObservationConvention> customObservationConvention,
			BatchingStrategy batchingStrategy) {
		return WeaviateVectorStore.builder(weaviateClient, embeddingModel)
			.options(mappingPropertiesToOptions(properties))
			.filterMetadataFields(properties.getFilterField()

View on GitHub (pinned to 98a7beda4f)