diff --git a/src/JsonApiDotNetCore/Errors/InvalidModelStateException.cs b/src/JsonApiDotNetCore/Errors/InvalidModelStateException.cs index 33e2f5be14..9cba6d0467 100644 --- a/src/JsonApiDotNetCore/Errors/InvalidModelStateException.cs +++ b/src/JsonApiDotNetCore/Errors/InvalidModelStateException.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Net; using System.Reflection; @@ -80,7 +81,7 @@ private static Error FromModelError(ModelError modelError, string attributeName, if (includeExceptionStackTraceInErrors && modelError.Exception != null) { - error.Meta.IncludeExceptionStackTrace(modelError.Exception); + error.Meta.IncludeExceptionStackTrace(modelError.Exception.Demystify()); } return error; diff --git a/src/JsonApiDotNetCore/Middleware/ExceptionHandler.cs b/src/JsonApiDotNetCore/Middleware/ExceptionHandler.cs index 99731e7b49..db270ec56d 100644 --- a/src/JsonApiDotNetCore/Middleware/ExceptionHandler.cs +++ b/src/JsonApiDotNetCore/Middleware/ExceptionHandler.cs @@ -99,7 +99,9 @@ protected virtual ErrorDocument CreateErrorDocument(Exception exception) private void ApplyOptions(Error error, Exception exception) { - error.Meta.IncludeExceptionStackTrace(_options.IncludeExceptionStackTraceInErrors ? exception : null); + Exception resultException = exception is InvalidModelStateException ? null : exception; + + error.Meta.IncludeExceptionStackTrace(_options.IncludeExceptionStackTraceInErrors ? resultException : null); } } } diff --git a/src/JsonApiDotNetCore/Serialization/Objects/ErrorMeta.cs b/src/JsonApiDotNetCore/Serialization/Objects/ErrorMeta.cs index 8a07774d71..43b327c359 100644 --- a/src/JsonApiDotNetCore/Serialization/Objects/ErrorMeta.cs +++ b/src/JsonApiDotNetCore/Serialization/Objects/ErrorMeta.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using Newtonsoft.Json; namespace JsonApiDotNetCore.Serialization.Objects @@ -21,7 +20,7 @@ public void IncludeExceptionStackTrace(Exception exception) } else { - Data["StackTrace"] = exception.Demystify().ToString() + Data["StackTrace"] = exception.ToString() .Split("\n", int.MaxValue, StringSplitOptions.RemoveEmptyEntries); } }