Jadpo is experimental and not ready for production. These docs follow the compiler's main branch as of 5 Nov 2026. What's built · Install 0.3.0
jadpo
ReferenceErrors

ErrorsTesting · rule

semantic.request_route_unknown

On this page

A route test's request { } names a method and path that no route in the app answers.

Area 13, Testing; not declinable; the next step is usually the agent's.

Why Jadpo refuses it

A route test sends its request through the HTTP layer Jadpo generates for your routes, so the request has to reach one of them. It names the route by method: and by its path as jadpo routes prints it, with each placeholder by name, such as /todos/{todo_id}. A request no route answers would only ever test the 404, so Jadpo reports it when you check, before the test runs.

What it looks like

main.jadpo:

example
type Memo = Text {    max_length: 200}type AddMemo = Input {    text: Memo}type MemoView = Output {    text: Memo}action add_memo(input: AddMemo) -> MemoView {    return MemoView {        text: input.text    }}routes Memos {    prefix: /memos    POST / {        authentication: RouteAuthentication.none        input: AddMemo        output: MemoView        status: SuccessStatus.created        run: add_memo(input)    }}policy {    actions: {        add_memo: [Access.public]    }}test "a memo comes back" {    var response: Response = request {        method: HttpMethod.post        path: "/memo"        input: AddMemo {            text: "Call the plumber"        }    }    assert response.status == 201}
jadpo checkcheck failed: 1 error, 1 file

error No route answers POST /memo

--> main.jadpo:40:15

   |40 |         path: "/memo"   |               ^^^^^^^ no such route
reason
A request names a route by its method and its path as jadpo routes prints it, placeholders by name; the POST routes are /memos.
next
Write the path of the route this test exercises, as jadpo routes lists it (agent)
rule
semantic.request_route_unknown
help
https://jadpo.dev/docs/errors/semantic.request_route_unknown

(agent) at the end of the next: line means your coding agent can make the fix itself.

How to fix it

If the test meant an existing route, write its path as jadpo routes lists it. In main.jadpo:

example
        path: "/memos"

The request now reaches POST /memos, which runs add_memo and answers 201, so the test passes.

When the route the test means doesn't exist yet, add the route first. A placeholder's value goes in params:, as in path: "/todos/{todo_id}" with params: { todo_id: todo.id }, never in the path itself.

Markdown for agents: /docs/errors/semantic.request_route_unknown.md.Built from Jadpo main at aee2e8f.