so if i don't supply a rate but i do supply a socket type, the rate will be 'udp'. i think we just found your UDP issue with the rate. does it make sense this way around? maybe rate should be non-optional.