What can possibly affect skill-based assignment of jobs?

I am using skills to make sure that each shipments assigned to specific vehicle.
There are several vehicles with skills available:

Vehicle s2151 skills: [all, s2151]
Vehicle s2147 skills: [all, s2147]
Vehicle s2152 skills: [all, s2152]
Vehicle s2145 skills: [all, s2145]
Vehicle s2149 skills: [all, s2149]
Vehicle s2146 skills: [all, s2146]
Vehicle s2148 skills: [all, s2148]
Vehicle s2153 skills: [all, s2153]
Vehicle s2150 skills: [all, s2150]

For a larger part of shipments, everything was OK. However, some shipments were unassigned.
Here is what UnassignedJobReasonTracker returns as most likely reason:

Code 1: s44133 - cannot serve required skill
Skills of s44133 : [s2151]
Code 1: s44049 - cannot serve required skill
Skills of s44049 : [s2148]
Code 1: s44134 - cannot serve required skill
Skills of s44134 : [s2148]

I have checked shipments and vehicles for missing skills, and I’m quite sure that they are all set.
Necessary skill exists before and after building shipments:

Shipment shipment = shipmentBuilder.build();
System.out.println("Shipment " + shipment.getId() + "skills: " + shipment.getRequiredSkills().toString());

Result:

Shipment s44049skills: [s2148]
Shipment s44133skills: [s2151]
Shipment s44134skills: [s2148]

Just in case, I’ve tried to set high penalty for unassigned jobs:

algorithm.setProperty(Jsprit.Parameter.MAX_TRANSPORT_COSTS, Double.toString(1.0E8));

Is there anything that can cause unassigned jobs to appear in such scenario?

@Stardrifter I’m also facing the same issue of getting unassigned jobs even after applying the high penalty for them. In case someone knows pl help us out.

Thanks

Powered by Discourse