         throw RepositoryError.StatusFail(message: message, code: code)
     }
     
-    private func getErrorFromResponse(response: NSURLResponse) -> ErrorType? {
+    private func getErrorFromResponse(response: NSURLResponse, data: NSData?) -> RepositoryError? {
         guard let httpResponse = response as? NSHTTPURLResponse else {
             return nil
         }
         let code = httpResponse.statusCode
         if code >= 400 && code < 600 {
-            return RepositoryError.HTTPError(statusCode: code)
+            var message: String?
+            if let data = data {
+                message = String(data: data, encoding: NSISOLatin1StringEncoding)
+            }
+            return RepositoryError.HTTPError(statusCode: code, message: message)
         }
         return nil
     }

                        if let error = error {
                            throw error
                        }
                        if let response = response, error = self.getErrorFromResponse(response) {
                            throw error
                        }
                        guard let data = data else {

                        if let error = error {
                            throw error
                        }
                        if let response = response, error = self.getErrorFromResponse(response, data: data) {
                            throw error
                        }
                        guard let data = data else {
