I tried the following in Clojure 1.12.2 (Windows) and 1.12.3-alpha4 (Windows and Linux):
```
(def p1 {:name "James" :age 26})
(def p2 {:name "Fred" :age nil})
(def p3 {:name "Fred"})
(-> p1 (update :age #(when % (inc %)))) ; => {:name "James", :age 27}
(-> p2 (update :age #(when % (inc %)))) ; => {:name "Fred", :age nil}
(-> p3 (update :age #(when % (inc %)))) ; => {:name "Fred", :age nil}
```
I thought the `p2` and `p3` examples matched the description given and would fail. They do not. Could you provide a more specific example that illustrates the problem? Your description says the error occurs in web handlers? Does this only occur in that context?