From 55a706e4091271aa55208a260b2f4f96e1527698 Mon Sep 17 00:00:00 2001
From: Artur Jankowski <ajankowski@box.com>
Date: Tue, 4 Jan 2022 11:54:51 +0100
Subject: [PATCH] fix: Creating BoxAuthenticationFailedException no longer
 throws an exception (#790)

---
 Box.V2/Exceptions/BoxAuthenticationFailedException.cs |  5 ++---
 Box.V2/Exceptions/BoxException.cs                     | 11 ++++++++---
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/Box.V2/Exceptions/BoxAuthenticationFailedException.cs b/Box.V2/Exceptions/BoxAuthenticationFailedException.cs
index 52255a84c..d321a68aa 100644
--- a/Box.V2/Exceptions/BoxAuthenticationFailedException.cs
+++ b/Box.V2/Exceptions/BoxAuthenticationFailedException.cs
@@ -24,9 +24,8 @@ protected internal BoxSessionInvalidatedException(string message, BoxError error
 
         protected internal static new BoxSessionInvalidatedException GetResponseException<T>(string message, IBoxResponse<T> response) where T : class
         {
-            var ex = BoxAPIException.GetResponseException(message, response);
-
-            return (BoxSessionInvalidatedException)ex;
+            var error = GetResponseError(response);
+            return new BoxSessionInvalidatedException(GetErrorMessage(message, response, error), response.Error, response.StatusCode, response.Headers);
         }
     }
 }
diff --git a/Box.V2/Exceptions/BoxException.cs b/Box.V2/Exceptions/BoxException.cs
index a5611359e..934888b2b 100644
--- a/Box.V2/Exceptions/BoxException.cs
+++ b/Box.V2/Exceptions/BoxException.cs
@@ -61,6 +61,12 @@ protected internal BoxAPIException(string message, BoxError error, HttpStatusCod
         /// <param name="message">The message from the SDK about what happened</param>
         /// <param name="response">The HTTP response that generated the exception</param>
         protected internal static BoxAPIException GetResponseException<T>(string message, IBoxResponse<T> response) where T : class
+        {
+            var error = GetResponseError(response);
+            return new BoxAPIException(GetErrorMessage(message, response, error), response.Error, response.StatusCode, response.Headers);
+        }
+
+        protected internal static BoxError GetResponseError<T>(IBoxResponse<T> response) where T : class
         {
             BoxError error = null;
             if (!string.IsNullOrWhiteSpace(response.ContentString))
@@ -76,12 +82,11 @@ protected internal static BoxAPIException GetResponseException<T>(string message
                     Debug.WriteLine(string.Format("Unable to parse error message: {0} ({1})", response.ContentString, e.Message));
                 }
             }
-            var ex = new BoxAPIException(GetErrorMessage(message, response, error), response.Error, response.StatusCode, response.Headers);
 
-            return ex;
+            return error;
         }
 
-        private static string GetErrorMessage<T>(string message, IBoxResponse<T> response, BoxError error = null) where T : class
+        protected internal static string GetErrorMessage<T>(string message, IBoxResponse<T> response, BoxError error = null) where T : class
         {
             var requestID = error?.RequestId;
             string traceID = null;