The database has been closed [90098-232] - Sonatype Nexus Repository - Sonatype Community
The database has been closed [90098-232]
post by ashang on Jan 12
AiJun Shang
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!!!
post by ashang on Jan 12
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)
post by Jacob Arcila Cardenas on Jan 14
Jacob Arcila Cardenas
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?