hibernate/hibernate-orm · error · HibernateException

Multiple active SessionFactoryBuilderFactory definitions wer

Error message

Multiple active SessionFactoryBuilderFactory definitions were discovered: {}

What it means

Error "Multiple active SessionFactoryBuilderFactory definitions were discovered: {}" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/boot/internal/MetadataImpl.java:184

	@Override
	public SessionFactoryBuilder getSessionFactoryBuilder() {
		final var defaultBuilder = getFactoryBuilder();
		SessionFactoryBuilder builder = null;
		List<String> activeFactoryNames = null;
		for ( var discoveredBuilderFactory : getSessionFactoryBuilderFactories() ) {
			final SessionFactoryBuilder returnedBuilder =
					discoveredBuilderFactory.getSessionFactoryBuilder( this, defaultBuilder );
			if ( returnedBuilder != null ) {
				if ( activeFactoryNames == null ) {
					activeFactoryNames = new ArrayList<>();
				}
				activeFactoryNames.add( discoveredBuilderFactory.getClass().getName() );
				builder = returnedBuilder;
			}
		}

		if ( activeFactoryNames != null && activeFactoryNames.size() > 1 ) {
			throw new HibernateException(
					"Multiple active SessionFactoryBuilderFactory definitions were discovered: " +
							join( ", ", activeFactoryNames )
			);
		}

		return builder == null ? defaultBuilder : builder;
	}

	private Iterable<SessionFactoryBuilderFactory> getSessionFactoryBuilderFactories() {
		return getClassLoaderService().loadJavaServices( SessionFactoryBuilderFactory.class );
	}

	private SessionFactoryBuilderImplementor getFactoryBuilder() {
		return metadataBuildingOptions.getServiceRegistry()
				.requireService( SessionFactoryBuilderService.class )
				.createSessionFactoryBuilder( this, bootstrapContext );
	}

View on GitHub (pinned to fad1729dce)

Solutions

  1. Keep only one SessionFactoryBuilderFactory service registration (META-INF/services or ServiceRegistry contributor) on the classpath.
  2. Check for duplicate jars providing the same service (e.g. shading pulled in two copies).
  3. If multiple are intentional, merge them into a single delegating factory.

When it happens

Trigger: More than one SessionFactoryBuilderFactory service is discovered on the classpath.

Common situations: Multiple jars providing the same Hibernate service via Java ServiceLoader, typically a dependency duplication.


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