Graphs for all profiles are always built under /graphs

Hello,

I am trying to save up time and RAM resources while running the engine for spain-latets.osm.pbf. I need only matrix and isochrones for foot-walk and driving-car profiles. In app.config I restrict routes to enabled: false.

I also restrict at the isochrones section the maximum_range_time and maxim_range_distance, by using only the profiles I need and removing the section:

{
“profiles”:“any”
}

And yet I see whenever I do docker-compose up that all the graphs for all the profiles are built. In this order: Vehicle-car, Vehicle-hgv, bike, pedestrian-walk

I checked the documentation for app.config and does not mention this issue. What is happening? How can I strip down the graphs so that I build only what I need? Thanks!

What’s your docker-compose? Did you rebuild the image after editing the app.config?

My docker compose is:

version: ‘3’
services:
ors-app:
container_name: ors-app
ports:
- 8080:8080
build:
context: …/
args:
APP_CONFIG: ./docker/conf/app.config
OSM_FILE: ./docker/data/spain-latest.osm.pbf
volumes:
- ./graphs:/ors-core/data/graphs
- ./elevation_cache:/ors-core/data/elevation_cache
- ./logs/ors/:/var/log/ors/
- ./logs/tomcat/:/usr/local/tomcat/logs
- ./conf/app.config:/ors-core/openrouteservice/target/classes/app.config
- ./data/spain-latest.osm.pbf:/ors-core/data/osm_file.pbf
environment:
- BUILD_GRAPHS=True # Forces the container to rebuild the graphs, e.g. when PBF is changed in app.config
- JAVA_OPTS="-Djava.awt.headless=true -server -XX:TargetSurvivorRatio=75 -XX:SurvivorRatio=64 -XX:MaxTenuringThreshold=3 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ParallelGCThreads=4 -Xms10g -Xmx10g -XX:MaxMetaspaceSize=512m -XX:-UseGCOverheadLimit"
- 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"

Regarding rebuilding the image, I assumed the image was rebuild at docker-compose up. If it is not that was the issue. If I need to do docker-compose build and then docker-compose up then that was a mistake from my side… Thanks a lot!! Really!

You can shortcut to docker-compose up -d --build.

But you’re using the new setup, so actually you’re right. Since you specified BUILD_GRAPHS=True, it should build new graphs regardless.

Are you sure:

  • you edited ./conf/app.config?
  • you actually edited this sectrion?

            "profiles":{
               "active":[
                   "vehicles-car",
                   "vehicles-hgv",
                   "bike",
                   "pedestrian-walk"
               ],

If so, I’ll need to try it myself.

Best to include your app.config as well (and please do me the favor to properly format code).

And can you do a tree . in the docker directory?

Yes, I edited and removed the profiles-> active that I am not interested in.
As you could see, I my attempt to make the engine pick up the configuration, I tried dumb things like isochornes (profiles “any” value 0 ).

    {
   "ors":{
 "info": {
   "base_url": "https://openrouteservice.org/",
   "support_mail": "support@openrouteservice.org",
   "author_tag": "openrouteservice",
   "content_licence": "LGPL 3.0"
  },
  "services":{
     "matrix":{
        "enabled":true,
        "maximum_locations":2,
        "maximum_visited_nodes":1000,
        "allow_resolve_locations":true,
        "attribution":"openrouteservice.org, OpenStreetMap contributors"
     },
     "isochrones":{
        "enabled":true,
        "maximum_range_distance":[
           {
              "profiles":"any",
              "value":0
           },
           {
              "profiles":"driving-car, foot-walking",
              "value":20000
           }
           {
              "profiles":"foot-walking",
              "value":3000
           }
        ],
        "maximum_range_time":[
           {
              "profiles":"any",
              "value":0
           },
           {
              "profiles":"driving-car, foot-walking",
              "value":3600
           }

        ],
        "maximum_intervals":10,
        "maximum_locations":2,
        "allow_compute_area":true,
        "attribution":"openrouteservice.org, OpenStreetMap contributors"
     },
     "routing":{
        "enabled":false,
        "mode":"preparation",
        "sources":[
           "data/osm_file.pbf"
        ],
        "init_threads":1,
        "attribution":"openrouteservice.org, OpenStreetMap contributors",
        "distance_approximation":true,
        "profiles":{
           "active":[
               "vehicles-car",
               "pedestrian-walk"
           ],
           "default_params": {
               "encoder_flags_size": 8,
               "graphs_root_path": "data/graphs",
               "elevation_provider": "multi",
                   "elevation_cache_path": "data/elevation_cache",
               "elevation_clear_cache": false,
               "instructions": false,
               "maximum_distance": 30000,
               "maximum_segment_distance_with_dynamic_weights": 10000,
               "maximum_distance_round_trip_routes": 10000,
               "maximum_waypoints": 50
               "maximum_avoid_polygon_area": 200000000,
               "maximum_avoid_polygon_extent": 20000,
           },
           "profile-vehicles-car":{
              "profiles":"driving-car",
              "parameters":{
                 "encoder_options":"consider_elevation=false|turn_costs=true|block_fords=false|use_acceleration=true",
                 "elevation":false,
                 "preparation":{
                    "min_network_size":200,
                    "min_one_way_network_size":200,
                    "methods":{
                       "ch":{
                          "enabled":false,
                          "threads":8,
                          "weightings":"fastest"
                       },
                       "lm":{
                          "enabled":true,
                          "threads":8,
                          "weightings":"fastest,shortest",
                          "landmarks":24
                       }
                    }
                 },
                 "execution":{
                    "methods":{
                       "astar":{
                          "approximation":"BeelineSimplification",
                          "epsilon":1
                       },
                       "ch":{
                          "disabling_allowed":true
                       },
                       "lm":{
                          "disabling_allowed":true,
                          "active_landmarks":6
                       }
                    }
                 },
                 "ext_storages":{
                    "WayCategory":{

                    },
                    "WaySurfaceType":{

                    },
                    "Tollways":{

                    }
                 }
              }
           },
           "profile-vehicles-hgv":{
              "profiles":"driving-hgv",
              "parameters":{
                 "encoder_options":"consider_elevation=false|turn_costs=true|block_fords=false|use_acceleration=true",
                 "elevation":false,
                 "preparation":{
                    "min_network_size":200,
                    "min_one_way_network_size":200,
                    "methods":{
                       "ch":{
                          "enabled":false,
                          "threads":8,
                          "weightings":"fastest"
                       },
                       "lm":{
                          "enabled":true,
                          "threads":8,
                          "weightings":"fastest,shortest",
                          "landmarks":24
                       }
                    }
                 },
                 "execution":{
                    "methods":{
                       "astar":{
                          "approximation":"BeelineSimplification",
                          "epsilon":1
                       },
                       "ch":{
                          "disabling_allowed":true
                       },
                       "lm":{
                          "disabling_allowed":true,
                          "active_landmarks":6
                       }
                    }
                 },
                 "ext_storages":{
                    "WayCategory":{

                    },
                    "HeavyVehicle":{
                       "restrictions":true
                    },
                    "WaySurfaceType":{

                    },
                    "Tollways":{

                    }
                 }
              }
           },
           "profile-bike":{
              "profiles":"cycling-regular",
              "parameters":{
                 "encoder_options":"consider_elevation=false|turn_costs=true|block_fords=false",
                 "elevation":false,
                 "preparation":{
                    "min_network_size":200,
                    "min_one_way_network_size":200,
                    "methods":{
                       "ch":{
                          "enabled":false,
                          "threads":8,
                          "weightings":"fastest"
                       },
                       "lm":{
                          "enabled":true,
                          "threads":8,
                          "weightings":"fastest,shortest",
                          "landmarks":24
                       }
                    }
                 },
                 "execution":{
                    "methods":{
                       "astar":{
                          "approximation":"BeelineSimplification",
                          "epsilon":1
                       },
                       "ch":{
                          "disabling_allowed":true
                       },
                       "lm":{
                          "disabling_allowed":true,
                          "active_landmarks":6
                       }
                    }
                 },
                 "ext_storages":{
                    "WayCategory":{

                    },
                    "WaySurfaceType":{

                    },
                    "HillIndex":{

                    },
                    "TrailDifficulty":{

                    }
                 }
              }
           },
           "profile-pedestrian-walk":{
              "profiles":"foot-walking",
              "parameters":{
                 "encoder_options":"consider_elevation=false|turn_costs=false|block_fords=false",
                 "elevation":false,
                 "preparation":{
                    "min_network_size":200,
                    "min_one_way_network_size":200,
                    "methods":{
                       "ch":{
                          "enabled":false,
                          "threads":8,
                          "weightings":"fastest"
                       },
                       "lm":{
                          "enabled":true,
                          "threads":8,
                          "weightings":"fastest,shortest",
                          "landmarks":24
                       }
                    }
                 },
                 "execution":{
                    "methods":{
                       "astar":{
                          "approximation":"BeelineSimplification",
                          "epsilon":1
                       },
                       "ch":{
                          "disabling_allowed":true
                       },
                       "lm":{
                          "disabling_allowed":true,
                          "active_landmarks":6
                       }
                    }
                 },
                 "ext_storages":{
                    "WayCategory":{

                    },
                    "WaySurfaceType":{

                    },
                    "HillIndex":{

                    },
                    "TrailDifficulty":{

                    }
                 }
              }
           }
        }
     }
  },
  "logging": {
      "enabled": true,
      "level_file": "PRODUCTION_LOGGING.json",
      "location": "/var/log/ors",
      "stdout": true
  },
  system_message: [
      {
          active: false,
          text: "This message would be sent with every routing bike fastest request",
          condition: {
              "request_service": "routing",
              "request_profile": "cycling-regular,cycling-mountain,cycling-road,cycling-electric",
              "request_preference": "fastest"
          }
      },
      {
          active: false,
          text: "This message would be sent with every request for geojson response",
          condition: {
              "api_format": "geojson"
          }
      },
      {
          active: false,
          text: "This message would be sent with every request on API v1 from January 2020 until June 2050",
          condition: {
              "api_version": 1,
              "time_after": "2020-01-01T00:00:00Z",
              "time_before": "2050-06-01T00:00:00Z"
          }
      },
      {
          active: false,
          text: "This message would be sent with every request"
      }
  ]
   }
}
.

├── conf
│ ├── app.config
│ ├── catalina.properties
│ └── sample
├── data
│ ├── elevation_cache
│ │ └── srtm_38_03.zip
│ ├── heidelberg.osm.gz
│ └── spain-latest.osm.pbf
├── docker-compose.yml
├── elevation_cache
│ ├── srtm_33_07.gh
│ ├── srtm_33_07.zip
│ ├── srtm_35_03.gh
│ ├── srtm_35_03.zip
│ ├── srtm_35_04.gh
│ ├── srtm_35_04.zip
│ ├── srtm_35_05.gh
│ ├── srtm_35_05.zip
│ ├── srtm_36_02.gh
│ ├── srtm_36_02.zip
│ ├── srtm_36_03.gh
│ ├── srtm_36_03.zip
│ ├── srtm_36_04.gh
│ ├── srtm_36_04.zip
│ ├── srtm_36_05.gh
│ ├── srtm_36_05.zip
│ ├── srtm_37_04.gh
│ ├── srtm_37_04.zip
│ ├── srtm_37_05.gh
│ ├── srtm_37_05.zip
│ ├── srtm_38_03.gh
│ ├── srtm_38_03.zip
│ ├── srtm_38_04.gh
│ ├── srtm_38_04.zip
│ ├── srtm_39_04.gh
│ └── srtm_39_04.zip
├── graphs
│ └── vehicles-car
│ └── gh.lock
├── logs
│ ├── ors
│ │ └── ors.log
│ └── tomcat
│ ├── catalina.2020-04-22.log
│ ├── host-manager.2020-04-22.log
│ ├── localhost.2020-04-22.log
│ ├── localhost_access_log.2020-04-22.txt
│ └── manager.2020-04-22.log
└── README.md

The issue was that I did not do docker-compose build in between app.config changes. Now I came back to an app.config.sample, removed all profiles from the route->profiles->active except pedestrian-walk and now it started building the graph for pedestrian-walk first.

Thanks a lot Nils! Outstanding work you guys are doing here.

Good to hear!

Still, that’s a bug. It should’ve rebuilt the graphs with your new settings without an image rebuild. That was the whole reason why we rearranged the docket stuff. Let me dig in tmrw.

Sorry to necro this thread but I’m having the same issue. I’ve limited the profiles to just driving-hgv for only routing and matrix endpoints, yet multiple profiles are created in the graphs folder and docker runs out of memory when running docker compose up -d

my ors-config.yml:

ors:
 endpoints:
   routing:
     enabled: true
   matrix:
     enabled: true
     attribution: openrouteservice.org, OpenStreetMap contributors
     maximum_routes: 2500
     maximum_routes_flexible: 25
     maximum_visited_nodes: 100000
     maximum_search_radius: 2000
     u_turn_costs: -1
 engine:
   init_threads: 4
   preparation_mode: false
   graphs_data_access: RAM_STORE
   elevation:
     preprocessed: false
     data_access: MMAP
     cache_clear: false
     provider: multi
     cache_path: elevation_cache
   profile_default:
     enabled: true
     graph_path: graphs
     build:
       source_file: /home/ors/files/merged.osm.pbf ## merged from multiple osm.pbf files through osmium-tool. ~4.2gb
       elevation: true
       elevation_smoothing: false
       encoder_flags_size: 8
       instructions: true
       optimize: false
       traffic: false
       maximum_speed_lower_bound: 80
       location_index_resolution: 500
       location_index_search_iterations: 4
       interpolate_bridges_and_tunnels: true
       preparation:
         min_network_size: 200
         methods:
           lm:
             enabled: true
             threads: 1
             weightings: recommended,shortest
             landmarks: 16
     service:
       maximum_distance: 100000
       maximum_distance_dynamic_weights: 100000
       maximum_distance_avoid_areas: 100000
       maximum_waypoints: 50
       maximum_snapping_radius: 400
       maximum_distance_alternative_routes: 100000
       maximum_distance_round_trip_routes: 100000
       maximum_visited_nodes: 1000000
       force_turn_costs: false
       allow_custom_models: true
       execution:
         methods:
           lm:
             active_landmarks: 8
   profiles:
     driving-hgv:
       enabled: true
       encoder_name: driving-hgv
       build:
         encoder_options:
           turn_costs: true
           block_fords: false
           use_acceleration: true
           enable_custom_models: false
         preparation:
           min_network_size: 200
           methods:
             ch:
               enabled: true
               threads: 4
               weightings: recommended
             lm:
               enabled: false
             core:
               enabled: true
               threads: 1
               weightings: recommended,shortest
               landmarks: 64
               lmsets: highways;allow_all
         ext_storages:
           WayCategory:
           HeavyVehicle:
             restrictions: true
           Tollways:
           WaySurfaceType:
       service:
         execution:
           methods:
             core:
               active_landmarks: 6

docker compose.yml

services:
  ors-app:
    build:
      context: ./
    container_name: ors-app
    ports:
      - "8080:8082"  # Expose the ORS API on port 8080
      - "9001:9001"  # Expose additional port for monitoring (optional)
    image: openrouteservice/openrouteservice:v9.3.1
    volumes: # Mount relative directories. ONLY for local container runtime. To switch to docker managed volumes see 'Docker Volumes configuration' section below.
      - ./ors-docker:/home/ors  

    environment:
      REBUILD_GRAPHS: False  # Set to True to rebuild graphs on container start.
      CONTAINER_LOG_LEVEL: INFO  
      XMS: 10g  # start RAM assigned to java
      XMX: 16g  # max RAM assigned to java. Rule of Thumb: <PBF-size> * <profiles> * 2
      ADDITIONAL_JAVA_OPTS: ""  # further options you want to pass to the java command

Logs

	at org.openstreetmap.osmosis.osmbinary.Osmformat$Info$1.parsePartialFrom(Osmformat.java:8357)

	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:868)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$Way.<init>(Osmformat.java:14343)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$Way.<init>(Osmformat.java:14243)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$Way$1.parsePartialFrom(Osmformat.java:15890)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$Way$1.parsePartialFrom(Osmformat.java:15884)

	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:868)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveGroup.<init>(Osmformat.java:4649)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveGroup.<init>(Osmformat.java:4574)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveGroup$1.parsePartialFrom(Osmformat.java:6604)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveGroup$1.parsePartialFrom(Osmformat.java:6598)

	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:868)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveBlock.<init>(Osmformat.java:3113)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveBlock.<init>(Osmformat.java:3048)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveBlock$1.parsePartialFrom(Osmformat.java:4432)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveBlock$1.parsePartialFrom(Osmformat.java:4426)

	at com.google.protobuf.AbstractParser.parsePartialFrom(AbstractParser.java:135)

	at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:168)

	at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:180)

	at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:185)

	at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:25)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveBlock.parseFrom(Osmformat.java:3521)

	at com.graphhopper.reader.osm.pbf.PbfBlobDecoder.processOsmPrimitives(PbfBlobDecoder.java:371)

	at com.graphhopper.reader.osm.pbf.PbfBlobDecoder.runAndTrapExceptions(PbfBlobDecoder.java:389)

	at com.graphhopper.reader.osm.pbf.PbfBlobDecoder.run(PbfBlobDecoder.java:401)

	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)

	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)

	at java.base/java.lang.Thread.runWith(Thread.java:1596)

	at java.base/java.lang.Thread.run(Thread.java:1583)

Exception in thread "pool-81-thread-1" java.lang.OutOfMemoryError: Java heap space

	at com.google.protobuf.LongArrayList.addLong(LongArrayList.java:174)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$Way.<init>(Osmformat.java:14367)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$Way.<init>(Osmformat.java:14243)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$Way$1.parsePartialFrom(Osmformat.java:15890)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$Way$1.parsePartialFrom(Osmformat.java:15884)

	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:868)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveGroup.<init>(Osmformat.java:4649)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveGroup.<init>(Osmformat.java:4574)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveGroup$1.parsePartialFrom(Osmformat.java:6604)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveGroup$1.parsePartialFrom(Osmformat.java:6598)

	at com.google.protobuf.CodedInputStream$ArrayDecoder.readMessage(CodedInputStream.java:868)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveBlock.<init>(Osmformat.java:3113)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveBlock.<init>(Osmformat.java:3048)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveBlock$1.parsePartialFrom(Osmformat.java:4432)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveBlock$1.parsePartialFrom(Osmformat.java:4426)

	at com.google.protobuf.AbstractParser.parsePartialFrom(AbstractParser.java:135)

	at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:168)

	at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:180)

	at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:185)

	at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:25)

	at org.openstreetmap.osmosis.osmbinary.Osmformat$PrimitiveBlock.parseFrom(Osmformat.java:3521)

	at com.graphhopper.reader.osm.pbf.PbfBlobDecoder.processOsmPrimitives(PbfBlobDecoder.java:371)

	at com.graphhopper.reader.osm.pbf.PbfBlobDecoder.runAndTrapExceptions(PbfBlobDecoder.java:389)

	at com.graphhopper.reader.osm.pbf.PbfBlobDecoder.run(PbfBlobDecoder.java:401)

	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)

	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)

	at java.base/java.lang.Thread.runWith(Thread.java:1596)

	at java.base/java.lang.Thread.run(Thread.java:1583)

Exception in thread "pool-71-thread-1" java.lang.OutOfMemoryError: Java heap space

	at java.base/java.util.AbstractList.iterator(AbstractList.java:301)

	at com.graphhopper.reader.osm.pbf.PbfBlobDecoder.processWays(PbfBlobDecoder.java:305)

	at com.graphhopper.reader.osm.pbf.PbfBlobDecoder.processOsmPrimitives(PbfBlobDecoder.java:377)

	at com.graphhopper.reader.osm.pbf.PbfBlobDecoder.runAndTrapExceptions(PbfBlobDecoder.java:389)

	at com.graphhopper.reader.osm.pbf.PbfBlobDecoder.run(PbfBlobDecoder.java:401)

	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)

	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)

	at java.base/java.lang.Thread.runWith(Thread.java:1596)

	at java.base/java.lang.Thread.run(Thread.java:1583)

EDIT:
I noticed at the top of my logs there is a line stating that 10 profiles are being initialized which I don’t understand since my configuration should only have 1 (driving-hgv)

2025-08-12 18:40:18 INFO                                              ORS-Init [ o.h.o.r.RoutingProfileManager            ]   ====> Initializing 10 profiles (4 threads) ...

2025-08-12 18:40:18 INFO                                              ORS-Init [ o.h.o.r.RoutingProfileManager            ]   10 profile configurations submitted as tasks.

2025-08-12 18:40:18 INFO                               ORS-pl-cycling-mountain [ o.h.o.r.g.e.c.CorePreparationHandler     ]   Using 1 threads for ch preparation threads

2025-08-12 18:40:18 INFO                                ORS-pl-cycling-regular [ o.h.o.r.g.e.c.CorePreparationHandler     ]   Using 1 threads for ch preparation threads

2025-08-12 18:40:18 INFO                                    ORS-pl-driving-hgv [ o.h.o.r.g.e.c.CorePreparationHandler     ]   Using 1 threads for ch preparation threads

2025-08-12 18:40:18 INFO                                    ORS-pl-driving-car [ o.h.o.r.g.e.c.CorePreparationHandler     ]   Using 1 threads for ch preparation threads

2025-08-12 18:40:18 INFO                               ORS-pl-cycling-mountain [ o.h.o.r.g.e.c.CoreLMPreparationHandler   ]   Using 1 threads for lm preparation threads

2025-08-12 18:40:18 INFO                                    ORS-pl-driving-car [ o.h.o.r.g.e.c.CoreLMPreparationHandler   ]   Using 1 threads for lm preparation threads

2025-08-12 18:40:18 INFO                                    ORS-pl-driving-hgv [ o.h.o.r.g.e.c.CoreLMPreparationHandler   ]   Using 1 threads for lm preparation threads

2025-08-12 18:40:18 INFO                                ORS-pl-cycling-regular [ o.h.o.r.g.e.c.CoreLMPreparationHandler   ]   Using 1 threads for lm preparation threads

2025-08-12 18:40:18 INFO                                    ORS-pl-driving-car [ o.h.o.r.g.e.c.CorePreparationHandler     ]   Using 1 threads for ch preparation threads

2025-08-12 18:40:18 INFO                                    ORS-pl-driving-hgv [ o.h.o.r.g.e.c.CorePreparationHandler     ]   Using 1 threads for ch preparation threads

2025-08-12 18:40:18 INFO                                    ORS-pl-driving-car [ o.h.o.r.g.e.c.CoreLMPreparationHandler   ]   Using 1 threads for lm preparation threads

2025-08-12 18:40:18 INFO                                    ORS-pl-driving-hgv [ o.h.o.r.g.e.c.CoreLMPreparationHandler   ]   Using 1 threads for lm preparation threads

2025-08-12 18:40:19 INFO                                    ORS-pl-driving-hgv [ o.h.o.r.g.e.c.CoreLMPreparationHandler   ]   Loaded landmark splitting collection from 

2025-08-12 18:40:19 INFO                                    ORS-pl-driving-car [ o.h.o.r.g.e.c.CoreLMPreparationHandler   ]   Loaded landmark splitting collection from 

2025-08-12 18:40:19 INFO                               ORS-pl-cycling-mountain [ o.h.o.r.g.e.c.CorePreparationHandler     ]   Using 1 threads for ch preparation threads

2025-08-12 18:40:19 INFO                                ORS-pl-cycling-regular [ o.h.o.r.g.e.c.CorePreparationHandler     ]   Using 1 threads for ch preparation threads

2025-08-12 18:40:19 INFO                               ORS-pl-cycling-mountain [ o.h.o.r.g.e.c.CoreLMPreparationHandler   ]   Using 1 threads for lm preparation threads

2025-08-12 18:40:19 INFO                                ORS-pl-cycling-regular [ o.h.o.r.g.e.c.CoreLMPreparationHandler   ]   Using 1 threads for lm preparation threads

2025-08-12 18:40:19 INFO                                    ORS-pl-driving-car [ o.h.o.r.g.e.ORSGraphHopper               ]   version v4.9.8|2025-04-28T13:05:33Z (7,20,5,4,5,7)

2025-08-12 18:40:19 INFO                               ORS-pl-cycling-mountain [ o.h.o.r.g.e.ORSGraphHopper               ]   version v4.9.8|2025-04-28T13:05:33Z (7,20,5,4,5,7)

2025-08-12 18:40:19 INFO                                    ORS-pl-driving-hgv [ o.h.o.r.g.e.ORSGraphHopper               ]   version v4.9.8|2025-04-28T13:05:33Z (7,20,5,4,5,7)

2025-08-12 18:40:19 INFO                                ORS-pl-cycling-regular [ o.h.o.r.g.e.ORSGraphHopper               ]   version v4.9.8|2025-04-28T13:05:33Z (7,20,5,4,5,7)

Ok I think I figured out the issue.

In the ors-config.yml, if profile_default has enabled:true, then all profiles are automatically created, even if you specify a specific profile later as enabled:false.

I assumed that I could set a profile_defaults and then edit only a few configurations later in the yml file under profiles but it seems like this is not the case without building every profile in the graphs folder.

Setting a profile_default to enabled:false and enabling a single profile under profiles now builds a single profile as expected

1 Like