# X_EXERCISE_INPUT_THREW

## Means

an exercise entry's input threw

## Typical cause

the input function of a defineExercise() entry threw before the pass could call its primitive — the throw is apps/web/exercise.ts's, never the handler's

## Fix

`x exercise <name> --json` — after the entry's input in apps/web/exercise.ts returns a value (it runs as the seated actor, inside the call's request), or { off: '<why>' }

[Testing](/error-codes#testing)
