Vehicle break time windows not respected in solve

I’m having an issue where most of the time, cuOpt just puts all the vehicle breaks at the same time, completely ignoring the specified time windows. Initially I had some luck where I adjusted the solver config objectives to weight cost more than travel time, but now the issue resurfaced randomly.

Consider this request:

"vehicle_time_windows": [
        [
          14400,
          51300
        ]
      ],
      "vehicle_break_time_windows": [
        [
          [
            20125,
            27125
          ]
        ],
        [
          [
            29350,
            36350
          ]
        ],
        [
          [
            38575,
            45575
          ]
        ]
      ],
      "vehicle_break_durations": [
        [
          3600
        ],
        [
          3600
        ],
        [
          3600
        ]
      ],
      "vehicle_break_locations": [
        13,
        14
      ]

I have specified the vehicles working hours, and specified three break windows in which the vehicle should take its breaks. However, now I’m only getting the breaks stacked on top of each other. Any ideas on what I’m doing wrong or why this happens?

Full request if it helps:

{"action":"cuOpt_OptimizedRouting","data":{"cost_waypoint_graph_data":null,"travel_time_waypoint_graph_data":null,"cost_matrix_data":{"data":{"0":[[0,8786,0,8786,0,8786,0,15159,0,0,52437,0,52437,91683,409],[8786,0,8786,0,8786,0,8786,16784,8786,8786,54063,8786,54063,93308,8817],[0,8786,0,8786,0,8786,0,15159,0,0,52437,0,52437,91683,409],[8786,0,8786,0,8786,0,8786,16784,8786,8786,54063,8786,54063,93308,8817],[0,8786,0,8786,0,8786,0,15159,0,0,52437,0,52437,91683,409],[8786,0,8786,0,8786,0,8786,16784,8786,8786,54063,8786,54063,93308,8817],[0,8786,0,8786,0,8786,0,15159,0,0,52437,0,52437,91683,409],[15159,16784,15159,16784,15159,16784,15159,0,15159,15159,39530,15159,39530,78776,15190],[0,8786,0,8786,0,8786,0,15159,0,0,52437,0,52437,91683,409],[0,8786,0,8786,0,8786,0,15159,0,0,52437,0,52437,91683,409],[52437,54063,52437,54063,52437,54063,52437,39530,52437,52437,0,52437,0,58042,52469],[0,8786,0,8786,0,8786,0,15159,0,0,52437,0,52437,91683,409],[52437,54063,52437,54063,52437,54063,52437,39530,52437,52437,0,52437,0,58042,52469],[91683,93308,91683,93308,91683,93308,91683,78776,91683,91683,58042,91683,58042,0,91715],[409,8817,409,8817,409,8817,409,15190,409,409,52469,409,52469,91715,0]]}},"travel_time_matrix_data":{"data":{"0":[[0,658,0,658,0,658,0,760,0,0,2532,0,2532,3761,147],[658,0,658,0,658,0,658,969,658,658,2741,658,2741,3969,669],[0,658,0,658,0,658,0,760,0,0,2532,0,2532,3761,147],[658,0,658,0,658,0,658,969,658,658,2741,658,2741,3969,669],[0,658,0,658,0,658,0,760,0,0,2532,0,2532,3761,147],[658,0,658,0,658,0,658,969,658,658,2741,658,2741,3969,669],[0,658,0,658,0,658,0,760,0,0,2532,0,2532,3761,147],[760,969,760,969,760,969,760,0,760,760,2003,760,2003,3232,772],[0,658,0,658,0,658,0,760,0,0,2532,0,2532,3761,147],[0,658,0,658,0,658,0,760,0,0,2532,0,2532,3761,147],[2532,2741,2532,2741,2532,2741,2532,2003,2532,2532,0,2532,0,2587,2544],[0,658,0,658,0,658,0,760,0,0,2532,0,2532,3761,147],[2532,2741,2532,2741,2532,2741,2532,2003,2532,2532,0,2532,0,2587,2544],[3761,3969,3761,3969,3761,3969,3761,3232,3761,3761,2587,3761,2587,0,3772],[147,669,147,669,147,669,147,772,147,147,2544,147,2544,3772,0]]}},"fleet_data":{"vehicle_locations":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"vehicle_ids":null,"capacities":[[48000,48000,48000,48000,48000,48000],[26,26,26,26,26,26]],"vehicle_time_windows":[[14400,51300],[14400,51300],[14400,51300],[14400,51300],[14400,51300],[14400,51300]],"vehicle_break_time_windows":[[[20125,27125],[20125,27125],[20125,27125],[20125,27125],[20125,27125],[20125,27125]],[[29350,36350],[29350,36350],[29350,36350],[29350,36350],[29350,36350],[29350,36350]],[[38575,45575],[38575,45575],[38575,45575],[38575,45575],[38575,45575],[38575,45575]]],"vehicle_break_durations":[[3600,3600,3600,3600,3600,3600],[3600,3600,3600,3600,3600,3600],[3600,3600,3600,3600,3600,3600]],"vehicle_break_locations":[13,14],"vehicle_types":null,"vehicle_order_match":null,"skip_first_trips":null,"drop_return_trips":null,"min_vehicles":1,"vehicle_max_costs":null,"vehicle_max_times":null,"vehicle_fixed_costs":null},"task_data":{"task_locations":[1,2,3,4,5,6,7,8,9,10,11,12],"task_ids":null,"demand":[[47000,-47000,47000,-47000,47000,-47000,47000,-47000,40000,-40000,40000,-40000],[26,-26,26,-26,26,-26,26,-26,26,-26,26,-26]],"pickup_and_delivery_pairs":[[0,1],[2,3],[4,5],[6,7],[8,9],[10,11]],"task_time_windows":[[0,90000],[0,90000],[0,90000],[0,90000],[0,90000],[0,90000],[0,90000],[0,90000],[0,90000],[0,90000],[0,90000],[0,90000]],"service_times":[240,780,240,780,240,780,240,780,300,240,300,240],"prizes":null,"order_vehicle_match":null},"solver_config":{"time_limit":120,"objectives":{"cost":1,"travel_time":1,"variance_route_size":1,"variance_route_service_time":1,"prize":0,"vehicle_fixed_cost":0},"verbose_mode":false,"error_logging":false}}

Hi @joakim.apelqvist so sorry for the delayed response here. Were you able to resolve your issue or do you still need assistance? Thanks, Sophie