When a HTTP call out method don't just check for the lack of an error instead check for an error AND check the status code.
NSUInteger statusCode = ((NSHTTPURLResponse *)response).statusCode;
if (!error && statusCode == 200) {
// magic
}];
http://stackoverflow.com/questions/14692813/nserror-not-being-populated/14693158#14693158