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: Jobs and events

Jobs and events · rule

step.too_many

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

Area 12, Jobs and events; 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]}
text
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_manycheck failed: 1 error, 5 files

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