beginners

ackerleytng 2025-12-27T23:51:20.288429Z

I have a project that builds fine in docker, and even seems to run fine when the docker image is built and run remotely, but locally when i do a cider-eval-buffer on the clj file containing the entrypoint, I'm getting

Unexpected error (NoSuchFieldError) macroexpanding clojure.core.async/go at (src/logaze/core.clj:34:5).
Class clojure.tools.analyzer.jvm.utils__init does not have member field 'clojure.lang.ILookupThunk __thunk__0__'
I get the same error when I run lein ring server on a terminal. What part of my local setup should I look at?

Harold 2025-12-27T23:52:13.453979Z

maybe different Clojure version?

ackerleytng 2025-12-27T23:52:30.253479Z

How do I check that?

ackerleytng 2025-12-27T23:52:49.283049Z

$ lein --version
Leiningen 2.12.0 on Java 25.0.1 OpenJDK 64-Bit Server VM
That's not the clojure version, right?

ackerleytng 2025-12-27T23:53:33.212129Z

$ clj --version
Clojure CLI version 1.12.4.1582

Harold 2025-12-27T23:53:56.817169Z

by default cider prints the clojure version and a lot of other helpful diagnostics when you connect the repl

ackerleytng 2025-12-27T23:54:22.592269Z

;; CIDER 1.21.0-snapshot (package: 20251224.2122), nREPL 1.5.1
;; Clojure 1.12.3, Java 25.0.1
What should this be the same as?

Harold 2025-12-27T23:54:45.523819Z

is that the same as what's in the docker?

ackerleytng 2025-12-27T23:55:09.731349Z

hmm in docker I just have clojure:lein

Harold 2025-12-27T23:56:07.051069Z

maybe some kind of docker run -ti ... lein repl?

Harold 2025-12-27T23:56:22.997479Z

to see what's in that container

ackerleytng 2025-12-27T23:57:25.266879Z

hmm. In the container I just have lein, there's no clj available.

ackerleytng 2025-12-27T23:57:40.363199Z

I believe that's correct? The clojure version should be specified in project.clj?

phronmophobic 2025-12-27T23:57:52.284539Z

How are you running the app on the server? How are running it locally?

ackerleytng 2025-12-27T23:58:53.483289Z

locally I'm doing lein ring server

ackerleytng 2025-12-27T23:59:10.928179Z

in the dockerfile, I'm building with lein ring uberjar

ackerleytng 2025-12-27T23:59:35.774249Z

and then running the jar

phronmophobic 2025-12-27T23:59:40.709889Z

does lein ring uberjar work locally?

ackerleytng 2025-12-28T00:01:32.773219Z

yes, lein ring uberjar works locally

ackerleytng 2025-12-28T00:02:11.230799Z

hmm okay now looking again, I see

:profiles {:dev [:profiles/dev]
             :uberjar {:aot :all}})
in my project.clj

ackerleytng 2025-12-28T00:02:27.573319Z

so maybe it isn't compiling without aot?

phronmophobic 2025-12-28T00:02:43.097869Z

AOT is usually fine for an uberjar.

phronmophobic 2025-12-28T00:03:21.148949Z

One thing that can happen with core async is if you compile with one version of core async and then run it later with another version of core async, you can have problems like the one you see.

ackerleytng 2025-12-28T00:03:43.371339Z

How do I remove all the local compiled versions?

phronmophobic 2025-12-28T00:03:47.455009Z

It's possible that you previously compiled your project earlier with a different version and then never recompiled in your dev environment.

phronmophobic 2025-12-28T00:03:53.374849Z

lein clean might help

ackerleytng 2025-12-28T00:08:52.170129Z

thanks! I think it worked

🙌 1
ackerleytng 2025-12-28T00:10:04.728409Z

thank you so much!