Error messages
Every error has one shape, in the terminal, in the editor and as JSON: what is wrong, where, why, the recommended next step, who decides, the rule ID and a help link. One mistake gives one error: the compiler doesn't report the errors that follow from it. An error reads:
error: `titel` isn't defined in this scope --> domains/planning/libraries/titles.jadpo:6:12 |6 | return titel | ^^^^^ reason: Jadpo could not find this name. Did you mean `title`? next: Use `title` instead of `titel` (agent) rule: type.unknown_value help: https://jadpo.dev/docs/errors/type.unknown_value
(human) at the end of an error's next: line tells your coding agent to
stop and ask you which fix you want, because the choice is yours to make
(who can see data, what a setting holds). (agent) means your agent can
make the fix itself.
- Paths are relative to the project.
- The two impact lines appear only when they say something.
- An obvious repair carries its edit, so the editor and agents can apply it.
- The help link is the address of the error's own page on the site,
https://jadpo.dev/docs/errors/<rule>, which has an example of the rule. - JSON gives line and column as well as byte offsets, and uses one naming style for its keys.
When Jadpo itself fails
Sometimes the fault is Jadpo's. If jadpo panics, including inside the
interpreter that jadpo dev and jadpo test run, it says so first, so
you don't hunt for a mistake in your own code. This is the screen:
✗ failed This is a bug in Jadpo, not in your code ran jadpo check version jadpo 0.1.0 · aarch64-macos in crates/jadpo-check/src/lib.rs:12What to do next 1. Read the crash file. It can quote your project. /Users/ada/.cache/jadpo/crashes/2026-10-30T14-02-31Z.txt 2. Report it with this link, attaching the file. https://github.com/jadpo-dev/jadpo/issues/new?template=bug.yml&title=Internal%20error%20in%20jadpo%20check&version=0.1.0%20aarch64-macos
The screen names only the command word, never an argument, and never the
panic message. The crash file holds those, so it can quote your project:
read it before you attach it. Jadpo writes it under $XDG_CACHE_HOME/jadpo/ crashes/, or ~/.cache/jadpo/crashes/, and keeps the newest 20. It holds
the version, the platform, the arguments (jadpo config keeps only its
subcommand), the panic message and a backtrace. Jadpo sends nothing
anywhere.
A deployed app is different: the client sees only 500 internal_fault, and
the log says more (What it logs; Failures).
Markdown for agents: /docs/error-messages.md.Built from Jadpo main at a707efb.