Fork me on GitHub
#datomic
<
2023-01-26
>
fmnoise08:01:47

hi everyone, we have datomic on-prem 0.9.6045 running in docker contrainer and we often see this error in container logs

java.lang.IllegalArgumentException: Cannot write {:db/id 17592186046593} as tag null
        at org.fressian.handlers.WriteHandlerLookup.requireWriteHandler(WriteHandlerLookup.java:48)
        at org.fressian.FressianWriter.writeAs(FressianWriter.java:458)
        at org.fressian.FressianWriter.writeAs(FressianWriter.java:464)
        at org.fressian.FressianWriter.writeObject(FressianWriter.java:472)
        at org.fressian.FressianWriter.writeIterator(FressianWriter.java:152)
        at org.fressian.FressianWriter.writeList(FressianWriter.java:165)
        at org.fressian.impl.Handlers$31.write(Handlers.java:339)
        at org.fressian.FressianWriter.doWrite(FressianWriter.java:449)
        at org.fressian.FressianWriter.writeAs(FressianWriter.java:459)
        at org.fressian.FressianWriter.writeAs(FressianWriter.java:464)
        at org.fressian.FressianWriter.writeObject(FressianWriter.java:472)
        at org.fressian.FressianWriter.writeIterator(FressianWriter.java:152)
        at org.fressian.FressianWriter.writeList(FressianWriter.java:165)
        at org.fressian.impl.Handlers$32.write(Handlers.java:352)
        at org.fressian.FressianWriter.doWrite(FressianWriter.java:449)
        at org.fressian.FressianWriter.writeAs(FressianWriter.java:459)
        at org.fressian.FressianWriter.writeAs(FressianWriter.java:464)
        at org.fressian.FressianWriter.writeObject(FressianWriter.java:472)
        at org.fressian.FressianWriter.writeIterator(FressianWriter.java:152)
        at org.fressian.FressianWriter.writeList(FressianWriter.java:165)
        at org.fressian.impl.Handlers$32.write(Handlers.java:352)
        at org.fressian.FressianWriter.doWrite(FressianWriter.java:449)
        at org.fressian.FressianWriter.writeAs(FressianWriter.java:459)
        at org.fressian.FressianWriter.writeAs(FressianWriter.java:464)
        at org.fressian.FressianWriter.writeObject(FressianWriter.java:472)
        at org.fressian.FressianWriter.writeIterator(FressianWriter.java:152)
        at org.fressian.FressianWriter.writeList(FressianWriter.java:165)
        at org.fressian.impl.Handlers$32.write(Handlers.java:352)
        at org.fressian.FressianWriter.doWrite(FressianWriter.java:449)
        at org.fressian.FressianWriter.writeAs(FressianWriter.java:459)
        at org.fressian.FressianWriter.writeAs(FressianWriter.java:464)
        at org.fressian.FressianWriter.writeObject(FressianWriter.java:472)
        at datomic.update$notify_fressianer$fn__11592$fn__11593$fn__11594.invoke(update.clj:311)
        at datomic.update$notify_fressianer$fn__11592$fn__11593.invoke(update.clj:301)
        at datomic.update$notify_fressianer$fn__11592.invoke(update.clj:301)
        at datomic.update$notify_fressianer.invokeStatic(update.clj:301)
        at datomic.update$notify_fressianer.doInvoke(update.clj:298)
        at clojure.lang.RestFn.applyTo(RestFn.java:139)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$apply.invoke(core.clj:660)
        at datomic.update$background$proc__11458.invoke(update.clj:59)
        at clojure.lang.AFn.run(AFn.java:22)
        at java.lang.Thread.run(Thread.java:748)

Joe Lane17:01:24

I suspect you are returning a datomic EntityMap in the exception data of a failed transaction function. What you posted is a follow on exception which says that fressian cant serialize the Datomic EntityMap when reporting the failed transaction function back to the peer which issued the transaction.

fmnoise17:01:22

thank you @U0CJ19XAM 🙏 that's exactly what happens there

🎉 2