Yeah, since I did not get any response from Microsoft, and with further testing, I have concluded that this functionality does NOT work as advertised, at least NOT RELIABLY. Just yet another example of Microsoft releasing functionality that is full of bugs, yet advertised as working.
I have found that it is much more robust to just:
- Create a list of the groups I want to check against
- Get the members of each of these Groups (requires Group membership visibility to be public for each group)
- Check to see if the Current User is one of those members
- If it is, add to a collection "myGroups"
I then get a collection of "myGroups" to replicate the supposed functionality of the ListOwnedGroupsV3.
It is annoying that you have to waste precious seconds iterating and fetching a load of data that you don't really need (all the other members of the Groups) but its the only real way to sure of getting an accurate list of Groups I am a member of.
A Bonus consequence of this method is that is does not actually rely on the "Currently logged in User", but instead just checks membership against a string (either mail, UPN or displayName)
This allows us Developers to add a (hidden?) ability to "impersonate" a different User, and fetch the Groups that the impersonated user is a member of - very handy for testing permission/group based functionality in your app without actually having to log in as a different User!
James.