Skip to content

java.util.concurrent.ExecutionException: java.lang.RuntimeException: Error while constructing transit network. Is your GTFS file valid? #2186

@wursterje

Description

@wursterje

Is there an existing issue for this?

  • I have searched the existing issues

Problem description

Hi everyone,

I’m currently trying to set up OpenRouteService (ORS) with public transport routing using Docker.
The OSM import works fine, but ORS fails when building the transit graph from GTFS data.
I have already tried multiple GTFS datasets.

However, the initialization still fails with the following error: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Error while constructing transit network. Is your GTFS file valid? Please check log for possible causes.

I also tested various GTFS and OSM files directly with GraphHopper, and they worked without issues.

Proposed solution

Import sould work without any exceptions.

Additional context

docker-compose.yml

ors:
    container_name: ors
    image: openrouteservice/openrouteservice:v9.5.1
    user: 0:0
    volumes:
      - ./var/lib/ors-9.5/:/home/ors
    environment:
      BUILD_GRAPHS: True
      CONTAINER_LOG_LEVEL: DEBUG
      XMS: 1g
      XMX: 6g 
      ADDITIONAL_JAVA_OPTS: ""

ors-config.yml

ors:
  engine:
    profile_default:
      elevation: true
      build:
        source_file: /home/ors/files/osm_file.pbf
    profiles:
      cycling-regular:
        enabled: true
      driving-car:
        enabled: true
      foot-walking:
        enabled: true
      public-transport:
        enabled: true
logging:
  file:
    name: ./logs/ors.log
  pattern:
    console: "%d{yyyy-MM-dd HH:mm:ss} %highlight{%-7p} %style{%50t}{Cyan} %style{[ %-40.40c{1.} ]}{Bright Cyan}   %m%n"
    file: "%d{yyyy-MM-dd HH:mm:ss} %p [%-40.40c{1.}] - %m%n"
  level:
    root: DEBUG
    org.heigit: DEBUG
    com.graphhopper: DEBUG
    com.graphhopper.gtfs: DEBUG
  endpoints:
    isochrones:
     enabled: true
     attribution: openrouteservice.org, OpenStreetMap contributors
     maximum_locations: 2
     maximum_intervals: 10
     allow_compute_area: true
     maximum_range_distance_default: 50000
     maximum_range_distance:
       - profiles: driving-car, driving-hgv
         value: 500000
     maximum_range_time_default: 18000
     maximum_range_time:
       - profiles: driving-car, driving-hgv
         value: 3600
     fastisochrones:
       maximum_range_distance_default: 50000
       maximum_range_distance:
         - profiles: driving-car, driving-hgv
           value: 500000
       maximum_range_time_default: 18000
       maximum_range_time:
         - profiles: driving-car, driving-hgv
           value: 10800
    profiles:
      public-transport:
        encoder_name: public-transport
        build:
          encoder_options:
            block_fords: false
            enable_custom_models: false
          elevation: true
          gtfs_file: /home/ors/files/google_transit.zip
        service:
          maximum_visited_nodes: 1000000

ors.log

2025-11-25 12:42:08 DEBUG [o.s.w.s.m.m.a.HttpEntityMethodProcessor ] - Writing ["{"status":"not ready"}"]
2025-11-25 12:42:08 DEBUG [o.s.w.s.DispatcherServlet               ] - Completed 503 SERVICE_UNAVAILABLE
2025-11-25 12:42:12 DEBUG [o.s.w.s.DispatcherServlet               ] - GET "/ors/v2/health", parameters={}
2025-11-25 12:42:12 DEBUG [s.w.s.m.m.a.RequestMappingHandlerMapping] - Mapped to org.heigit.ors.api.controllers.HealthAPI#fetchHealth()
2025-11-25 12:42:12 DEBUG [o.s.w.s.m.m.a.HttpEntityMethodProcessor ] - Found 'Content-Type:application/json' in response
2025-11-25 12:42:12 DEBUG [o.s.w.s.m.m.a.HttpEntityMethodProcessor ] - Writing ["{"status":"not ready"}"]
2025-11-25 12:42:12 DEBUG [o.s.w.s.DispatcherServlet               ] - Completed 503 SERVICE_UNAVAILABLE
2025-11-25 12:42:12 INFO [c.g.r.s.PrepareRoutingSubnetworks       ] - foot_recommended - Found 21562 subnetworks (11100 single edges and 10462 components with more than one edge, total nodes: 7254780), took: 4.113425s
2025-11-25 12:42:12 INFO [c.g.r.s.PrepareRoutingSubnetworks       ] - foot_recommended - Marked 21560 subnetworks (biggest: 396 edges) -> 2 components(s) remain (smallest: 1362, biggest: 7191644 edges), total marked edges: 25337, took: 0.010589264s
2025-11-25 12:42:12 INFO [c.g.r.s.PrepareRoutingSubnetworks       ] - Finished finding and marking subnetworks for 3 jobs, took: 10.697347s, totalMB:6144, usedMB:5489
2025-11-25 12:42:12 INFO [o.h.o.r.g.e.ORSGraphHopper              ] - nodes: 2 789 771, edges: 3 627 390
2025-11-25 12:42:13 INFO [o.h.o.r.g.e.ORSGraphHopper              ] - Bridge interpolation 0s, tunnel interpolation 0s, ferry interpolation 0s
2025-11-25 12:42:15 INFO [c.g.s.i.LocationIndexTree               ] - location index created in 2.0062475s, size:4 551 220, leafs:168 721, precision:500, depth:5, checksum:1951989, entries:[16, 16, 16, 16, 4], entriesPerLeaf:26.974829
2025-11-25 12:42:15 DEBUG [o.s.w.s.DispatcherServlet               ] - GET "/ors/v2/health", parameters={}
2025-11-25 12:42:15 DEBUG [s.w.s.m.m.a.RequestMappingHandlerMapping] - Mapped to org.heigit.ors.api.controllers.HealthAPI#fetchHealth()
2025-11-25 12:42:15 DEBUG [o.s.w.s.m.m.a.HttpEntityMethodProcessor ] - Found 'Content-Type:application/json' in response
2025-11-25 12:42:15 DEBUG [o.s.w.s.m.m.a.HttpEntityMethodProcessor ] - Writing ["{"status":"not ready"}"]
2025-11-25 12:42:15 DEBUG [o.s.w.s.DispatcherServlet               ] - Completed 503 SERVICE_UNAVAILABLE
2025-11-25 12:42:15 DEBUG [o.h.o.r.RoutingProfileManager           ] - java.util.concurrent.ExecutionException: java.lang.RuntimeException: Error while constructing transit network. Is your GTFS file valid? Please check log for possible causes.
2025-11-25 12:42:15 ERROR [o.h.o.r.RoutingProfileManager           ] - 
2025-11-25 12:42:15 ERROR [o.h.o.r.RoutingProfileManager           ] - Exception at RoutingProfileManager initialization: class java.util.concurrent.ExecutionException: java.lang.RuntimeException: Error while constructing transit network. Is your GTFS file valid? Please check log for possible causes.
2025-11-25 12:42:15 ERROR [o.h.o.r.RoutingProfileManager           ] - 
2025-11-25 12:42:15 DEBUG [j.l.Runtime                             ] - Runtime.exit() called with status: 1
java.lang.Throwable: Runtime.exit(1)
	at java.base/java.lang.Shutdown.logRuntimeExit(Shutdown.java:179) ~[?:?]
	at java.base/java.lang.Shutdown.exit(Shutdown.java:160) ~[?:?]
	at java.base/java.lang.Runtime.exit(Runtime.java:188) ~[?:?]
	at java.base/java.lang.System.exit(System.java:1920) ~[?:?]
	at org.heigit.ors.routing.RoutingProfileManager.<init>(RoutingProfileManager.java:41) ~[ors-engine-9.5.0.jar!/:9.5.0]
	at org.heigit.ors.api.servlet.listeners.ORSInitContextListener.lambda$contextInitialized$0(ORSInitContextListener.java:61) ~[!/:9.5.0]
	at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]

Forum Topic Link

https://ask.openrouteservice.org/t/problems-building-public-transport-graph-gtfs/7813

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions