The distinct command orders results according to the collection's default collation if the collection is sharded.
It obtains the collection's default collation from the routingInfo. However, since scatterGather() internally gets its own copy of routingInfo, the routingInfo used in the command can be for a previous incarnation of the collection (and so have the wrong collection default collation).
This ticket should make the versioned scatterGather() methods optionally take the routingInfo to use, for commands that need to use the routingInfo themselves for non-routing purposes.