                                         self.tableView.insertSections(indexSet, withRowAnimation: .None)
                                     }
                                     self.reloadTable()
-                                })
+                                }
                             }
-                        })
+                        }
                     }
                 }
             }
         }
+    }
+
+    func presentError(error: NSError) {
+        let alertController = UIAlertController(title: "Error", message: "Hit an error trying to load posts. \(error.localizedDescription)", preferredStyle: .Alert)
+        let action = UIAlertAction(title: "OK", style: .Default, handler: nil)
+
+        alertController.addAction(action)
+
+        presentViewController(alertController, animated: true, completion: nil)
+
+        print(error)
     }
 
     func processPosts(posts: Array<Post>) {

                }
            }
            requestPosts(0, parameters: ["since_id" : "\(sinceID)", "reblog_info" : "true"]) { (response: AnyObject!, error: NSError!) in
                if let e = error {
                    print(e)
                    self.loadingTop = false
                } else {
                    dispatch_async(self.postParseQueue, {
                        let posts = self.postsFromJSON(JSON(response))
                        dispatch_async(dispatch_get_main_queue()) {
                            self.processPosts(posts)
                            
                            dispatch_async(dispatch_get_main_queue(), {
                                self.loadingCompletion = {
                                    if self.posts.count > 0 {
                                        self.posts = posts + self.posts

                                    self.tableView.reloadData()
                                }
                                self.reloadTable()
                            }
                        }
                    }
                }
            }
        } else {
            requestPosts(0, parameters: ["reblog_info" : "true"]) { (response: AnyObject!, error: NSError!) in
                if let error = error {
                    dispatch_async(dispatch_get_main_queue()) {
                        self.presentError(error)
                        self.loadingTop = false
                    }
                } else {
                    dispatch_async(self.postParseQueue) {
                        let posts = self.postsFromJSON(JSON(response))
                        dispatch_async(dispatch_get_main_queue()) {
                            self.processPosts(posts)
                            
                            dispatch_async(dispatch_get_main_queue()) {
                                self.loadingCompletion = {
                                    self.posts = posts
                                    self.heightCache.removeAll()
                                    self.tableView.reloadData()
                                }
                                self.reloadTable()
                            }
                        }
                    }
                }
            }
        }
