Error while restoring asset: blob store:

After updating the database on H2, I see an error in the logs when running Repair - Reconcile component database from blob store

2024-11-12 15:30:47,606+0000 ERROR [quartz-9-thread-19] *SYSTEM com.sonatype.nexus.blobstore.restore.nuget.internal.NugetRestoreBlobStrategy - Error while restoring asset: blob store: default, repository: dot_nuget, path: /System.Runtime.CompilerServices.Unsafe-4.4.0.nupkg, blob name: /System.Runtime.CompilerServices.Unsafe-4.4.0.nupkg, blob id: fb7b9301-598b-4d93-b0e5-261d91fbbf85
org.sonatype.nexus.repository.IllegalOperationException: dotnet_nuget/System.Runtime.CompilerServices.Unsafe/4.4.0 cannot be updated
at org.sonatype.nexus.repository.content.facet.ContentFacetSupport.throwNotAllowed(ContentFacetSupport.java:316)
at org.sonatype.nexus.repository.content.facet.ContentFacetSupport.checkAttachAllowed(ContentFacetSupport.java:305)
at org.sonatype.nexus.repository.content.fluent.internal.FluentAssetBuilderImpl.attach(FluentAssetBuilderImpl.java:273)
at org.sonatype.nexus.repository.content.fluent.internal.FluentAssetImpl.attach(FluentAssetImpl.java:162)
at com.sonatype.nexus.repository.nuget.datastore.internal.NugetContentFacetImpl.lambda$17(NugetContentFacetImpl.java:435)
at java.base/java.util.Optional.map(Optional.java:260)
at com.sonatype.nexus.repository.nuget.datastore.internal.NugetContentFacetImpl.getOrCreatePackageAsset(NugetContentFacetImpl.java:433)
at com.sonatype.nexus.repository.nuget.datastore.internal.NugetContentFacetImpl.putPackage(NugetContentFacetImpl.java:125)
at com.sonatype.nexus.repository.nuget.datastore.internal.ContentNugetV3HostedFacetImpl.put(ContentNugetV3HostedFacetImpl.java:127)
at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39)
at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:287)
at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:54)
at com.sonatype.nexus.blobstore.restore.nuget.internal.NugetRestoreBlobStrategy.restoreHostedPackage(NugetRestoreBlobStrategy.java:153)
at com.sonatype.nexus.blobstore.restore.nuget.internal.NugetRestoreBlobStrategy.createAssetFromBlob(NugetRestoreBlobStrategy.java:206)
at org.sonatype.nexus.blobstore.restore.datastore.BaseRestoreBlobStrategy.restore(BaseRestoreBlobStrategy.java:132)
at org.sonatype.nexus.blobstore.restore.datastore.RestoreMetadataTask.restore(RestoreMetadataTask.java:219)
at org.sonatype.nexus.blobstore.restore.datastore.RestoreMetadataTask.execute(RestoreMetadataTask.java:172)
at org.sonatype.nexus.blobstore.restore.datastore.RestoreMetadataTask.execute(RestoreMetadataTask.java:1)
at org.sonatype.nexus.scheduling.TaskSupport.call(TaskSupport.java:105)
at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.doExecute(QuartzTaskJob.java:143)
at org.sonatype.nexus.quartz.internal.task.QuartzTaskJob.execute(QuartzTaskJob.java:106)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.sonatype.nexus.quartz.internal.QuartzThreadPool.lambda$0(QuartzThreadPool.java:145)
at org.sonatype.nexus.thread.internal.MDCAwareRunnable.run(MDCAwareRunnable.java:40)
at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120)
at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)

Reconcile should only be used for disaster recovery (not sure why you reference after updating)

The stack trace suggests a bug for NuGet and repository write policy (i.e. redploy disabled). You could file this at Issues · sonatype/nexus-public · GitHub