It seems that using d/with
inside of a deployed transaction function no longer works. Yesterday I re-deployed an app (after having taken it down a few months ago) which has a tx fn trident.datomic-cloud.txauth/authorize
that looks like this:
(defn authorize
[db authorizers uid tx]
(let [{:keys [tx-data db-before db-after] :as result} (d/with db {:tx-data tx})]
...
But now the d/with
call is throwing an exception. I have verified that tx
contains valid transaction data. Here’s the relevant part of the stack trace:
"Via": [
{
"Type": "clojure.lang.ArityException",
"Message": "Wrong number of args (1) passed to: datomic.client.impl.local/wrap-tx-result",
"At": [
"clojure.lang.AFn",
"throwArity",
"AFn.java",
429
]
}
],
"Trace": [
[
"clojure.lang.AFn",
"throwArity",
"AFn.java",
429
],
[
"clojure.lang.AFn",
"invoke",
"AFn.java",
32
],
[
"datomic.client.impl.local",
"invokeStatic",
"local.clj",
325
],
[
"datomic.client.impl.local",
"invoke",
"local.clj",
290
],
[
"datomic.client.api.protocols",
"invoke",
"protocols.clj",
126
],
[
"datomic.client.api",
"invokeStatic",
"api.clj",
304
],
[
"datomic.client.api",
"invoke",
"api.clj",
294
],
[
"trident.datomic_cloud.txauth",
"invokeStatic",
"txauth.clj",
86
],
I’m running version 8794 of datomic cloud.