The database has been closed [90098-232]

Hello,

We are using Sonatype Nexus Repository OSS 3.75.1-01, the DB is H2, H2 db version is 2.3.232.

Recently, some users in our company complained about the intermittent 401 or 403 errors, which look like

Even though this issue happened, the nexus is still running.
I pulled some logs from nexus.log; they are

2026-01-07 13:11:59,736+0000 ERROR [periodic-4-thread-1]  *SYSTEM org.sonatype.nexus.blobstore.file.internal.datastore.metrics.DatastoreFileBlobStoreMetricsService - Failed to save blobstore metrics to db
org.sonatype.nexus.datastore.api.DataAccessException:
### Error rolling back transaction.  Cause: org.h2.jdbc.JdbcSQLNonTransientConnectionException: The database has been closed [90098-232]
.......

### Error querying database.  Cause: org.h2.jdbc.JdbcSQLNonTransientConnectionException: The database has been closed [90098-232]
### The error may exist in org.sonatype.nexus.content.maven.store.Maven2AssetDAO
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT * FROM maven2_asset WHERE       repository_id = ? AND path = ?    ;
### Cause: org.h2.jdbc.JdbcSQLNonTransientConnectionException: The database has been closed [90098-232]

Could anyone tell me how to fix this issue?

Thank you in advance!!!

Except the above error from log, I also found some information from nexus.trace.db file

Caused by: org.h2.mvstore.MVStoreException: Chunk 14836371 not found [2.3.232/9]
	at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:996)
	at org.h2.mvstore.FileStore.getChunk(FileStore.java:2014)
	at org.h2.mvstore.FileStore.readPage(FileStore.java:1961)
	at org.h2.mvstore.MVStore.readPage(MVStore.java:1021)
	at org.h2.mvstore.MVMap.readPage(MVMap.java:632)
	at org.h2.mvstore.Page$NonLeaf.getChildPage(Page.java:1158)
	at org.h2.mvstore.CursorPos.traverseDown(CursorPos.java:61)
	at org.h2.mvstore.MVMap.operate(MVMap.java:1766)
	at org.h2.mvstore.MVMap.rewritePage(MVMap.java:690)
	at org.h2.mvstore.FileStore.rewriteChunks(FileStore.java:1927)
	at org.h2.mvstore.FileStore.compactRewrite(FileStore.java:1903)
	at org.h2.mvstore.FileStore.rewriteChunks(FileStore.java:1862)
	at org.h2.mvstore.RandomAccessStore.lambda$doHousekeeping$4(RandomAccessStore.java:734)
	at org.h2.mvstore.MVStore.tryExecuteUnderStoreLock(MVStore.java:937)
	at org.h2.mvstore.RandomAccessStore.doHousekeeping(RandomAccessStore.java:729)
	at org.h2.mvstore.FileStore.writeInBackground(FileStore.java:1841)
	at org.h2.mvstore.FileStore$BackgroundWriterThread.run(FileStore.java:2256)
2026-01-12 09:01:37.224429Z jdbc[6]: exception
org.h2.jdbc.JdbcSQLNonTransientConnectionException: The database has been closed [90098-232]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:690)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)

I wouldn’t expect the stack traces you sent to cause 401 or 403 errors, the code was running a period task to save metrics information, and the exception you saw inside the nexus.trace.db file could indicate either a database corruption or maybe a h2 bug https://github.com/h2database/h2database/issues/4142?