Skip to content

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

  1. Check the table’s read policy: is it optimistic or pessimistic?
    With pessimistic policy, default = hidden unless an allow rule applies.

  2. Check if any read rule produces a deny.
    Remember: deny always overrides allow.

  3. Verify that relevant rules are actually evaluated for your role.

  4. Check When True: does the rule apply on true or false?

  5. 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

  1. Treat this as a visibility issue first: a deny rule makes the row behave as if it does not exist.

  2. If using relations: ensure you are not relying on hidden rows being counted — they do not exist for that user.

  3. If visible as admin but not user: test using the same role and policy.

See permissions overview

I can’t save changes

  1. Look for write rules with Severity = Error (only Error blocks).

  2. Identify which classification triggers the rule and verify When True.

  3. Check if your change introduces a new violation.
    Only new violations block saving.

  4. 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

  1. Confirm the rule is not set to Error.

  2. If you expected blocking: change severity to Error.

  3. 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

  1. Verify the mutation runs as the correct user (roles/permissions).

  2. Identify which field or nested mutation produces an Error.

  3. Remember: mutations are transactional — one Error rolls back everything.

  4. Fix the error or split into smaller requests.

See API overview

Bulk import behaves differently from UI/API

  1. Confirm you are using bulk import (ZIP with CSV).

  2. Bulk import may bypass write rules and classifications.
    Failures are typically structural (format, IDs, relations).

  3. 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

  1. Check import logs/status — rows are processed individually.

  2. Expect partial success.

  3. Common causes:

  4. unknown identifiers
  5. invalid data format
  6. failed relation resolution

  7. Running import cannot be rolled back entirely.

See bulk import scheduling

Booking slots are missing

  1. Check that the base sequence actually generates slots for the selected date.

  2. Check filter sequences:

  3. do they generate intervals?
  4. are Any relations too strict?
  5. are None relations removing everything?

  6. Verify the temporal relation used.

  7. Remember: filters only remove slots.

See schedules reference
See temporal relations

No slots are generated at all

  1. Check base sequence configuration.

  2. Verify recurrence is not too restrictive.

  3. Check assumptions about multiple rules per level (often only one applies).

  4. Ensure duration and recurrence can actually produce valid intervals.

See time intervals reference

I can’t configure per-row “work hours”

  1. Identify the goal:
  2. restrict selectable slots
  3. store a schedule per row

  4. For per-row schedules → use a Schedule column

  5. For restricting time selection → bind schedule to time span column

See schedule binding

A relational classification behaves incorrectly

  1. Verify relations exist and are set.

  2. Walk the relation path step-by-step.

  3. Check filters:

  4. removing all rows
  5. mismatched set types

  6. If temporal: verify correct columns and relation type.

  7. Check system limits (path size / result size).

See relational classifications core
See set filters
See temporal filters

A classification was disabled unexpectedly

  1. Check if relation path produces too many rows.

  2. Reduce result size early with filters.

  3. Simplify the path.

See relational classifications

A classification changes “by itself”

  1. Check for time-based predicates (e.g. today/now).

  2. These update automatically over time.

  3. For stable behavior: use fixed values or store results.

See date predicates
See date range predicates

Related concepts