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

ErrorsBackground work · rule

step.too_many

More than 8 changing calls on one way through an action.

Area 12, Background work; not declinable; the next step is usually the agent's.

An action makes at most 8 changing calls on one way through it, counting those of the actions it calls:

example
use app { sheets }use bakery/types { PriceList }use bakery/failures { SheetNotKept }/// Keeps the week's price sheet for each of the bakery's nine shops.action share_prices(price_list: PriceList) fails SheetNotKept -> List<File> {    var bakehouse: File = attempt sheets.put(encoding.to_utf8(price_list), FileType.csv) {        storage_full: SheetNotKept    }    var market: File = attempt sheets.put(encoding.to_utf8(price_list), FileType.csv) {        storage_full: SheetNotKept    }    var station: File = attempt sheets.put(encoding.to_utf8(price_list), FileType.csv) {        storage_full: SheetNotKept    }    var harbour: File = attempt sheets.put(encoding.to_utf8(price_list), FileType.csv) {        storage_full: SheetNotKept    }    var castle: File = attempt sheets.put(encoding.to_utf8(price_list), FileType.csv) {        storage_full: SheetNotKept    }    var bridge: File = attempt sheets.put(encoding.to_utf8(price_list), FileType.csv) {        storage_full: SheetNotKept    }    var mill: File = attempt sheets.put(encoding.to_utf8(price_list), FileType.csv) {        storage_full: SheetNotKept    }    var abbey: File = attempt sheets.put(encoding.to_utf8(price_list), FileType.csv) {        storage_full: SheetNotKept    }    var quayside: File = attempt sheets.put(encoding.to_utf8(price_list), FileType.csv) {        storage_full: SheetNotKept    }    return [bakehouse, market, station, harbour, castle, bridge, mill, abbey, quayside]}
jadpo checkcheck failed: 1 error, 5 files

error share_prices makes 9 changing calls in a row, more than 8

--> domains/bakery/actions/share_prices.jadpo:31:34

   |31 |     var quayside: File = attempt sheets.put(encoding.to_utf8(price_list), FileType.csv) {   |                                  ^^^^^^^^^^ the 9th changing call
reason
Each changing call is a step its action records before sending and replays on a retry, and an action makes at most 8 on any one way through it, counting those of the actions it calls.
next
Finish part of the work in a subscriber of an event share_prices emits (agent)
rule
step.too_many
help
https://jadpo.dev/docs/errors/step.too_many

Markdown for agents: /docs/errors/step.too_many.md.Built from Jadpo main at aee2e8f.