How to fix it

  1. Verify the affected user's domain assignment. Navigate to User Administration > Users, open the user record, and check the Domain field. It should match their intended domain, not global.
  2. Check the sys_domain field on the problematic records. Navigate to the affected table, add the Domain column to the list view by right-clicking column headers and selecting Configure > List Layout.
  3. For records with incorrect sys_domain values, update them using a bulk update. Create a filter for the records, then use Update Multiple Records from the list's context menu to set the correct domain.
⚠️

Always test domain changes in a sub-production instance first. Incorrect domain assignments can break integrations and workflows.

  1. Check domain visibility settings by navigating to System Definition > Domain Map. Open the relevant domain record and review the Can see parent checkbox. If checked, child domains will see parent domain records.
  2. Identify problematic Business Rules by going to System Definition > Business Rules. Filter by Table equals your affected table name. Review any rules that run on insert/update.
  3. Examine Business Rule scripts for sys_domain assignments. Look for lines like current.sys_domain = 'global' or current.setValue('sys_domain', 'some_domain'). These may be overriding the correct domain.
  4. Fix problematic Business Rules by either removing the sys_domain assignment or using gs.getUser().getDomainID() to set the domain based on the current user's domain instead of hardcoding it.
  5. Check for custom ACLs that might bypass domain filtering. Navigate to System Security > Access Controls (ACL) and filter by your table name. Look for read operations with custom conditions.
  6. Review ACL conditions for domain bypass logic. Look for conditions that use gs.nil(current.sys_domain) or explicitly check for global domain without proper domain separation logic.
  7. Test the fix by logging in as a user from the affected domain and verifying they can only see appropriate records. Use System Administration > Users > Impersonate User for testing.
💡

Enable domain separation debug logging by setting com.snc.domain_separation to Debug level in System Logs > Log Levels to trace domain filtering issues.