That's not correct, the python driver is wrong here. The node 2 has been decommissioned, it's not "just down", so the TokenAware policy should always pick whatever node is the new replica for the query performed and that's what the java driver does. That the python driver fallback to RoundRobin suggests that it doesn't properly update it's token range definitions when a node is decommissioned.

Note that by design, if the routing key is correct, then in a single DC setup, if TokenAware fallback to the child policy then that *must* imply that the query fail with an unavailable exception (unless maybe for write at CL.ANY). If no replica for the query are live, how could the query work?