Your analysis looks correct, but the solution is not:
- If the server does not recognize the control type, determines that
it is not appropriate for the operation, or is otherwise unwilling
to perform the operation with the control, and if the criticality
field is FALSE, the server MUST ignore the control.
Your fix may result in not ignoring the control. A fix is coming.