akkadotnet / Akka.Persistence.PostgreSql

Akka.Persistence.PostgreSql provider
Apache License 2.0
32 stars 35 forks source link

Support the driver returning JObject instead of string for Jsonb #266

Closed oyzar closed 3 months ago

oyzar commented 3 months ago

Version Information Version of Akka.NET? 1.15.20 Which Akka.NET Modules? Akka.Persistence.PostgreSql

Describe the bug A clear and concise description of what the bug is. If the extensionmethod UseJsonNet from Npgsql.Json.NET 8.0.3 is called. The driver returns JsonB as JObject instead of string. This fails inside the deserialization inside of akka if that is the case.

To Reproduce Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Links to working reproductions on Github / Gitlab are very much appreciated

Expected behavior A clear and concise description of what you expected to happen.

Actual behavior What actually happened and how did it differ from your expectations?

Screenshots If applicable, add screenshots to help explain your problem.

Environment Are you running on Linux? Windows? Docker? Which version of .NET?

Additional context Add any other context about the problem here.

Arkatufus commented 3 months ago

It turns out that the underlying issue was caused by a breaking change between Npgsql v8 and Npgsql.Json.NET.

Making the change outlined inside #267 is risky as it changes the behavior of the plugin for all users and making this backward compatible requires more engineering work that we could not spare at this moment, as the plugin itself is nearing its end of life.

Please consider switching to Akka.Persistence.Sql and changing your storage type to ByteA.