Unable to identify a constraint from UnassignedJobReasonTracker

I have some unassigned jobs in my solution and would like to identify which constraints are at fault. However, there is one constraint whose name does not show up, like this:

100=Value 	 Freq. 	 Pct. 	 Cum Pct. 
	432	98%	98%
HardSkillConstraint	4	1%	99%
PickupAndDeliverShipmentLoadActivityLevelConstraint	4	1%	100%

This is repeated for every unassigned job, giving only frequency, percent, and cumulative percent for the first constraint. All other constraints get their name. To try and find the culprit, I have printed out all constraints short names, here given new line for each constraint for easier readability:


There are no errors occuring during run-time. Code adding the constraints to reason tracker is here:

UnassignedJobReasonTracker reasonTracker = new UnassignedJobReasonTracker();
    reasonTracker.put("softConstraint", 21, "custom soft constraint 1");
    reasonTracker.put("hardBatch", 22, "hard constraint to accept only putting newAtc beside other activities with same name if name appears multiple times");
    reasonTracker.put("hardDeliverPick", 23, "hard constraint for preferred order at locations");

Any ideas to why this is happening? Are the custom constraints added to that unnamed constraint? Is the unnamed constraint the amount of times a constraint is passed as accepted?

Thank you!

I have run a JUnit test, which has given me the following results for each unassigned job:

2=Value 	 Freq. 	 Pct. 	 Cum Pct. 
PickupAndDeliverShipmentLoadActivityLevelConstraint	62	50%	50%
VehicleDependentTimeWindowConstraints	62	50%	100%

The JUnit test had assigned jobs, which eliminates the probability of the unnamed constraint being used to count the amount of constraint checks accepted.
Could it be a constraint, which is not tracked?


EDIT: Adding the non-tracked constraints to be tracked did not help. Neither did removing the custom constraints from the tracker.

Read through the release notes/issue comments from when UnassignedJobReasonTracker was added. There I noticed, that the name put into tracker (below “softConstraint”)

reasonTracker.put("softConstraint", 21, "custom soft constraint 1");

needs to be the Java class name of the constraint, which meant I had to put all the constraints, that I wanted to track, into their own classes. Hope this helps some other whelp, who is prone to miss stuff. :slight_smile: