Clojure "Execution error (ExceptionInfo)" / namespace in CI
A Clojure program threw at run time (not compile time). "Execution error (ExceptionInfo)" is a data-carrying ex-info exception; the message and the printed ex-data explain what the code rejected, and the CLI exits non-zero.
What this error means
A clojure -X:build or clojure -M run fails with "Execution error (ExceptionInfo) at ..." followed by a message and an ex-data map.
Execution error (ExceptionInfo) at myapp.build/compile (build.clj:22).
Invalid config: missing :version
{:missing [:version]}Common causes
The program threw ex-info on bad input or state
Application or build code called (throw (ex-info ...)) because a precondition, config value, or spec check failed at run time.
A downstream library signaled a data error
A library raised an ExceptionInfo (for example a failed spec or a rejected request) that propagated to the top level.
How to fix it
Read the message and ex-data
- Read the exception message and the printed ex-data map; they name the failing key or condition.
- Fix the input, config, or state the code rejected.
- Re-run the task and confirm it exits zero.
Print the full stack for context
Set the error reporting to stderr with a full trace so the throwing call site is clear in CI logs.
clojure -J-Dclojure.main.report=stderr -X:build compileHow to prevent it
- Validate config and inputs early with clear ex-info messages.
- Surface ex-data in logs so CI failures are self-explaining.
- Cover build and app preconditions with tests.