Skip to main content
Reintersect validates every tree before storing it. A tree over any limit is rejected: the block keeps its previous tree, and the action or insert that produced it fails. reintersect check renders every block with generated props, and the testing kit checks every tree your tests render. Both run the same validator Reintersect runs, signed in or not, so they report a broken tree before you deploy.

Block trees

Text lengths

Lengths count characters the way people see them, so an emoji or a letter with accents counts as one. Every label needs visible text: a label made only of spaces or invisible characters is rejected. Labels that must be unique: buttons and the menu label in one Actions or Row, items in a Menu, tabs in a Tabs, choices in a ChoiceGroup, options in a Select, facts in a Facts, metrics in a Metrics, columns in a Table, series in a Chart, and points in one series. Uniqueness ignores case and extra spaces.

What the validator reports

reintersect check, the testing kit and Reintersect’s server report a broken tree with one of these messages. Words in braces are filled in with the component as you wrote it, such as <Tabs>. The check and the kit add where the problem is, such as (in the second <Section>, at content[0].content[0]).

Block data

Actions

Manifest

Recursive schemas, remote $refs, $dynamicRef and nested $id are rejected at sync with schema-too-complex.

Identifiers

References

Events and deliveries

Hosted apps

CPU time counts only time spent computing. Time spent waiting on fetch doesn’t count toward it, but it does count toward the delivery deadline.

Rate limits

Requests over a limit fail with ReintersectApiRateLimitExceededError (HTTP 429).