Why do we log the error instead of throwing the error, here and below? Otherwise the states below should check for the return value not being a dictionary.

Also, `list` and `delete` return `False` in the error case while `create` returns `None`.