Hi everyone, from what I've learned about this issue, it occurs in a child-parent domain scenario. In my lab environment I had two VMs, each a DC of their own domains, replicated DNS to each other and created an external forest trust between them. I wasn't able to reproduce the issue in this scenario.
I added a third VM, and made it the DC of another domain, this one was a child of another, so contoso3.contoso.com. I set up the trusts and DNS replication, and I was able to reproduce the issue internally with a user from contoso3, using GP machines on contoso1. I added the 3rd domain Friday afternoon, and repro'd on Friday evening. However, by the following Monday morning I wasn't able to reproduce it any longer, and I didn't touch the VM's over the weekend. I also wanted to point out that our internal MSFT domains are configured like this, and I can't reproduce the issue on any of our internal domains reliably. I've had a colleague or two tell me that their GP did it to them using internal creds, but the issue always self-resolves. We can't reproduce for longer than a few hours it seems.
In digging into this issue over support cases, I've come to learn the issue is typically occurring because GP is using System.DirectoryServices to query the user in AD by their AD GUID (which was retrieved from the previous step), and this lookup is failing, so Dexterity can't populate the manager field with the user's friendly name. The initial lookup in the People Picker happens by searching the primary DC you're connected to for whatever you type in the field. This initial lookup is usually working fine. It's the searching users by GUID's that isn't working. I've collaborated with the Active Directory team, and they're telling me that the LDAP queries are coming back correctly and the issue is with the GP code. Querying users using their tools usually works fine. I've had the GP development team look through the code, and we can't see anything that could cause this. They also created a tool to test the lookups, and this code works in these environments outside of GP, but the issue is that the lookup has to perform a 'hop' and switch contexts. The log will show something like this:
10/31/2016 9:38:33 AM: ActiveDirectory.GetUserObjectByDirectoryEntry - There is
no such object on the server.
10/31/2016 9:38:33 AM:
ActiveDirectory.GetUserObjectByObjectGuid - Unable to retrieve user from the
DirectoryEntry object, performing fallback logic to lookup the object across
multiple forests.
It's a System.DirectoryServices DLL error, meaning the debugging has to happen on that level. Part of this is just the nature of how System.DirectoryServices performs lookups.
I'm not sure if the detail helps anyone, but this is one that I haven't been able to determine root cause for yet. The unfortunate thing is that the only workaround is to use users from a different domain, or move users into a working domain. Depending on how the alternate domain suffixes are set up, users could have the same login name, but it's all dependent on the environment. In summary, I don't believe the issue is with permissions to look up the user, my theory is that the issue lies with how the DNS replication, zone delegation, and AD replication is set up in some of these environments, causing lookups to not route to the correct DC where the user resides. I think that GUID lookups do something differently than broad searches, and the issue seems to occur more when the primary DC and primary DNS servers aren't the same server, or the primary DNS server is a third domain resource.