Nexus err500 input output error npm install

When trying to get an artifact from nexus I get a 500 error input / output (See nexus.log error below). Weird thing is that his happens with only some artifacts, not all, so far I’ve detected that occurs with one artifact and all of its versions, for example

artifact1 v1.0.0 artifact1 v1.0.1 artifact1 v1.0.2 and so on.

This error occurs when from npm executing

npm install

I tried to delete the artifact from the UI and got the exact same error.

I tried to increase the log level up to trace for org.sonatype.nexus.extdirect.internal.ExtDirectExceptionHandler but there is no any more information.

I download this artifact and uploaded into a newer nexus and it works just fine.

I check the permissions of the object in the nexus blob, and it has permissions for nexus user, so I guess that is fine as well.

Also, I made a reindex and expired the cache of the repo from the UI, it turned out alright but still get the same error.

This happens when setting the registry to the group repo or to the private repo

It happens when doing npm install either from a pipeline or local environment.

I tried to do npm cache verify npm cache clean --force

removing local npm_modules folder and package-lock.json but still got the error.

Googled for the error but is quite a generic one so I didn’t f

Got any idea on how to proceed to solve this or at least what direction to check?

2021-06-03 13:50:07,861+0000 ERROR [qtp1904216673-24971]  admin org.sonatype.nexus.extdirect.internal.ExtDirectExceptionHandler - Failed to invoke action method: coreui_Component.deleteAsset, java-method: org.sonatype.nexus.coreui.ComponentComponent.deleteAsset
java.lang.RuntimeException: java.io.IOException: Input/output error
                at org.sonatype.nexus.repository.npm.internal.NpmHostedComponentMaintenanceImpl.deleteAssetTx(NpmHostedComponentMaintenanceImpl.java:88)
                at org.sonatype.nexus.repository.npm.internal.NpmHostedComponentMaintenanceImpl.deleteAssetTx(NpmHostedComponentMaintenanceImpl.java:70)
                at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:56)
                at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:54)
                at org.sonatype.nexus.repository.storage.DefaultComponentMaintenanceImpl.deleteAsset(DefaultComponentMaintenanceImpl.java:94)
                at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39)
                at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272)
                at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53)
                at org.sonatype.nexus.repository.storage.DefaultComponentMaintenanceImpl.deleteAsset(DefaultComponentMaintenanceImpl.java:85)
                at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39)
                at org.sonatype.nexus.common.stateguard.StateGuard$GuardImpl.run(StateGuard.java:272)
                at org.sonatype.nexus.common.stateguard.GuardedInterceptor.invoke(GuardedInterceptor.java:53)
                at org.sonatype.nexus.repository.maintenance.internal.MaintenanceServiceImpl.deleteAsset(MaintenanceServiceImpl.java:85)
                at org.sonatype.nexus.repository.maintenance.MaintenanceService$deleteAsset$1.call(Unknown Source)
                at org.sonatype.nexus.coreui.ComponentComponent.deleteAsset(ComponentComponent.groovy:306)
                at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:23)
                at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:26)
                at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53)
                at org.apache.shiro.guice.aop.AopAllianceMethodInvocationAdapter.proceed(AopAllianceMethodInvocationAdapter.java:49)
                at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.invoke(AuthorizingAnnotationMethodInterceptor.java:68)
                at org.apache.shiro.guice.aop.AopAllianceMethodInterceptorAdapter.invoke(AopAllianceMethodInterceptorAdapter.java:36)
                at sun.reflect.GeneratedMethodAccessor2329.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142)
                at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133)
                at org.sonatype.nexus.extdirect.internal.ExtDirectDispatcher.invokeMethod(ExtDirectDispatcher.java:82)
                at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63)
                at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73)
                at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502)
                at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150)
                at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133)
                at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83)
                at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:632)
                at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:595)
                at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:129)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
                at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286)
                at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276)
                at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181)
                at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71)
                at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85)
                at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112)
                at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
                at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
                at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
                at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
                at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
                at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
                at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
                at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
                at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
                at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
                at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
                at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
                at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
                at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
                at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
                at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85)
                at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
                at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
                at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
                at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
                at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
                at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101)
                at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
                at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
                at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:108)
                at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
                at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:112)
                at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
                at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:68)
                at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
                at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:101)
                at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
                at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98)
                at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
                at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104)
                at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135)
                at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73)
                at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602)
                at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
                at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
                at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
                at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
                at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
                at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1588)
                at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
                at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
                at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
                at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
                at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1557)
                at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
                at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
                at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
                at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
                at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:239)
                at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
                at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
                at org.eclipse.jetty.server.Server.handle(Server.java:502)
                at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
                at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
                at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
                at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
                at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
                at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
                at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
                at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
                at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
                at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
                at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
                at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
                at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Input/output error
                at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
                at sun.nio.ch.FileDispatcherImpl.read(FileDispatcherImpl.java:46)
                at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
                at sun.nio.ch.IOUtil.read(IOUtil.java:197)
                at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:159)
                at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:65)
                at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:109)
                at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:103)
                at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
                at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
                at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
                at com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper.ensureLoaded(ByteSourceJsonBootstrapper.java:522)
                at com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper.detectEncoding(ByteSourceJsonBootstrapper.java:129)
                at com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper.constructParser(ByteSourceJsonBootstrapper.java:246)
                at com.fasterxml.jackson.core.JsonFactory._createParser(JsonFactory.java:1315)
                at com.fasterxml.jackson.core.JsonFactory.createParser(JsonFactory.java:820)
                at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3065)
                at org.sonatype.nexus.repository.npm.internal.NpmJsonUtils.parse(NpmJsonUtils.java:74)
                at org.sonatype.nexus.repository.npm.internal.NpmFacetUtils.loadPackageRoot(NpmFacetUtils.java:344)
                at org.sonatype.nexus.repository.npm.internal.NpmHostedComponentMaintenanceImpl.deleteTarball(NpmHostedComponentMaintenanceImpl.java:114)
                at org.sonatype.nexus.repository.npm.internal.NpmHostedComponentMaintenanceImpl.deleteAssetTx(NpmHostedComponentMaintenanceImpl.java:84)
                ... 113 common frames omitted

Hi Esteban, the stacktrace you shared shows execetion path going via org.sonatype.nexus.extdirect which suggest it was access via the WebUI. Can you please check whether you have configured the right registry URL in your npm client, please? NPM client should use dedicated repository URL you can find on repository page, and it’s not the same as you use to browse it using your web browser. Once you have verified it’s using the correct URL, please share your request.log that will reveal which URL are actually being accessed by your NPM client.