Welcome! Please see the About page for a little more info on how this works.
https://clojure.github.io/clojure/branch-master/clojure.repl-api.html#clojure.repl.deps
Neither the ns docstring nor the individual function docstrings explain that they shell out to the CLI and that you need a recent version of the CLI installed.
Having an old CLI might produce this error:
Execution error (ExceptionInfo) at clojure.tools.deps.interop/invoke-tool (interop.clj:49).
Which might be enough of a clue to lead people to:
https://clojure.github.io/clojure/branch-master/clojure.tools.deps.interop-api.html
A more informative error message might help users debug this but expanding those docstrings to clarify that the functions invoke the CLI as a subprocess would also help.
Jira ticket clj-2819 has been created to track this issue.
Re shelling out - this is imo an implementation detail and is intentionally not mentioned.
I am interested in providing better feedback to user in exceptional cases.