Different routes between local GraphHopper instance and GraphHopper Web

I have a few examples of routes that produce different results when comparing my local GraphHopper instance with GraphHopper Web.

I am currently running GraphHopper locally using version 11, with the following configuration:

apiVersion: v1
kind: ConfigMap
metadata:
name: graphhopper-config
data:
config.yml: |
graphhopper:
datareader.file: ""
datareader.worker_threads: 16
custom_models.directory: /graphhopper/profiles
profiles:

* name: car
  custom_model_files: \[ car.json \]
* name: truck
  custom_model_files: \[ truck.json \]
* name: big_truck
  weighting: custom
  custom_model_files: \[ big_truck.json \]
  profiles_ch:
* profile: car
* profile: truck
  profiles_lm:
* profile: car
* profile: truck
* profile: big_truck
  prepare.min_network_size: 1000
  prepare.subnetworks.threads: 50
  prepare.ch.threads: 2
  prepare.lm.threads: 3
  routing.non_ch.max_waypoint_distance: 100_000_000 #100.000.000
  routing.max_visited_nodes: 15_000_000 #15.000.000
  import.osm.ignored_highways: footway,cycleway,path,pedestrian,steps # typically useful for motorized-only routing
  index.max_region_search: 30
  graph.location: graph-cache
  graph.dataaccess.default_type: RAM_STORE
  graph.encoded_values: country,hgv,max_weight,max_height,max_width,toll,car_access,car_average_speed,road_access,road_class,max_weight_except,road_environment,ferry_speed,max_speed,surface
  server:
  application_connectors:
* type: http
  port: 8989
  bind_host: localhost
  max_request_header_size: 50k
  request_log:
  appenders: \[\]
  admin_connectors:
* type: http
  port: 8990
  bind_host: localhost
  logging:
  appenders:
* type: file
  time_zone: UTC
  current_log_filename: logs/graphhopper.log
  log_format: "%d{yyyy-MM-dd HH:mm:ss.SSS} \[%thread\] %-5level %logger{36} - %msg%n"
  archive: true
  archived_log_filename_pattern: ./logs/graphhopper-%d.log.gz
  archived_file_count: 30
  never_block: true
* type: console
  time_zone: UTC
  log_format: "%d{yyyy-MM-dd HH:mm:ss.SSS} \[%thread\] %-5level %logger{36} - %msg%n"
  loggers:
  "com.graphhopper.osm_warnings":
  level: DEBUG
  additive: false
  appenders:
* type: file
  currentLogFilename: logs/osm_warnings.log
  archive: false
  logFormat: '\[%level\] %msg%n

I am also using the latest OSM Planet PBF available, currently planet-260914.

Here is one example of the route discrepancy:

I would like to understand what could cause the route calculated by my local GraphHopper instance to differ from the route shown by GraphHopper Web.

Could there be differences in the OSM data, configuration, GraphHopper version, custom models, or graph preparation process used by GraphHopper Web that could explain this behavior?

If needed, I can provide the origin and destination coordinates, the request parameters, the custom_model files, and both routes for comparison.

The open source version contains all the tools to create a car profile similar to what we have deployed, but the exact configuration is not open source. The most important point is to lower speeds for urban areas with the help of urban_density.

See e.g. this post:

PS: to format your configuration you need to prefix it with ```yml (separate line) and then close it with ```