Closed wesselkranenborg closed 9 months ago
@Aaronontheweb: is this something which is known? I'll try to create a minimal repro path this afternoon (CET). I'm the most curious about the System.Text.Json part, as we're using hyperion as serializer. This is our Akka.NET hosting code for serialization:
.WithCustomSerializer(
"hyperion",
new[] {
typeof(object)
},
system => new HyperionSerializer(system))
This is extremely odd, because we internally aren't using Systme.Text.Json anywhere - I wonder if the Azure Storage client itself is now returning something that is wrapped inside an STJ primitive.
When I look into our state and base64 decode it, it shows this:
There you already see the System.Text.Json.* and also the MetadataDb (which is some internal type of System.Text.Json apparently).
We don't use System.Text.Json in the flow of this message but we use objects. Maybe somewhere internally these object properties are translated into System.Text.Json elements. But for now it doesn't look like something in Akka.Persistence.Azure, Hyperion or Akka.NET at all. Looks like a strange (de)serialization issue when using object properties.
So I suggest to close this issue.
Today we upgraded our service which is using Hyperion serialization to .NET 8. We are using Akka.Persistence.Azure and suddenly our state is broken.
We use Akka.NET 1.5.13 but I also tried with 1.5.14 and 1.5.15. The errors which we get (by only upgrading to .NET 8 with hyperion serialization) are:
This is what the
StaticStateActor+NewStateMessage
record does look like (it's not changed during the upgrade)Is this a known thing? Are we forgetting something during upgrade?
I'm also curious why it is stating
System.Text.Json
in the exception as we are not using that as serializer. And also where type MetadataDb is coming from. That's nowhere mentioned in my code :-)