Out of bounds exception when loading pbf file

I’m running openrouteservice with this config:

  openroutes:
    container_name: oroutes
    image: openrouteservice/openrouteservice:v7.1.0
    environment:
      user: ${usuario:-1002:1002}
      BUILD_GRAPHS: True
      JAVA_OPTS: "-Djava.awt.headless=true -server -XX:TargetSurvivorRatio=75 -XX:SurvivorRatio=64 -XX:MaxTenuringThreshold=3 -XX:+UseG1GC -XX:+ScavengeBeforeFullGC -XX:ParallelGCThreads=4 -Xms1g -Xmx3g"
      CATALINA_OPTS: "-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9001 -Dcom.sun.management.jmxremote.rmi.port=9001 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost"
    volumes:
      - ./rutas/mapas:/home/ors/ors-core/data/graphs
      - ./rutas/cache-elevacion:/home/ors/ors-core/data/elevation_cache
      - ./rutas/logs/ors:/home/ors/ors-core/logs/ors
      - ./rutas/logs/tomcat:/home/ors/tomcat/logs
      - ./rutas/conf:/home/ors/ors-conf
      - type: bind
        source: ./rutas/andorra-latest.osm.pbf
        target: /home/ors/ors-core/data/osm_file.pbf
        read_only: true

Andorra is a small country in Europe for testing.

When openroutes container starts it appears the following error:

14-Jul-2023 11:03:48.288 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
11:03:50.793 [ORS-Init] ERROR org.heigit.ors.routing.RoutingProfileManager - java.util.concurrent.ExecutionException: java.lang.RuntimeException: Couldn't process file /home/ors/ors-core/data/osm_file.pbf, error: Index 35787726 out of bounds for length 0
11:03:50.795 [ORS-Init] ERROR org.heigit.ors.routing.RoutingProfileManager - Failed to initialize RoutingProfileManager instance.
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Couldn't process file /home/ors/ors-core/data/osm_file.pbf, error: Index 35787726 out of bounds for length 0
        at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?]
        at java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[?:?]
        at org.heigit.ors.routing.RoutingProfileManager.initialize(RoutingProfileManager.java:181) ~[classes/:7.1.0]
        at org.heigit.ors.routing.RoutingProfileManager.getInstance(RoutingProfileManager.java:72) ~[classes/:7.1.0]
        at org.heigit.ors.servlet.listeners.ORSInitContextListener.lambda$contextInitialized$0(ORSInitContextListener.java:40) ~[classes/:7.1.0]
        at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.RuntimeException: Couldn't process file /home/ors/ors-core/data/osm_file.pbf, error: Index 35787726 out of bounds for length 0
        at com.graphhopper.reader.osm.OSMReader.writeOsmToGraph(OSMReader.java:334) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.reader.osm.OSMReader.readGraph(OSMReader.java:185) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.GraphHopper.importOSM(GraphHopper.java:740) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.gtfs.GraphHopperGtfs.importOSM(GraphHopperGtfs.java:67) ~[graphhopper-reader-gtfs-v4.8.1.jar:?]
        at com.graphhopper.GraphHopper.process(GraphHopper.java:704) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.GraphHopper.importOrLoad(GraphHopper.java:667) ~[graphhopper-core-v4.8.1.jar:?]
        at org.heigit.ors.routing.graphhopper.extensions.ORSGraphHopper.importOrLoad(ORSGraphHopper.java:166) ~[classes/:7.1.0]
        at org.heigit.ors.routing.RoutingProfile.initGraphHopper(RoutingProfile.java:193) ~[classes/:7.1.0]
        at org.heigit.ors.routing.RoutingProfile.<init>(RoutingProfile.java:140) ~[classes/:7.1.0]
        at org.heigit.ors.routing.RoutingProfileLoader.call(RoutingProfileLoader.java:39) ~[classes/:7.1.0]
        at org.heigit.ors.routing.RoutingProfileLoader.call(RoutingProfileLoader.java:25) ~[classes/:7.1.0]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        ... 1 more
Caused by: java.lang.IndexOutOfBoundsException: Index 35787726 out of bounds for length 0
        at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) ~[?:?]
        at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) ~[?:?]
        at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266) ~[?:?]
        at java.util.Objects.checkIndex(Objects.java:361) ~[?:?]
        at java.util.ArrayList.get(ArrayList.java:427) ~[?:?]
        at com.graphhopper.storage.MMapDataAccess.getShort(MMapDataAccess.java:367) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.reader.dem.HeightTile.getHeightSample(HeightTile.java:84) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.reader.dem.HeightTile.getHeight(HeightTile.java:132) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.reader.dem.AbstractTiffElevationProvider.getEle(AbstractTiffElevationProvider.java:155) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.reader.dem.MultiSourceElevationProvider.getEle(MultiSourceElevationProvider.java:53) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.reader.dem.ElevationProvider.getEle(ElevationProvider.java:52) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.reader.osm.OSMReader.getElevation(OSMReader.java:689) ~[graphhopper-core-v4.8.1.jar:?]
        at org.heigit.ors.routing.graphhopper.extensions.ORSOSMReader.getElevation(ORSOSMReader.java:436) ~[classes/:7.1.0]
        at com.graphhopper.reader.osm.OSMReader.addNode(OSMReader.java:662) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.reader.osm.OSMReader.processNode(OSMReader.java:630) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.reader.osm.OSMReader.writeOsmToGraph(OSMReader.java:301) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.reader.osm.OSMReader.readGraph(OSMReader.java:185) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.GraphHopper.importOSM(GraphHopper.java:740) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.gtfs.GraphHopperGtfs.importOSM(GraphHopperGtfs.java:67) ~[graphhopper-reader-gtfs-v4.8.1.jar:?]
        at com.graphhopper.GraphHopper.process(GraphHopper.java:704) ~[graphhopper-core-v4.8.1.jar:?]
        at com.graphhopper.GraphHopper.importOrLoad(GraphHopper.java:667) ~[graphhopper-core-v4.8.1.jar:?]
        at org.heigit.ors.routing.graphhopper.extensions.ORSGraphHopper.importOrLoad(ORSGraphHopper.java:166) ~[classes/:7.1.0]
        at org.heigit.ors.routing.RoutingProfile.initGraphHopper(RoutingProfile.java:193) ~[classes/:7.1.0]
        at org.heigit.ors.routing.RoutingProfile.<init>(RoutingProfile.java:140) ~[classes/:7.1.0]
        at org.heigit.ors.routing.RoutingProfileLoader.call(RoutingProfileLoader.java:39) ~[classes/:7.1.0]
        at org.heigit.ors.routing.RoutingProfileLoader.call(RoutingProfileLoader.java:25) ~[classes/:7.1.0]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        ... 1 more

excerpt of my ors-config.json:

      "routing": {
        "enabled": true,
        "mode": "normal",
        "routing_description": "This is a routing file from openrouteservice",
        "routing_name": "openrouteservice routing",
        "sources": [
          "/home/ors/ors-core/data/osm_file.pbf"
        ],
```

I’ve downloaded the pbf file from: http://download.geofabrik.de/europe/andorra-latest.osm.pbf

Similar problem:

Shoud I open a bug in github?

Did you check the md5 sum after downloading the pbf file ? I sometimes had ors running better after getting osmium to sort the pbf file too.

Thanks for your valuable suggestions.

I’ve redownloaded the file, and done:

osmium merge andorra.pbf -o andorra2.pbf

and used the new file.

Thre result:

IndexOutOfBoundsException: Index 35787726 out of bounds for length 0

Hello @DavidPerezIngeniero did you found a solution ? I reloaded new osm files for western europe countries and got the same error.