Failed to publish layer from geopackage

Hi
I’m having trouble publishing a layer from a geopackage file. I get an error message saying An error occurred while loading the page with the following stacktrace:

java.lang.RuntimeException: Error occurred while building the resources for the configuration page at org.geoserver.web.data.layer.NewLayerPage.buildLayerInfo(NewLayerPage.java:473) at org.geoserver.web.data.layer.NewLayerPage$10.onClick(NewLayerPage.java:372) at org.geoserver.web.wicket.SimpleAjaxLink$1.onClick(SimpleAjaxLink.java:63) at org.apache.wicket.ajax.markup.html.AjaxLink$1.onEvent(AjaxLink.java:85) at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:147) at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:630) at org.apache.wicket.core.request.handler.ListenerRequestHandler.internalInvoke(ListenerRequestHandler.java:300) at org.apache.wicket.core.request.handler.ListenerRequestHandler.invoke(ListenerRequestHandler.java:274) at org.apache.wicket.core.request.handler.ListenerRequestHandler.invokeListener(ListenerRequestHandler.java:222) at org.apache.wicket.core.request.handler.ListenerRequestHandler.respond(ListenerRequestHandler.java:202) at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:913) at org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:63) at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:294) at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:255) at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:277) at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:208) at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:137) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:633) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:162) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:49) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1000) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:892) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:633) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.eclipse.jetty.ee11.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1397) at org.eclipse.jetty.ee11.servlet.ServletHolder.handle(ServletHolder.java:754) at org.eclipse.jetty.ee11.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1668) at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28) at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205) at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70) at org.geoserver.rest.SuffixStripFilter.doFilterInternal(SuffixStripFilter.java:79) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:67) at org.geoserver.ows.HTTPHeadersCollector.doFilter(HTTPHeadersCollector.java:48) at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:67) at org.geoserver.filters.HTTPMethodFilter.doFilter(HTTPMethodFilter.java:34) at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:67) at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:180) at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:67) at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:41) at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205) at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:39) at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205) at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:235) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:376) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:67) at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:101) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71) at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:88) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:67) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71) at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:88) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:52) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:67) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:245) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:239) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71) at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:88) at org.geoserver.security.filter.GeoServerUserNamePasswordAuthenticationFilter.doFilter(GeoServerUserNamePasswordAuthenticationFilter.java:119) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:67) at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:115) at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:106) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71) at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:88) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:67) at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilterInternal(GeoServerSecurityContextPersistenceFilter.java:66) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71) at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:88) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:385) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:237) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:195) at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:139) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:355) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:272) at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205) at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) at org.geoserver.filters.SecurityHeadersFilter.doFilter(SecurityHeadersFilter.java:116) at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205) at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:46) at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205) at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:47) at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205) at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:41) at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205) at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:199) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:208) at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640) at org.eclipse.jetty.ee11.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1602) at org.eclipse.jetty.ee11.servlet.ServletChannel.dispatch(ServletChannel.java:871) at org.eclipse.jetty.ee11.servlet.ServletChannel.handle(ServletChannel.java:449) at org.eclipse.jetty.ee11.servlet.ServletHandler.handle(ServletHandler.java:469) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:546) at org.eclipse.jetty.ee11.servlet.SessionHandler.handle(SessionHandler.java:763) at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1253) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:148) at org.eclipse.jetty.server.Server.handle(Server.java:197) at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:804) at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:420) at org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1790) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:492) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.epcRunTask(AdaptiveExecutionStrategy.java:428) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:401) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:255) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:204) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:317) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1240) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194) at java.base/java.lang.Thread.run(Thread.java:840) Caused by: java.lang.NullPointerException: Cannot invoke “org.eclipse.imagen.ImageLayout.clone()” because “this.imageLayout” is null at org.geotools.coverage.grid.io.AbstractGridCoverage2DReader.getImageLayout(AbstractGridCoverage2DReader.java:1091) at org.geoserver.catalog.CoverageDimensionCustomizerReader.getImageLayout(CoverageDimensionCustomizerReader.java:451) at org.geoserver.catalog.SingleGridCoverage2DReader.getImageLayout(SingleGridCoverage2DReader.java:190) at org.geoserver.catalog.CatalogBuilder.getCoverageSampleDimensions(CatalogBuilder.java:1121) at org.geoserver.catalog.CatalogBuilder.buildCoverageInternal(CatalogBuilder.java:1009) at org.geoserver.catalog.CatalogBuilder.buildCoverage(CatalogBuilder.java:935) at org.geoserver.catalog.CatalogBuilder.buildCoverage(CatalogBuilder.java:896) at org.geoserver.web.data.layer.NewLayerPage.buildLayerInfo(NewLayerPage.java:460) … 131 more

The package can be opened in QGIS Desktop, although you need to adjust the last_change date to be able to add it as a store in GeoServer. GeoServer does not like the date format used. The geopackage file is 129GB so I can’t attach it here but it is available for download from this ftp-site: ftp:// download-opendata.lantmateriet.se/Topografisk_webbkarta_raster/Nedtonad_05m_mercator/

Is there something I’m doing wrong, something with the data incorrect or is it a bug in GeoServer?

Appreciate any help you can give me
/Fredrik

We need to know which layer you are trying to load and what ogrinfo reports for that layer

Ian

The layer is a raster layer from a geopackage file. I’ve added it as a GeoPackage (mosaic) Raster Data Source.

I couldn’t get anything from ogrinfo but gdalinfo reports this

Driver: GPKG/GeoPackage
Files: C:\Geodata\Topo nedladdnig\1159000_7377433.gpkg
C:\Geodata\Topo nedladdnig\1159000_7377433.gpkg.aux.xml
Size is 33554432, 33554432
Coordinate System is:
PROJCRS[“WGS 84 / Pseudo-Mercator”,
BASEGEOGCRS[“WGS 84”,
ENSEMBLE[“World Geodetic System 1984 ensemble”,
MEMBER[“World Geodetic System 1984 (Transit)”],
MEMBER[“World Geodetic System 1984 (G730)”],
MEMBER[“World Geodetic System 1984 (G873)”],
MEMBER[“World Geodetic System 1984 (G1150)”],
MEMBER[“World Geodetic System 1984 (G1674)”],
MEMBER[“World Geodetic System 1984 (G1762)”],
MEMBER[“World Geodetic System 1984 (G2139)”],
MEMBER[“World Geodetic System 1984 (G2296)”],
ELLIPSOID[“WGS 84”,6378137,298.257223563,
LENGTHUNIT[“metre”,1]],
ENSEMBLEACCURACY[2.0]],
PRIMEM[“Greenwich”,0,
ANGLEUNIT[“degree”,0.0174532925199433]],
ID[“EPSG”,4326]],
CONVERSION[“Popular Visualisation Pseudo-Mercator”,
METHOD[“Popular Visualisation Pseudo Mercator”,
ID[“EPSG”,1024]],
PARAMETER[“Latitude of natural origin”,0,
ANGLEUNIT[“degree”,0.0174532925199433],
ID[“EPSG”,8801]],
PARAMETER[“Longitude of natural origin”,0,
ANGLEUNIT[“degree”,0.0174532925199433],
ID[“EPSG”,8802]],
PARAMETER[“False easting”,0,
LENGTHUNIT[“metre”,1],
ID[“EPSG”,8806]],
PARAMETER[“False northing”,0,
LENGTHUNIT[“metre”,1],
ID[“EPSG”,8807]]],
CS[Cartesian,2],
AXIS[“easting (X)”,east,
ORDER[1],
LENGTHUNIT[“metre”,1]],
AXIS[“northing (Y)”,north,
ORDER[2],
LENGTHUNIT[“metre”,1]],
USAGE[
SCOPE[“Web mapping and visualisation.”],
AREA[“World between 85.06┬░S and 85.06┬░N.”],
BBOX[-85.06,-180,85.06,180]],
ID[“EPSG”,3857]]
Data axis to CRS axis mapping: 1,2
Origin = (-20037508.342789247632027,20037508.342789247632027)
Pixel Size = (1.194328566955879,-1.194328566955879)
Metadata:
ZOOM_LEVEL=17
IDENTIFIER=topowebb_nedtonad
DESCRIPTION=Ursprung Lantmäteriet
Image Structure Metadata:
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left (-20037508.343,20037508.343) (180d 0’ 0.00"W, 85d 3’ 4.06"N)
Lower Left (-20037508.343,-20037508.343) (180d 0’ 0.00"W, 85d 3’ 4.06"S)
Upper Right (20037508.343,20037508.343) (180d 0’ 0.00"E, 85d 3’ 4.06"N)
Lower Right (20037508.343,-20037508.343) (180d 0’ 0.00"E, 85d 3’ 4.06"S)
Center ( -0.0000000, 0.0000000) ( 0d 0’ 0.00"W, 0d 0’ 0.00"N)
Band 1 Block=256x256 Type=Byte, ColorInterp=Red
Min=179.000 Max=255.000
Overviews: 16777216x16777216, 8388608x8388608, 4194304x4194304, 2097152x2097152, 1048576x1048576, 524288x524288, 262144x262144, 131072x131072, 65536x65536, 32768x32768, 16384x16384, 8192x8192, 4096x4096, 2048x2048, 1024x1024, 512x512, 256x256
Mask Flags: PER_DATASET ALPHA
Overviews of mask band: 16777216x16777216, 8388608x8388608, 4194304x4194304, 2097152x2097152, 1048576x1048576, 524288x524288, 262144x262144, 131072x131072, 65536x65536, 32768x32768, 16384x16384, 8192x8192, 4096x4096, 2048x2048, 1024x1024, 512x512, 256x256
Metadata:
STATISTICS_APPROXIMATE=YES
STATISTICS_MAXIMUM=255
STATISTICS_MEAN=254.3161315918
STATISTICS_MINIMUM=179
STATISTICS_STDDEV=3.6390579414779
STATISTICS_VALID_PERCENT=100
Band 2 Block=256x256 Type=Byte, ColorInterp=Green
Min=204.000 Max=255.000
Overviews: 16777216x16777216, 8388608x8388608, 4194304x4194304, 2097152x2097152, 1048576x1048576, 524288x524288, 262144x262144, 131072x131072, 65536x65536, 32768x32768, 16384x16384, 8192x8192, 4096x4096, 2048x2048, 1024x1024, 512x512, 256x256
Mask Flags: PER_DATASET ALPHA
Overviews of mask band: 16777216x16777216, 8388608x8388608, 4194304x4194304, 2097152x2097152, 1048576x1048576, 524288x524288, 262144x262144, 131072x131072, 65536x65536, 32768x32768, 16384x16384, 8192x8192, 4096x4096, 2048x2048, 1024x1024, 512x512, 256x256
Metadata:
STATISTICS_APPROXIMATE=YES
STATISTICS_MAXIMUM=255
STATISTICS_MEAN=254.52258300781
STATISTICS_MINIMUM=204
STATISTICS_STDDEV=2.6509269306682
STATISTICS_VALID_PERCENT=100
Band 3 Block=256x256 Type=Byte, ColorInterp=Blue
Min=204.000 Max=255.000
Overviews: 16777216x16777216, 8388608x8388608, 4194304x4194304, 2097152x2097152, 1048576x1048576, 524288x524288, 262144x262144, 131072x131072, 65536x65536, 32768x32768, 16384x16384, 8192x8192, 4096x4096, 2048x2048, 1024x1024, 512x512, 256x256
Mask Flags: PER_DATASET ALPHA
Overviews of mask band: 16777216x16777216, 8388608x8388608, 4194304x4194304, 2097152x2097152, 1048576x1048576, 524288x524288, 262144x262144, 131072x131072, 65536x65536, 32768x32768, 16384x16384, 8192x8192, 4096x4096, 2048x2048, 1024x1024, 512x512, 256x256
Metadata:
STATISTICS_APPROXIMATE=YES
STATISTICS_MAXIMUM=255
STATISTICS_MEAN=254.65144348144
STATISTICS_MINIMUM=204
STATISTICS_STDDEV=2.3169921906172
STATISTICS_VALID_PERCENT=100
Band 4 Block=256x256 Type=Byte, ColorInterp=Alpha
Min=255.000 Max=255.000
Overviews: 16777216x16777216, 8388608x8388608, 4194304x4194304, 2097152x2097152, 1048576x1048576, 524288x524288, 262144x262144, 131072x131072, 65536x65536, 32768x32768, 16384x16384, 8192x8192, 4096x4096, 2048x2048, 1024x1024, 512x512, 256x256
Metadata:
STATISTICS_APPROXIMATE=YES
STATISTICS_MAXIMUM=255
STATISTICS_MEAN=255
STATISTICS_MINIMUM=255
STATISTICS_STDDEV=0
STATISTICS_VALID_PERCENT=100