Is this because the "ExceptionData" re-reads it from inner exception multiple times?
Look like it bubbles-up the bottom-most cause too many times, it (WrappedExceptionData) should probably not do that?
{
"TypeName": "Azos.Wave.MvcActionException",
"Message": "Controller action body: 'G8.Server.Web.SysControllers.Test'.'echo'. Exception: [Azos.Web.HTTPStatusException] 400 - Bad Request body : [Azos.Serialization.JSON.Backends.JazonDeserializationException] Code eColonOperatorExpected at Line: 15579 Col: 43 Char: 935928 `{LineItemBOM{CommonBOMS{CommonBOM[#7{multilevelbom{multilevelboms{multilevelbom[#1{multilevelboms{multilevelbom[#1{multilevelboms{multilevelbom[#2{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom[#2{parts{part{instructions{instruction[#0{castaiclake` near `\"W\",\n \"value\": 6.9375, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcastaiclake,`: Missing colon",
"Code": 0,
"Source": "Azos.Wave",
"StackTrace": " at Azos.Wave.Handlers.MvcHandler.DoError(WorkContext work, Exception error)\n at Azos.Wave.Handlers.TypeLookupHandler`1.DoHandleWorkAsync(WorkContext work)\n at Azos.Wave.WorkHandler.HandleWorkAsync(WorkContext work)\n at Azos.Wave.WorkHandler.FilterAndHandleWorkAsync(WorkContext work)\n at Azos.Wave.CompositeWorkHandler.DoHandleWorkAsync(WorkContext work)\n at Azos.Wave.WorkHandler.HandleWorkAsync(WorkContext work)\n at Azos.Wave.WorkHandler.FilterAndHandleWorkAsync(WorkContext work)\n at Azos.Wave.CompositeWorkHandler.DoHandleWorkAsync(WorkContext work)\n at Azos.Wave.WorkHandler.HandleWorkAsync(WorkContext work)\n at Azos.Wave.WorkFilter.InvokeNextWorkerAsync(WorkContext work, CallChain callChain)\n at G8.Server.Web.G8CorsFilter.DoFilterWorkAsync(WorkContext work, CallChain callChain) in C:\\Zdev\\ghub\\g8\\src\\G8.Server\\Web\\G8CorsFilter.cs:line 101\n at Azos.Wave.WorkFilter.FilterWorkAsync(WorkContext work, CallChain callChain)",
"AppId": "hub",
"AppName": "hub",
"ExternalStatus": {
"ns": "wave.mvc",
"type": "MvcActionException",
"code": 0,
"cause": {
"ns": "wave.mvc",
"type": "HTTPStatusException",
"code": 0,
"cause": {
"ns": "ser.json",
"type": "JazonDeserializationException",
"code": 0,
"jz.code": "eColonOperatorExpected",
"jz.txt": "Missing colon",
"jz.p.char": 935928,
"jz.p.ln": 15579,
"jz.p.col": 43,
"jz.path": "{LineItemBOM{CommonBOMS{CommonBOM[#7{multilevelbom{multilevelboms{multilevelbom[#1{multilevelboms{multilevelbom[#1{multilevelboms{multilevelbom[#2{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom[#2{parts{part{instructions{instruction[#0{castaiclake",
"jz.src": "\"W\",\n \"value\": 6.9375, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcastaiclake,"
},
"http::code": 400,
"http::descr": "Bad Request body"
},
"controller": "G8.Server.Web.SysControllers.Test",
"action": "echo"
},
"InnerException": {
"TypeName": "Azos.Web.HTTPStatusException",
"Message": "400 - Bad Request body : [Azos.Serialization.JSON.Backends.JazonDeserializationException] Code eColonOperatorExpected at Line: 15579 Col: 43 Char: 935928 `{LineItemBOM{CommonBOMS{CommonBOM[#7{multilevelbom{multilevelboms{multilevelbom[#1{multilevelboms{multilevelbom[#1{multilevelboms{multilevelbom[#2{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom[#2{parts{part{instructions{instruction[#0{castaiclake` near `\"W\",\n \"value\": 6.9375, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcastaiclake,`: Missing colon",
"Code": 0,
"Source": "Azos.Wave",
"StackTrace": " at Azos.Wave.WorkContext.DoGetRequestBodyAsJsonDataMapAsync()\n at Azos.Wave.WorkContext.GetRequestBodyAsJsonDataMapAsync()\n at Azos.Wave.WorkContext.DoGetWholeRequestAsJsonDataMapAsync()\n at Azos.Wave.WorkContext.GetWholeRequestAsJsonDataMapAsync()\n at G8.Server.Web.SysControllers.Test.Echo() in C:\\Zdev\\ghub\\g8\\src\\G8.Server\\Web\\SysControllers\\Test.cs:line 23\n at Azos.Wave.Handlers.MvcHandler.DoTargetWorkAsync(Controller target, WorkContext work)\n at Azos.Wave.Handlers.MvcHandler.DoTargetWorkAsync(Controller target, WorkContext work)",
"AppId": "hub",
"AppName": "hub",
"ExternalStatus": {
"ns": "wave.mvc",
"type": "HTTPStatusException",
"code": 0,
"cause": {
"ns": "ser.json",
"type": "JazonDeserializationException",
"code": 0,
"jz.code": "eColonOperatorExpected",
"jz.txt": "Missing colon",
"jz.p.char": 935928,
"jz.p.ln": 15579,
"jz.p.col": 43,
"jz.path": "{LineItemBOM{CommonBOMS{CommonBOM[#7{multilevelbom{multilevelboms{multilevelbom[#1{multilevelboms{multilevelbom[#1{multilevelboms{multilevelbom[#2{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom[#2{parts{part{instructions{instruction[#0{castaiclake",
"jz.src": "\"W\",\n \"value\": 6.9375, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcastaiclake,"
},
"http::code": 400,
"http::descr": "Bad Request body"
},
"InnerException": {
"TypeName": "Azos.Serialization.JSON.Backends.JazonDeserializationException",
"Message": "Code eColonOperatorExpected at Line: 15579 Col: 43 Char: 935928 `{LineItemBOM{CommonBOMS{CommonBOM[#7{multilevelbom{multilevelboms{multilevelbom[#1{multilevelboms{multilevelbom[#1{multilevelboms{multilevelbom[#2{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom[#2{parts{part{instructions{instruction[#0{castaiclake` near `\"W\",\n \"value\": 6.9375, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcastaiclake,`: Missing colon",
"Code": 0,
"Source": "Azos",
"StackTrace": " at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doArray(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doArray(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doArray(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doArray(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doArray(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doArray(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doObject(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonParser.doAny(JazonLexer lexer, Boolean senseCase, Int32 maxDepth)\n at Azos.Serialization.JSON.Backends.JazonReaderBackend.DeserializeFromJson(Stream stream, Boolean caseSensitiveMaps, Encoding encoding)\n at Azos.Wave.WorkContext.DoGetRequestBodyAsJsonDataMapAsync()",
"AppId": "hub",
"AppName": "hub",
"ExternalStatus": {
"ns": "ser.json",
"type": "JazonDeserializationException",
"code": 0,
"jz.code": "eColonOperatorExpected",
"jz.txt": "Missing colon",
"jz.p.char": 935928,
"jz.p.ln": 15579,
"jz.p.col": 43,
"jz.path": "{LineItemBOM{CommonBOMS{CommonBOM[#7{multilevelbom{multilevelboms{multilevelbom[#1{multilevelboms{multilevelbom[#1{multilevelboms{multilevelbom[#2{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom{multilevelboms{multilevelbom[#2{parts{part{instructions{instruction[#0{castaiclake",
"jz.src": "\"W\",\n \"value\": 6.9375, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcastaiclake,"
},
"InnerException": null
}
}
}
Is this because the "ExceptionData" re-reads it from inner exception multiple times? Look like it bubbles-up the bottom-most cause too many times, it (WrappedExceptionData) should probably not do that?