 
                 log("refreshToken: \(refreshToken), failed to receive new token")
                 self._reAuthenticateUsername(success: success, failure: failure)
-            case .Failure:
-                self._reAuthenticateUsername(success: success, failure: failure)
+            case .Failure(error):
+                reauthResult = (false, (error: error as NSError, statusCode: nil))
+                failure(error: error as NSError, statusCode: nil)
             }
         }
     }

                        failure(error: elloError, statusCode: moyaResponse.statusCode)
                    }
                case let .Failure(error):
                    failure(error: error as NSError, statusCode: nil)
                }
            }

                reauthOperation = AsyncOperation(block: { done in
                    self._reAuthenticateToken(success: {
                        success()
                        currentReauthOperation = nil
                        done()
                    }, failure: { (error, statusCode) in
                        failure(error: error, statusCode: statusCode)
                        currentReauthOperation = nil
                        done()
                    })
                })
                currentReauthOperation = reauthOperation
