I don't think there is anything wrong with your fetching data from server. The only thing you might be doing incorrectly is not to refresh the tableView when you reinitialize self.data.
When you pull down and release table view needs to display the 6th tableView cell which went out of viewport and your cell needs 6th object from your data but your data is not present anymore.
just insert the following.
-(void)loadProjectsFromService{
[spinner beginRefreshing];
self.data = [[NSMutableArray alloc] init];
[self.tableView reloadData]; //Insert table reload here.
//... rest of your code ...
}