# `route.argument_invalid`

Route passes something other than a placeholder, the input or their fields.

Area 7, [HTTP](../topics/http.md); not declinable; the next step is usually the agent's.

A route passes its placeholders, `input` and their fields; anything worked out goes in what it runs:

```jadpo
type Memo = Text {
    max_length: 200
}

type MemoId = Uuid {}

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 / {
        output: MemoView
        run: add_memo(
            AddMemo {
                text: "Hello"
            }
        )
    }
}
```

```text
error: A route passes its placeholders and input, not a value built in the route
 --> main.jadpo:27:13
   |
27 |             AddMemo {
   |             ^^^^^^^^^ a value built in the route
  reason: A route is a thin door: what it runs gets the route's placeholders, its `input` and their fields as written, and works out anything else itself.
  next: Pass a placeholder, `input` or a field of them, and move the rest into what the route runs (agent)
  rule: route.argument_invalid
  help: https://jadpo.dev/docs/errors/route.argument_invalid

check failed: 1 error, 1 file
```
