SpiceDB: Checks involving relations with caveats can result in unconditional permission when conditional permission is expected
Under concurrency, CheckPermission and CheckBulkPermissions can return PERMISSIONSHIP_HAS_PERMISSION for a (resource, permission, subject) whose correct answer is PERMISSIONSHIP_CONDITIONAL_PERMISSION. You are impacted if all of the following hold: Your schema has a permission combining relations with an intersection or exclusion, where a subject reaches it through a caveated branch and a non-caveated branch. For example: definition user {} caveat some_caveat(somecondition int) { somecondition == 42 } definition document { relation reader: …