Skip to main content
Erdo checks captured rows against a dataset’s declared columns. If a writer sends unknown fields or omits required fields, capture keeps the submitted rows and records the mismatch. Keeping a row does not make an undeclared field available to reports that use the declared contract.

What happens automatically

A contract fault from an authorized page write can start a repair only after the repair service confirms the page belongs to the same workspace and is linked to the exact dataset. It runs under the page owner’s existing permissions and approval settings. The repair inspects the page and dataset, then corrects the writer or the contract when the evidence establishes the intended fields. It must preserve capture and existing rows. A public-page edit still uses the normal approval gate; automatic maintenance does not override your approval policy. Repeated faults share a durable repair record. The same cause is debounced for seven days and has a lifetime limit of three attempts. A page also has a ceiling of three attempts across causes in seven days, and only one contract repair or pending contract-repair approval can occupy its repair slot at once. A crashed repair can release its slot after thirty minutes.

Event pipeline maintenance

Automatic repair of event pipelines runs only where pipeline repair is enabled. It uses the existing repair permissions and approval policy. Repeated faults have a seven-day same-cause debounce, three lifetime attempts for that cause, and a separate limit of three launches per pipeline in seven days. If a dataset contract blocks a conversation capture before it starts, the conversation stays queued. If the same check fails after the repair finishes, Erdo marks that repair as failed and can try again without waiting seven days. The three-attempt limits still apply. Each distinct accepted-write fault is retained in a durable queue, including faults affecting multiple datasets in the same submission. Waiting entries do not count as paid attempts. Repairs run one at a time and wait while an approval is pending. Completion and a periodic recovery check revisit the queue, including after a restart. Before starting work, the service checks the current pipeline, its dataset links and the original contract fault again; a cause already fixed is removed without launching another repair. Existing permission, approval and spending limits still apply. If a pipeline repair stops before its run can start, periodic recovery puts its original cause back in the queue. This does not count as another paid attempt. A repair with evidence that its run started remains on hold until that run and its approvals can be checked; age alone does not authorize a replacement. Repair notices follow the latest attempt. Delayed messages from an older attempt cannot reopen a fixed warning, replace a newer outcome, or clear a newer warning. A pipeline repair is checked against a subsequent real execution of that same pipeline. A verified completion update names the repaired producer; it does not silently close an older dataset-wide missing-required warning that never recorded which writer caused it.

How a repair is verified

An agent saying it finished is not proof of recovery.
  • For unknown fields, the current declared contract must include every original unknown field before the corresponding schema warning can be recovered.
  • For missing required fields, a subsequent real submission from the same page must satisfy the contract. The original fields must still be declared and required. Removing a requirement, a synthetic test, or a zero-row write does not establish recovery.
Verification describes the contract and captured submission at the recorded check time. Later contract changes or new faulty submissions can raise a new finding; a completed repair is not a permanent guarantee. Verified recovery appears as an informational update. A verified required-field repair describes the particular page that passed; it does not claim that every writer into the dataset is repaired. Failed or unverified repairs remain visible through the original finding and repair record. Limits prevent repeated repair runs from becoming an open-ended spending loop.

Older warnings

New schema findings retain the dataset identity and separate machine-readable lists of unknown fields and missing required fields. Recovery uses that exact cause evidence rather than interpreting the warning’s wording. Older findings can lack structured cause evidence or the identity of the writer that caused the mismatch. Automatic recovery checks a limited recent finding and event history; a cause outside that window, missing evidence, or ambiguous evidence leaves the warning open. It does not guess from prose. Dataset-wide warnings without producer identity do not establish which writer caused a missing-required mismatch. Unknown-field warnings can be recovered once the current contract declares all of those fields. A valid submission from one page cannot safely close an older missing-required warning: another writer may still be broken. Those warnings remain open until their cause is independently established. The expiry date on a finding is its review deadline. It does not mean the underlying technical fault will automatically be repaired on that date. Direct page submissions keep their captured data even when the submitter can only view the page. Starting automatic repair as the page owner, or proving that page repaired, additionally requires the initiating caller to have independent page-edit permission. A page’s delegated permission to write data does not grant permission to edit the page itself. Older events without verified repair authority cannot start owner repair. A repair that was dispatched keeps its place until its exact run and any related approvals are proven finished. An old timestamp alone does not start another paid repair. If approval history or run status cannot establish that work has ended, further repairs stay on hold; approved historical requests currently require this conservative hold because their later execution cannot be verified from the available status records. Delayed progress reports cannot restore an outdated approval request after a newer completion check. The update reflects the current repair evidence, even when the repair remains in the same status.