Skip to content

Deny reasons

A deny decision carries only a DenyReason and the fixed text shown to the person. It never carries a policy, a rule or a classification. masked on OpenedRecord carries the same reason for each withheld field.

Denied

interface Denied {
outcome: 'deny';
eventId: EventId;
reason: DenyReason;
text: string;
}
FieldTypeDescription
eventIdEventIdThe access event of this decision.
reasonDenyReasonWhy the request was denied.
textstringThe fixed text of the reason, the words the person sees.

masked

masked lists each field on OpenedRecord that the policies withheld. The SDK reports each one in the field’s place, beside the open’s allow, not as a separate error.

masked: { field: string; reason: DenyReason; text: string }[];

Every reason

ReasonSwiftKotlinWhenWhat the app can offer
not-entitled.notEntitledDenyReason.NOT_ENTITLEDThe person’s role does not include this action.Show the text. Name who can give the person access.
not-a-member.notAMemberDenyReason.NOT_A_MEMBERThe person does not belong to the key domain.Show the text. Say that a domain owner can share the key domain with them.
outside-scope.outsideScopeDenyReason.OUTSIDE_SCOPEThe record or file falls outside the person’s data scope.Show the text. Name who can give access to the case.
outside-hours.outsideHoursDenyReason.OUTSIDE_HOURSThe request falls outside the hours the tenant allows for this role.Offer to try again inside the allowed hours, or to ask for a break-glass exception.
device.deviceDenyReason.DEVICEThe tenant limits this action to approved devices. This device is not on the list.Retry from an approved device.
location.locationDenyReason.LOCATIONThe tenant limits this action to approved locations. This location is not on the list.Retry from an approved location.
deleted.deletedDenyReason.DELETEDThe object is in the recycle bin.Restore it, if the person may, or ask a domain owner to.
held.heldDenyReason.HELDA legal hold covers the target.Show the hold’s reason and reference. Tell the person to wait until two Owners lift it.
retention.retentionDenyReason.RETENTIONThe dataset’s retention floor has not passed yet.Show the person when the floor is met.
policy.policyDenyReason.POLICYA rule the tenant added on its own refuses the request.Show the text. Only the tenant’s own policies can change that rule.