I run into problems trying to inject nrepl middleware in Leiningen projects. I'll paste the repro in a comment.
Here I create a new lein project and try to inject cider-middleware:
~/Projects/tests(:|✔) % lein new new-leiningen
Generating a project called new-leiningen based on the 'default' template.
The default template is intended for library projects, not applications.
To see other templates (app, plugin, etc), try `lein help new`.
~/Projects/tests(:|✔) % cd new-leiningen
~/Projects/tests/new-leiningen(:|✔) % lein update-in :dependencies conj '[nrepl,"1.0.0"]' -- update-in :plugins conj '[cider/cider-nrepl,"0.28.5"]' -- update-in :repl-options:nrepl-middleware conj '[cider.nrepl/cider-middleware]' -- repl :headless
ERROR:
java.io.FileNotFoundException: Could not locate [[cider/nrepl__init.class, [[cider/nrepl.clj or [[cider/nrepl.cljc on classpath.
at clojure.lang.RT.load(RT.java:462)
at clojure.lang.RT.load(RT.java:424)
at clojure.core$load$fn__6908.invoke(core.clj:6161)
at clojure.core$load.invokeStatic(core.clj:6160)
at clojure.core$load.doInvoke(core.clj:6144)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invokeStatic(core.clj:5933)
at clojure.core$load_one.invoke(core.clj:5928)
at clojure.core$load_lib$fn__6850.invoke(core.clj:5975)
at clojure.core$load_lib.invokeStatic(core.clj:5974)
at clojure.core$load_lib.doInvoke(core.clj:5953)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$load_libs.invokeStatic(core.clj:6016)
at clojure.core$load_libs.doInvoke(core.clj:6000)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:669)
at clojure.core$require.invokeStatic(core.clj:6038)
at clojure.core$require.doInvoke(core.clj:6038)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at nrepl.misc$requiring_resolve.invokeStatic(misc.clj:73)
at nrepl.misc$requiring_resolve.doInvoke(misc.clj:66)
at clojure.lang.RestFn.invoke(RestFn.java:423)
at nrepl.middleware.dynamic_loader$update_stack_BANG_$fn__1445$fn__1446.invoke(dynamic_loader.clj:36)
at clojure.core$map$fn__5935.invoke(core.clj:2772)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:51)
at clojure.lang.RT.seq(RT.java:535)
at clojure.core$seq__5467.invokeStatic(core.clj:139)
at clojure.core$concat$fn__5558.invoke(core.clj:727)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:51)
at clojure.lang.RT.seq(RT.java:535)
at clojure.core$seq__5467.invokeStatic(core.clj:139)
at clojure.core$filter$fn__5962.invoke(core.clj:2826)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:58)
at clojure.lang.RT.seq(RT.java:535)
at clojure.core$seq__5467.invokeStatic(core.clj:139)
at clojure.core$seq__5467.invoke(core.clj:139)
at nrepl.middleware$extend_deps.invokeStatic(middleware.clj:116)
at nrepl.middleware$extend_deps.invoke(middleware.clj:108)
at nrepl.middleware$linearize_middleware_stack.invokeStatic(middleware.clj:183)
at nrepl.middleware$linearize_middleware_stack.invoke(middleware.clj:179)
at nrepl.middleware.dynamic_loader$update_stack_BANG_$fn__1445.invoke(dynamic_loader.clj:38)
at clojure.lang.AFn.applyToHelper(AFn.java:152)
at clojure.lang.AFn.applyTo(AFn.java:144)
at clojure.core$apply.invokeStatic(core.clj:667)
at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1990)
at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1990)
at clojure.lang.RestFn.invoke(RestFn.java:425)
at nrepl.middleware.dynamic_loader$update_stack_BANG_.invokeStatic(dynamic_loader.clj:29)
at nrepl.middleware.dynamic_loader$update_stack_BANG_.invoke(dynamic_loader.clj:27)
at nrepl.middleware.dynamic_loader$wrap_dynamic_loader$fn__1488.invoke(dynamic_loader.clj:86)
at nrepl.middleware$wrap_conj_descriptor$fn__966.invoke(middleware.clj:16)
at nrepl.server$default_handler$fn__1971.invoke(server.clj:136)
at nrepl.server$default_handler.invokeStatic(server.clj:135)
at nrepl.server$default_handler.doInvoke(server.clj:120)
at clojure.lang.RestFn.invoke(RestFn.java:3894)
at new_leiningen.core$eval2775.invokeStatic(form-init8684492935391380567.clj:1)
at new_leiningen.core$eval2775.invoke(form-init8684492935391380567.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:7194)
at clojure.lang.Compiler.eval(Compiler.java:7184)
at clojure.lang.Compiler.eval(Compiler.java:7184)
at clojure.lang.Compiler.load(Compiler.java:7653)
at clojure.lang.Compiler.loadFile(Compiler.java:7591)
at clojure.main$load_script.invokeStatic(main.clj:475)
at clojure.main$init_opt.invokeStatic(main.clj:477)
at clojure.main$init_opt.invoke(main.clj:477)
at clojure.main$initialize.invokeStatic(main.clj:508)
at clojure.main$null_opt.invokeStatic(main.clj:542)
at clojure.main$null_opt.invoke(main.clj:539)
at clojure.main$main.invokeStatic(main.clj:664)
at clojure.main$main.doInvoke(main.clj:616)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:705)
at clojure.main.main(main.java:40)
[WARNING] No nREPL middleware descriptor in metadata of null, see nrepl.middleware/set-descriptor!
nREPL server started on port 55589 on host 127.0.0.1 - As noted on this issue https://codeberg.org/leiningen/leiningen/issues/10#issuecomment-755869 we don't get this trace if instead of repl :headless we run some Clojure code requiring cider-nrepl:
~/Projects/tests/new-leiningen(:|✔) % lein update-in :dependencies conj '[nrepl,"1.0.0"]' -- update-in :plugins conj '[cider/cider-nrepl,"0.28.5"]' -- update-in :repl-options:nrepl-middleware conj '[cider.nrepl/cider-middleware]' -- run -m clojure.main -e "(require 'cider.nrepl)"
~/Projects/tests/new-leiningen(:|✔) %