Troubleshooting
This page provides concrete troubleshooting flows for common issues in Minyu where rules, classifications, policies, schedules, and relations interact.
Each section follows: problem → diagnostic steps (in correct order) → implicit cause.
I can’t see any rows in a view
-
Check the table’s read policy: is it optimistic or pessimistic?
With pessimistic policy, default = hidden unless an allow rule applies. -
Check if any read rule produces a deny.
Remember: deny always overrides allow. -
Verify that relevant rules are actually evaluated for your role.
-
Check When True: does the rule apply on true or false?
-
Verify that the classification evaluates as expected in this context
(user, time, related rows).
See read policy
See read rules
See permissions overview
A specific row “disappears” when filtering, counting, or traversing relations
-
Treat this as a visibility issue first: a deny rule makes the row behave as if it does not exist.
-
If using relations: ensure you are not relying on hidden rows being counted — they do not exist for that user.
-
If visible as admin but not user: test using the same role and policy.
I can’t save changes
-
Look for write rules with Severity = Error (only Error blocks).
-
Identify which classification triggers the rule and verify When True.
-
Check if your change introduces a new violation.
Only new violations block saving. -
If related data is involved: verify relation path and filters.
See write rules
See classifications overview
I get a warning but it does not block saving
-
Confirm the rule is not set to Error.
-
If you expected blocking: change severity to Error.
-
If the warning should not appear: adjust classification logic, When True, or role scope.
See write rules
An API mutation fails and nothing is saved
-
Verify the mutation runs as the correct user (roles/permissions).
-
Identify which field or nested mutation produces an Error.
-
Remember: mutations are transactional — one Error rolls back everything.
-
Fix the error or split into smaller requests.
See API overview
Bulk import behaves differently from UI/API
-
Confirm you are using bulk import (ZIP with CSV).
-
Bulk import may bypass write rules and classifications.
Failures are typically structural (format, IDs, relations). -
After import: editing the same row may trigger rules.
See bulk import overview
See bulk import scheduling
See permissions overview
Some import rows succeed while others fail
-
Check import logs/status — rows are processed individually.
-
Expect partial success.
-
Common causes:
- unknown identifiers
- invalid data format
-
failed relation resolution
-
Running import cannot be rolled back entirely.
Booking slots are missing
-
Check that the base sequence actually generates slots for the selected date.
-
Check filter sequences:
- do they generate intervals?
- are Any relations too strict?
-
are None relations removing everything?
-
Verify the temporal relation used.
-
Remember: filters only remove slots.
See schedules reference
See temporal relations
No slots are generated at all
-
Check base sequence configuration.
-
Verify recurrence is not too restrictive.
-
Check assumptions about multiple rules per level (often only one applies).
-
Ensure duration and recurrence can actually produce valid intervals.
I can’t configure per-row “work hours”
- Identify the goal:
- restrict selectable slots
-
store a schedule per row
-
For per-row schedules → use a Schedule column
-
For restricting time selection → bind schedule to time span column
See schedule binding
A relational classification behaves incorrectly
-
Verify relations exist and are set.
-
Walk the relation path step-by-step.
-
Check filters:
- removing all rows
-
mismatched set types
-
If temporal: verify correct columns and relation type.
-
Check system limits (path size / result size).
See relational classifications core
See set filters
See temporal filters
A classification was disabled unexpectedly
-
Check if relation path produces too many rows.
-
Reduce result size early with filters.
-
Simplify the path.
See relational classifications
A classification changes “by itself”
-
Check for time-based predicates (e.g. today/now).
-
These update automatically over time.
-
For stable behavior: use fixed values or store results.
See date predicates
See date range predicates