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: Reads and writes

Reads and writes · rule

data.conflict_cannot_break

Conflict mapping for a rule the write can't break.

Area 6, Reads and writes; not declinable; the next step is usually the agent's.

An update can break only the unique rules over the fields it sets:

example
type CustomerName = Text {    max_length: 80}entity Customer {    id: Uuid    email: Email {        unique: true    }    name: CustomerName}type EmailTaken = Failure {    kind: FailureKind.conflict}action rename(customer: Customer, name: Customer.name) fails EmailTaken -> Customer {    return attempt Customer.update(customer) {        set: {            name: name        }        conflict: {            Customer.email: EmailTaken        }    }}
text
error: `Customer.update` can't break `Customer.email`, so it takes no arm --> main.jadpo:23:13   |23 |             Customer.email: EmailTaken   |             ^^^^^^^^^^^^^^ never runs  reason: `Customer.update` sets none of the fields `Customer.email` covers, so it can't break it.  next: Remove `Customer.email: ...` (agent)  rule: data.conflict_cannot_break  help: https://jadpo.dev/docs/errors/data.conflict_cannot_breakcheck failed: 1 error, 1 file

A conflict arm naming a failure of another kind is area 4's failure.mapping_kind, an arm given twice failure.duplicate_mapping, and invalid: in a write's block failure.invalid_outside_construction.

Markdown for agents: /docs/errors/data.conflict_cannot_break.md.Built from Jadpo main at a707efb.