We see None being returned from RiakClient.bucket(..) a few dozen times per day on our worker processes. This is probably exacerbated by the fact we're forcing garbage collection in another thread periodically.
This has been tackled in f944a8b by using WeakValueDictionary.setdefault, but until http://bugs.python.org/issue19542 is merged in (status still open), setdefault isn't atomic itself, hence a race condition returning None is possible.