Skip to content

Instantly share code, notes, and snippets.

@mastoj
Created December 28, 2022 22:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mastoj/05d2a818910820a4b0193628604efb1e to your computer and use it in GitHub Desktop.
Save mastoj/05d2a818910820a4b0193628604efb1e to your computer and use it in GitHub Desktop.
Marten exception
namespace NextCart.Api.Cart;
public interface CartEvent { }
public record CreateCart(Guid CartId);
public record CartCreated(Guid CartId) : CartEvent;
public record Cart(Guid Id, int Version = 1)
{
public static Cart Create(CartCreated created) => new(created.CartId);
}
fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
An unhandled exception has occurred while executing the request.
Marten.Exceptions.EventDeserializationFailureException: Event deserialization error on sequence = 1
---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.NullReferenceException: Object reference not set to an instance of an object.
at NextCart.Api.Cart.CartCreated..ctor(CartCreated original)
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.ConstructorInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
--- End of inner exception stack trace ---
at System.Reflection.ConstructorInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Marten.Services.Json.JsonNetObjectContractProvider.<>c__DisplayClass4_0.<GetObjectConstructor>b__2(Object[] a)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObjectUsingCreatorWithParameters(JsonReader reader, JsonObjectContract contract, JsonProperty containerProperty, ObjectConstructor`1 creator, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType)
at Marten.Services.JsonNetSerializer.FromJson(Type type, DbDataReader reader, Int32 index)
at Marten.Services.JsonNetSerializer.FromJsonAsync(Type type, DbDataReader reader, Int32 index, CancellationToken cancellationToken)
at Marten.Events.EventMapping.<>c__DisplayClass61_0.<<JsonTransformation>b__2>d.MoveNext()
--- End of stack trace from previous location ---
at Marten.Events.EventDocumentStorage.ResolveAsync(DbDataReader reader, CancellationToken token)
--- End of inner exception stack trace ---
at Marten.Events.EventDocumentStorage.ResolveAsync(DbDataReader reader, CancellationToken token)
at Marten.Linq.QueryHandlers.ListQueryHandler`1.HandleAsync(DbDataReader reader, IMartenSession session, CancellationToken token)
at Marten.Internal.Sessions.QuerySession.ExecuteHandlerAsync[T](IQueryHandler`1 handler, CancellationToken token)
at Marten.Events.QueryEventStore.FetchStreamAsync(Guid streamId, Int64 version, Nullable`1 timestamp, Int64 fromVersion, CancellationToken token)
at Marten.Events.QueryEventStore.AggregateStreamAsync[T](Guid streamId, Int64 version, Nullable`1 timestamp, T state, Int64 fromVersion, CancellationToken token)
at NextCart.Api.Infrastructure.MartenExtensions.Add[T](IDocumentSession documentSession, Guid id, Func`1 handle, CancellationToken ct) in /home/tomas/git/mastoj/nextcart/src/NextCart.Api/Infrastructure/MartenExtensions.cs:line 41
at NextCart.Api.Cart.CartApi.CreateCart(IDocumentSession documentSession, CreateCartRequest request, CancellationToken ct) in /home/tomas/git/mastoj/nextcart/src/NextCart.Api/Cart/CartApi.cs:line 33
at Microsoft.AspNetCore.Http.RequestDelegateFactory.ExecuteTaskResult[T](Task`1 task, HttpContext httpContext)
at Microsoft.AspNetCore.Http.RequestDelegateFactory.<>c__DisplayClass89_2.<<HandleRequestBodyAndCompileRequestDelegateForJson>b__2>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment