In case of broken data in the datastore more than one object can be returned where only one is expected. Don't raise an exception in this case, but don't cache the broken data.
Make sure cache and reverse_cache attributes exist on context to avoid errors on remote shell, where no incoming request initialises these.