Jadpo is experimental and not ready for production. These docs follow the compiler's main branch as of 30 Oct 2026. What's built · Install 0.1.0
jadpo
Reference: Failures

Failures

Saying what can fail: fails

A function or action lists the failures it can end with after fails, in its signature:

example
function check_title(title: TodoTitle) fails TitleBlank -> TodoTitle {    if (title == "") {        reject TitleBlank    }    return title}action rename(todo_id: Todo.id, title: TodoTitle) fails TodoNotFound, TitleBlank -> TodoView {    var checked: TodoTitle = attempt check_title(title)    var todo: Todo = attempt Todo.get(todo_id)    ...}

fails comes before the result type's -> (Signatures and settings). It lists exactly the failures that can leave the callable: everything a reject or an attempt in its body can produce, less what a match handles. Functions and actions follow the same rule.

  • A failure that can leave but isn't listed is failure.undeclared_propagation.
  • One that is listed but can never happen is failure.stale_declaration.
  • One listed twice is failure.duplicate_declaration.

Faults are never listed.

Markdown for agents: /docs/saying-what-can-fail-fails.md.Built from Jadpo main at a707efb.