We should never read from the error pointer that's passed in. The correct way to handle this is with a local `NSError` variable that we wrap up for the caller.