To check if success or not, you are using :
if ([responseObject objectForKey:@"Success"])
I don't know your service and the retrieve Diccionary, however I think you always have an object for the key @"Success", and because @"Success" exists is passing in all the scenarios.
Try to check the value, e.g.:
if ([[responseObject objectForKey:@"Success"] isEqualsToString @"ok"])