This is really weird logic.

You're doing:
1. If there's an error
2. Dispatch this block (block)
3. Set _errorFetching = YES

In block that runs /almost immediately/:
1. If _errorFetching == NO...

So why bother doing this? Also, keep your callback methods as *simple as possible*. This looks like you're relying either on a race condition or some really bizarre logic. Bonus points, you **never** set _errorFetching to false, and it's used in a few methods.

I highly recommend removing _errorFetching