hibernate/hibernate-orm · error · SessionException

Session was created in read-only mode

Error message

Session was created in read-only mode

What it means

Error "Session was created in read-only mode" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java:1928

		return true;
	}

	@Override
	@Nonnull
	public EventSource asEventSource() {
		return this;
	}

	@Override
	public boolean isDefaultReadOnly() {
		return persistenceContext.isDefaultReadOnly();
	}

	@Override
	public void setDefaultReadOnly(boolean defaultReadOnly) {
		checkSessionReentrancy();
		if ( !defaultReadOnly && isReadOnly() ) {
			throw new SessionException( "Session was created in read-only mode" );
		}
		persistenceContext.setDefaultReadOnly( defaultReadOnly );
	}

	@Override
	public boolean isReadOnly(@Nonnull Object entityOrProxy) {
		checkOpen();
//		checkTransactionSynchStatus();
		return persistenceContext.isReadOnly( entityOrProxy );
	}

	@Override
	public void setReadOnly(@Nonnull Object entity,  boolean readOnly) {
		checkOpen();
//		checkTransactionSynchStatus();
		persistenceContext.setReadOnly( entity, readOnly );
	}

View on GitHub (pinned to fad1729dce)

Solutions

  1. Do not perform write operations on a read-only session; obtain a normal session for mutations.
  2. If the read-only flag was set by a @Transactional(readOnly=true), open a non-read-only transaction for the write.

When it happens

Trigger: Thrown at hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java:1928 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/f2f0edad9c2c6a38. Report an issue: GitHub.