In clojurescript, {{(str (chan))}} returns the string {{"[object Object]"}}. This is different from JVM Clojure behavior per se, and more practically, it can result in hard-to-debug stack traces, such as the attached one.
The attached backtrace doesn't reach my application code, and does not show any {{cljs.core.async}} code either. Therefore it's hard to figure out that I was mishandling a channel. A nicer string representation of channels would have saved me 20 minutes of head-scratching!