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

ErrorsLogic · rule

effect.call_in_loop

Outside call inside a for loop.

Area 3, Logic; not declinable; the next step is usually the agent's.

An action's outside calls lie along a way through it whose length is known before it runs, so a loop of them is batches.each:

example
use app { sheets }use bakery/types { SheetText }use bakery/failures { SheetNotKept }/// Keeps each price sheet a supplier sent, one call for each.action keep_sheets(sheet_texts: List<SheetText>) fails SheetNotKept -> List<File> {    var mut kept: List<File> = []    for sheet_text in sheet_texts {        var sheet: File = attempt sheets.put(encoding.to_utf8(sheet_text), FileType.csv) {            storage_full: SheetNotKept        }        kept = list.append(kept, sheet)    }    return kept}
jadpo checkcheck failed: 1 error, 4 files

error sheets.put is called once for every item of the loop

--> domains/bakery/actions/keep_sheets.jadpo:9:35

  |9 |         var sheet: File = attempt sheets.put(encoding.to_utf8(sheet_text), FileType.csv) {  |                                   ^^^^^^^^^^ inside `for`
reason
An action's outside calls lie along a way through it whose length is known before it runs, so a retry can replay them in order; a loop makes one for each item. A provider that takes a list is called once with the list.
next
Make the calls one item at a time with batches.each (agent)
rule
effect.call_in_loop
help
https://jadpo.dev/docs/errors/effect.call_in_loop

Markdown for agents: /docs/errors/effect.call_in_loop.md.Built from Jadpo main at aee2e8f.