hibernate/hibernate-orm · error · ServiceException

Unable to instantiate specified multi-tenant connection prov

Error message

Unable to instantiate specified multi-tenant connection provider [{}]

What it means

Error "Unable to instantiate specified multi-tenant connection provider [{}]" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/MultiTenantConnectionProviderInitiator.java:72

		final Object configValue = configurationValues.get( MULTI_TENANT_CONNECTION_PROVIDER );
		if ( configValue == null ) {
			// if they also specified the data source *name*, then let's assume they want
			// DataSourceBasedMultiTenantConnectionProviderImpl
			final Object dataSourceConfigValue = configurationValues.get( JdbcSettings.DATASOURCE );
			return dataSourceConfigValue instanceof String
					? new DataSourceBasedMultiTenantConnectionProviderImpl<>()
					: null;
		}
		else if ( configValue instanceof MultiTenantConnectionProvider<?> multiTenantConnectionProvider ) {
			return multiTenantConnectionProvider;
		}
		else {
			final var providerClass = providerClass( registry, configValue );
			try {
				return providerClass.newInstance();
			}
			catch (Exception e) {
				throw new ServiceException( "Unable to instantiate specified multi-tenant connection provider [" + providerClass.getName() + "]", e );
			}
		}
	}

	private static Class<? extends MultiTenantConnectionProvider<?>> providerClass(
			ServiceRegistryImplementor registry, Object configValue) {
		if ( configValue instanceof Class<?> configType ) {
			if ( !MultiTenantConnectionProvider.class.isAssignableFrom( configType ) ) {
				throw new ConnectionProviderConfigurationException( "Class '" + configType.getName()
								+ "' does not implement 'MultiTenantConnectionProvider'" );
			}
			@SuppressWarnings("unchecked") // Safe, we just checked
			final var providerClass = (Class<? extends MultiTenantConnectionProvider<?>>) configType;
			return providerClass;
		}
		else {
			final String className = configValue.toString();
			final var classLoaderService = registry.requireService( ClassLoaderService.class );

View on GitHub (pinned to fad1729dce)

Solutions

  1. Ensure the MultiTenantConnectionProvider class has an accessible constructor and required dependencies
  2. Fix the configured class name for the multi-tenant connection provider

When it happens

Trigger: Thrown at hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/MultiTenantConnectionProviderInitiator.java:72 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22). Data as JSON: /api/errors/8ab5a9b1e73c5eca. Report an issue: GitHub.