The documentation for SetAllowedVehiclesForIndex states:
"Sets the vehicles which can visit a given node. If the node is in a disjunction, this will not prevent it from being unperformed. Specifying an empty vector of vehicles has no effect (all vehicles will be allowed to visit the node)."
The last sentence here is the issue. This is clearly not the correct behavior. I might have very good reasons for specifying that no vehicle is allowed to visit the node. Indeed, if that node also has a disjunction / disjunction cost (as it does in my case) doing so would result in a perfectly feasible solution.
The documentation for SetAllowedVehiclesForIndex states:
"Sets the vehicles which can visit a given node. If the node is in a disjunction, this will not prevent it from being unperformed. Specifying an empty vector of vehicles has no effect (all vehicles will be allowed to visit the node)."
The last sentence here is the issue. This is clearly not the correct behavior. I might have very good reasons for specifying that no vehicle is allowed to visit the node. Indeed, if that node also has a disjunction / disjunction cost (as it does in my case) doing so would result in a perfectly feasible solution.