Currently thunder supports:
z = z.redistribute(placements=[Replicate()], async_op=True)
This will mark the redistribution node as unsupported:
z = z.redistribute(mesh, [Replicate()], async_op=True)
The issue should be this dictionary access, while placements could be passed as a positional argument.