Skip to content

When the IsSystemMessage metadata is not present, then the GetAllErrors throws JsonSerialization exception #429

@indualagarsamy

Description

@indualagarsamy

When messages from non-NSB endpoints do not contain required header information to determine if the message is a SystemMessage or not, ServiceControl does not process that message properly and it causes the following exception, when the GetAllErrors is invoked:

2014-12-12 09:17:43.3817|23|Error|ServiceBus.Management.Infrastructure.Nancy.NServiceBusContainerBootstrapper|Http call failed
Raven.Imports.Newtonsoft.Json.JsonSerializationException: Could not read value for property: IsSystemMessage ---> Raven.Imports.Newtonsoft.Json.JsonSerializationException: Error converting value {null} to type 'System.Boolean'. Path 'IsSystemMessage'. ---> System.InvalidCastException: Null object cannot be converted to a value type.
   at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
   at Raven.Imports.Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
   --- End of inner exception stack trace ---
   at Raven.Imports.Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
   at Raven.Imports.Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Raven.Imports.Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Raven.Imports.Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   --- End of inner exception stack trace ---
   at Raven.Imports.Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Raven.Imports.Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Raven.Imports.Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Raven.Imports.Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Raven.Imports.Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Raven.Client.Document.SessionOperations.QueryOperation.DeserializedResult[T](RavenJObject result)
   at Raven.Client.Document.SessionOperations.QueryOperation.Deserialize[T](RavenJObject result)
   at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Raven.Client.Document.SessionOperations.QueryOperation.Complete[T]()
   at Raven.Client.Document.AbstractDocumentQuery`2.GetEnumerator()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at ServiceControl.MessageFailures.Api.GetAllErrors.<.ctor>b__7(Object _) in c:\BuildAgent\work\b7f882efc2cd360b\src\ServiceControl\MessageFailures\Api\GetAllErrors.cs:line 22
   at CallSite.Target(Closure , CallSite , Func`2 , Object )
   at Nancy.Routing.Route.<>c__DisplayClass4.<Wrap>b__3(Object parameters, CancellationToken context)
2

Related desk case: https://nservicebus.desk.com/agent/case/8183

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions