Using "Multi" for elevation seems to download corrupted elevation tif files (for Finland)

Is there some known issue with using “multi” as the elevation provider? At least for Finland I get error when doing import:

2026-07-19 07:47:17.381 [main] INFO  c.g.reader.dem.GMTEDProvider - gmted Elevation Provider, from: https://edcintl.cr.usgs.gov/downloads/sciweb1/shared/topo/downloads/GMTED/Global_tiles_GMTED/075darcsec/mea/, to: /data/elevation_cache, as: MMAP_STORE using interpolate: false
java.lang.RuntimeException: Could not parse OSM file: /data/final.osm.pbf
        at com.graphhopper.reader.osm.WaySegmentParser.readOSM(WaySegmentParser.java:403)
        at com.graphhopper.reader.osm.WaySegmentParser.readOSM(WaySegmentParser.java:104)
        at com.graphhopper.reader.osm.OSMReader.readGraph(OSMReader.java:175)
        at com.graphhopper.GraphHopper.importOSM(GraphHopper.java:961)
        at com.graphhopper.GraphHopper.process(GraphHopper.java:845)
        at com.graphhopper.GraphHopper.importAndClose(GraphHopper.java:809)
        at com.graphhopper.application.cli.ImportCommand.run(ImportCommand.java:36)
        at com.graphhopper.application.cli.ImportCommand.run(ImportCommand.java:27)
        at io.dropwizard.core.cli.ConfiguredCommand.run(ConfiguredCommand.java:98)
        at io.dropwizard.core.cli.Cli.run(Cli.java:78)
        at io.dropwizard.core.Application.run(Application.java:94)
        at com.graphhopper.application.GraphHopperApplication.main(GraphHopperApplication.java:37)
Caused by: java.lang.RuntimeException: Can't decode 50n000e_20101117_gmted_mea075.tif
        at com.graphhopper.reader.dem.GMTEDProvider.readFile(GMTEDProvider.java:150)
        at com.graphhopper.reader.dem.AbstractTiffElevationProvider.getEle(AbstractTiffElevationProvider.java:148)
        at com.graphhopper.reader.dem.MultiSourceElevationProvider.getEle(MultiSourceElevationProvider.java:55)
        at com.graphhopper.reader.dem.ElevationProvider.getEle(ElevationProvider.java:52)
        at com.graphhopper.reader.osm.OSMReader.getElevation(OSMReader.java:194)
        at com.graphhopper.reader.osm.WaySegmentParser$Pass2Handler.lambda$handleNode$0(WaySegmentParser.java:206)
        at com.graphhopper.reader.osm.OSMNodeData.addCoordinatesIfMapped(OSMNodeData.java:158)
        at com.graphhopper.reader.osm.WaySegmentParser$Pass2Handler.handleNode(WaySegmentParser.java:206)
        at com.graphhopper.reader.osm.WaySegmentParser$ReaderElementHandler.handleElement(WaySegmentParser.java:495)
        at com.graphhopper.reader.osm.WaySegmentParser.readOSM(WaySegmentParser.java:398)
        ... 11 more
Caused by: java.io.EOFException
        at org.apache.xmlgraphics.image.codec.util.SeekableStream.readUnsignedShortLE(SeekableStream.java:513)
        at org.apache.xmlgraphics.image.codec.tiff.TIFFDirectory.readUnsignedShort(TIFFDirectory.java:565)
        at org.apache.xmlgraphics.image.codec.tiff.TIFFDirectory.getNumDirectories(TIFFDirectory.java:608)
        at org.apache.xmlgraphics.image.codec.tiff.TIFFImageDecoder.getNumPages(TIFFImageDecoder.java:81)
        at org.apache.xmlgraphics.image.codec.tiff.TIFFImageDecoder.decodeAsRenderedImage(TIFFImageDecoder.java:85)
        at org.apache.xmlgraphics.image.codec.util.ImageDecoderImpl.decodeAsRaster(ImageDecoderImpl.java:136)
        at org.apache.xmlgraphics.image.codec.util.ImageDecoderImpl.decodeAsRaster(ImageDecoderImpl.java:122)
        at com.graphhopper.reader.dem.GMTEDProvider.readFile(GMTEDProvider.java:148)
        ... 20 more

I changed to “srtm” and it seems to work. I don’t have much knowledge on the elevation data or the providers, only that “multi” has been working for me fine for the couple of years I’ve been running GH. I believe I had this error the first time a couple of months ago.

Update: Actually “srtm” does not seem to work either. Importing seems to pass successfully, but I don’t get elevation data for most of Finland. Using “gmted” is what I used for Sweden a couple of months ago when I had the same issues and I believe that works.

Update: Ok, so the error I got seems to happen if I don’t clear the elevation cache between import attempts, so that can be ignored. I’m running import again for Finland using “multi” and checking what happens.

Update: Well, seems to be working now with “multi” also, so this may have been just a user error.

I’m using Graphhopper v11.

Yes, I think the elevation data can get corrupted if there is an error. This reminds me that I probably should have a look again into this PR and try to get it merged :slight_smile: