# Apt repositories (hosted & proxy) snapshots creating method does not work

**URL:** <https://community.sonatype.com/t/apt-repositories-hosted-proxy-snapshots-creating-method-does-not-work/6198>\
**Category:** Sonatype Nexus Repository\
**Tags:** help\
**Created:** [March 29, 2021, 1:33pm UTC](https://community.sonatype.com/t/apt-repositories-hosted-proxy-snapshots-creating-method-does-not-work/6198 "2021-03-29T13:33:13Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![dmitro.biz](https://yyz1.discourse-cdn.com/flex047/user_avatar/community.sonatype.com/dmitro.biz/32/1736_2.png) [@dmitro.biz](https://community.sonatype.com/u/dmitro.biz)\
**Post date:** [March 29, 2021, 1:33pm UTC](https://community.sonatype.com/t/apt-repositories-hosted-proxy-snapshots-creating-method-does-not-work/6198/1 "2021-03-29T13:33:13Z")

</div>

**Sonatype Nexus Repository Manager OSS:** 3.29.2-02

[According to the manual “Taking a Snapshot of a repository metadata”](https://help.sonatype.com/repomanager3/formats/apt-repositories#AptRepositories-TakingaSnapshotofarepositorymetadata) - the method returns Error 500.

```
$ curl -vvvv -u 'changedadmin:changedpassword' -X MKCOL https://nexus.mydomain.net:8443/repository/my-apt-proxy/snapshots/release123
* Trying xx.yy.zz.aa...
* TCP_NODELAY set
* Connected to nexus.mydomain.net (xx.yy.zz.aa) port 8443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-SHA384
* ALPN, server did not agree to a protocol
* Server certificate:
* subject: CN=*.mydomain.net
* start date: Mar 3 15:46:33 2021 GMT
* expire date: Jun 1 15:46:33 2021 GMT
* subjectAltName: host "nexus.mydomain.net" matched cert's "*.mydomain.net"
* issuer: C=US; O=Let's Encrypt; CN=R3
* SSL certificate verify ok.
* Server auth using Basic with user 'changedadmin'
> MKCOL /repository/my-apt-proxy/snapshots/release123 HTTP/1.1
> Host: nexus.mydomain.net:8443
> Authorization: Basic YRWRtaW461pQ29yU2lnaHjOZXhBZGbjIwMAh
> User-Agent: curl/7.58.0
> Accept: */*
> 
< HTTP/1.1 500 Server Error
< Server: Nexus/3.29.2-02 (OSS)
< X-Content-Type-Options: nosniff
< Content-Security-Policy: sandbox allow-forms allow-modals allow-popups allow-presentation allow-scripts allow-top-navigation
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: DENY
< Content-Length: 0
< 
* Connection #0 to host nexus.mydomain.net left intact

```

I really need snapshots for apt hosted and proxy repositories.  
I ask the respected community to clarify the possibility of their creation.

---

<div class="post-metadata">

**Author:** ![mpiggott](https://avatars.discourse-cdn.com/v4/letter/m/f0a364/32.png) [@mpiggott](https://community.sonatype.com/u/mpiggott)\
**Post date:** [March 29, 2021, 1:53pm UTC](https://community.sonatype.com/t/apt-repositories-hosted-proxy-snapshots-creating-method-does-not-work/6198/2 "2021-03-29T13:53:39Z")

</div>

You’d have to look at whatever error is on the server.

---

<div class="post-metadata">

**Author:** ![dmitro.biz](https://yyz1.discourse-cdn.com/flex047/user_avatar/community.sonatype.com/dmitro.biz/32/1736_2.png) [@dmitro.biz](https://community.sonatype.com/u/dmitro.biz)\
**Post date:** [March 29, 2021, 2:32pm UTC](https://community.sonatype.com/t/apt-repositories-hosted-proxy-snapshots-creating-method-does-not-work/6198/3 "2021-03-29T14:32:42Z")

</div>

Thank you, Matthew!  
There is only this warning in the log:

```
2021-03-29 15:26:19,852+0100 WARN [qtp1004474332-1067] admin org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: MKCOL /repository/my-apt-proxy/snapshots/release123
java.lang.IllegalArgumentException: Illegal character in path at index 12: dists/bionic main restricted universe multiverse/Release
	at java.net.URI.create(URI.java:852)
	at java.net.URI.resolve(URI.java:1036)
	at org.sonatype.nexus.repository.apt.internal.proxy.AptProxyFacet.fetchLatest(AptProxyFacet.java:133)
	at org.sonatype.nexus.repository.apt.internal.proxy.AptProxyFacet.fetchLatest(AptProxyFacet.java:116)
	at org.sonatype.nexus.repository.apt.internal.proxy.AptProxyFacet.getSnapshotItems(AptProxyFacet.java:72)
	at org.sonatype.nexus.repository.apt.internal.proxy.AptProxySnapshotFacet.fetchSnapshotItems(AptProxySnapshotFacet.java:36)
	at org.sonatype.nexus.repository.apt.internal.snapshot.AptSnapshotFacetSupport.collectSnapshotItems(AptSnapshotFacetSupport.java:124)
	at org.sonatype.nexus.repository.apt.internal.snapshot.AptSnapshotFacetSupport.createSnapshot(AptSnapshotFacetSupport.java:65)
	at org.sonatype.nexus.repository.apt.internal.snapshot.AptSnapshotHandler.doMkcol(AptSnapshotHandler.java:96)
	at org.sonatype.nexus.repository.apt.internal.snapshot.AptSnapshotHandler.handleSnapshotAdminRequest(AptSnapshotHandler.java:85)
	at org.sonatype.nexus.repository.apt.internal.snapshot.AptSnapshotHandler.handle(AptSnapshotHandler.java:71)
	at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
	at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39)
	at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
	at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:46)
	at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
	at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:59)
	at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
	at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72)
	at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
	at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:48)
	at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
	at com.sonatype.nexus.clm.internal.orient.FirewallContributedHandler.handle(FirewallContributedHandler.java:101)
	at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
	at org.sonatype.nexus.repository.view.handlers.HandlerContributor.handle(HandlerContributor.java:67)
	at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
	at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:42)
	at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
	at org.sonatype.nexus.repository.routing.internal.RoutingRuleHandler.handle(RoutingRuleHandler.java:52)
	at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
	at org.sonatype.nexus.repository.view.handlers.FormatHighAvailabilitySupportHandler.handle(FormatHighAvailabilitySupportHandler.java:52)
	at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
	at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:51)
	at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
	at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:58)
	at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
	at org.sonatype.nexus.repository.view.Context.start(Context.java:179)
	at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:65)
	at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52)
	at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43)
	at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:213)
	at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:175)
	at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:127)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:290)
	at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:280)
	at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:184)
	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.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:450)
	at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:96)
	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:387)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
	at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:112)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at org.sonatype.nexus.repository.httpbridge.internal.ExhaustRequestFilter.doFilter(ExhaustRequestFilter.java:80)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:116)
	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:79)
	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:133)
	at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1609)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:561)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1612)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1582)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:239)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:540)
	at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:395)
	at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:161)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.URISyntaxException: Illegal character in path at index 12: dists/bionic main restricted universe multiverse/Release
	at java.net.URI$Parser.fail(URI.java:2848)
	at java.net.URI$Parser.checkChars(URI.java:3021)
	at java.net.URI$Parser.parseHierarchical(URI.java:3105)
	at java.net.URI$Parser.parse(URI.java:3063)
	at java.net.URI.<init>(URI.java:588)
	at java.net.URI.create(URI.java:850)
	... 132 common frames omitted
```

---

<div class="post-metadata">

**Author:** ![dmitro.biz](https://yyz1.discourse-cdn.com/flex047/user_avatar/community.sonatype.com/dmitro.biz/32/1736_2.png) [@dmitro.biz](https://community.sonatype.com/u/dmitro.biz)\
**Post date:** [March 29, 2021, 2:49pm UTC](https://community.sonatype.com/t/apt-repositories-hosted-proxy-snapshots-creating-method-does-not-work/6198/4 "2021-03-29T14:49:52Z")

</div>

![nexus-apt-proxy-settings1](https://canada1.discourse-cdn.com/flex047/uploads/communitysonatype/original/2X/c/c434c0f1670e16c3f34bce49d116b8074eacbf3e.png)

---

<div class="post-metadata">

**Author:** ![dmitro.biz](https://yyz1.discourse-cdn.com/flex047/user_avatar/community.sonatype.com/dmitro.biz/32/1736_2.png) [@dmitro.biz](https://community.sonatype.com/u/dmitro.biz)\
**Post date:** [March 29, 2021, 2:51pm UTC](https://community.sonatype.com/t/apt-repositories-hosted-proxy-snapshots-creating-method-does-not-work/6198/5 "2021-03-29T14:51:03Z")

</div>

![nexus-apt-proxy-settings1](https://canada1.discourse-cdn.com/flex047/uploads/communitysonatype/original/2X/9/9ad608a54f4cf2023a8b7d74bf0ec88f6a056d8a.png)

---

<div class="post-metadata">

**Author:** ![dmitro.biz](https://yyz1.discourse-cdn.com/flex047/user_avatar/community.sonatype.com/dmitro.biz/32/1736_2.png) [@dmitro.biz](https://community.sonatype.com/u/dmitro.biz)\
**Post date:** [March 29, 2021, 3:00pm UTC](https://community.sonatype.com/t/apt-repositories-hosted-proxy-snapshots-creating-method-does-not-work/6198/6 "2021-03-29T15:00:26Z")

</div>

> [@dmitro.biz](#):
>
> `Caused by: java.net.URISyntaxException: Illegal character in path at index 12: dists/bionic main restricted universe multiverse/Release`

the question was solved - leaving only the ‘bionic’ in the field ‘Distribution to fetch’

 ![image](https://canada1.discourse-cdn.com/flex047/uploads/communitysonatype/original/2X/9/9ef952d942ec9d71683c511b661b3ff14b718317.png)

Thanks!

---

<div class="post-metadata">

**Author:** ![mpiggott](https://avatars.discourse-cdn.com/v4/letter/m/f0a364/32.png) [@mpiggott](https://community.sonatype.com/u/mpiggott)\
**Post date:** [March 29, 2021, 3:12pm UTC](https://community.sonatype.com/t/apt-repositories-hosted-proxy-snapshots-creating-method-does-not-work/6198/7 "2021-03-29T15:12:25Z")

</div>

Cool, I put a ticket in to handle it more gracefully but I’m not sure when that will be tackled.

---

<div class="post-metadata">

**Author:** ![dushi404](https://avatars.discourse-cdn.com/v4/letter/d/b9bd4f/32.png) [@dushi404](https://community.sonatype.com/u/dushi404)\
**Post date:** [January 11, 2023, 7:21am UTC](https://community.sonatype.com/t/apt-repositories-hosted-proxy-snapshots-creating-method-does-not-work/6198/8 "2023-01-11T07:21:46Z")

</div>

Hi Dmitro

There is no Contents-amd64.gz file in your snapshot.  
without that file is that working fine? I am badly facing that issue in my environment.

“dists/jammy/Contents-amd64 404 Not Found” error.
