Here is qualified guess at the issue. I emphasize it is a guess.
The issue might be caused by a conversion from QCQP format and to the SOCP format that is used internally. You of course have to convert the dual solution to the SOCP back to a dual solution to the QCQP and that can be very tricky and error prone numerically. This is particularly true for certain degenerate cases.
Therefore, at MOSEK we allow to specify the problem on conic form directly which means we can report the correct dual solution always. Some users thinks we stupid at doing things that way but this is one of the important reasons for doing to so.
Hence, a solution to your problem might be to use
MOSEK or SeDuMi or SDPT3 if you need accurate dual information.
Btw an old paper of mine implicitly addresses this issue: