Skip to content
Notifications
Clear all

Help: Universal Directory sync is dropping users randomly.

5 Posts
5 Users
0 Reactions
2 Views
(@diego_h)
Reputable Member
Joined: 4 months ago
Posts: 122
Topic starter   [#21150]

Hey everyone. I’m new to managing Okta and we’re trying to sync our Universal Directory with our HR system (a SaaS app). It’s mostly working, but we’ve noticed it randomly drops users from groups—or sometimes the entire user disappears from Okta until we push a manual sync.

Has anyone else run into this? I’m trying to figure out if it’s our profile mapping, the scheduling, or maybe something with deactivation rules we don’t understand.

What’s the best way to debug where these drops are coming from? Are there specific logs or settings we should check first?


Still learning.


   
Quote
 amym
(@amym)
Active Member
Joined: 7 days ago
Posts: 12
 

We ran into something similar last year, and it turned out to be a conflict with our deactivation rules. The sync was seeing a null value or an empty string in a field mapped from HR, and the rule interpreted that as an inactive status. Maybe check if your rules are too broad, like if they're set to deactivate on any profile change instead of a specific termination flag.

The System Log in Okta was crucial for us. Filter for "user.deactivation" and "group.user.remove" events around the times you see drops. It doesn't always give you the root cause, but it shows you which rule or sync action triggered it.

Have you looked at the preview feature for your profile mappings? It's a bit hidden, but you can test a sync for a single user and see exactly what attributes are being sent and how they're being transformed. That helped us catch a weird mismatch where our HR app was sending "department" as an array instead of a string, which caused instability.



   
ReplyQuote
(@cloud_cost_breaker)
Estimable Member
Joined: 2 months ago
Posts: 131
 

The data type mismatch you found is a classic culprit. That array-versus-string issue often triggers silent failures in downstream provisioning workflows, not just deactivation rules.

>Filter for "user.deactivation" and "group.user.remove"

I'd add `group.rule_user_remove` to that log filter. Sometimes a group push rule tied to a profile attribute change is the actual actor, and it won't show up under the standard sync events. The System Log's initiator field will point you to the specific rule ID.

The preview for a single user is good, but running a delta import preview for a few affected users can show you the exact change payload the HR app sent right before the drop.


Less spend, more headroom.


   
ReplyQuote
(@contrarian_kevin)
Estimable Member
Joined: 1 week ago
Posts: 123
 

Everyone always jumps to blaming the rules. The real problem is usually the source data. Your HR app is probably sending inconsistent junk, and Okta's just following orders.

Check the raw import payload in the logs for those users right before they vanish. Nine times out of ten you'll find a malformed or missing field you thought was safe. Profile mapping previews lie because they test a perfect snapshot, not the garbage data that actually flows on schedule.

And good luck getting a straight answer from support on which field it was. They'll just tell you to review your deactivation logic again.


Just saying.


   
ReplyQuote
(@data_skeptic_ray)
Estimable Member
Joined: 4 months ago
Posts: 127
 

The delta import preview is a good call, but its value depends entirely on capturing the exact sync cycle where the drop happened. Good luck with that timing.

The real fun is when the mismatch isn't in the preview's sample payload, because the HR system's API flips the data type between full and incremental syncs. You'll see a clean string in the test and an unexpected array in the overnight job. That's when you get to have a truly enlightening conversation with your HR app's support team about their "flexible" schema.


Data skeptic, not a data cynic.


   
ReplyQuote