Miscellany

Also, not returning an error will cause memory usage to grow unboundedly for each call to metadata when the client is disconnected. I had it return an error rather than add it to the client dict because there could potentially be a lot of lookup calls. But FWIW I didn't put much thought into if it actually could be a problem.