msgraph-beta-sdk-java icon indicating copy to clipboard operation
msgraph-beta-sdk-java copied to clipboard

User::getProfile retrieves null when it shouldn't

Open VolkmannTino opened this issue 3 months ago • 0 comments

Describe the bug

I'm trying to get all users in a group and after that getting the users profile. While this won't work:

  1. getting Users as transitiveMembers of a group UserCollectionResponse userResult = graphClient.groups() .byGroupId(groupId) .transitiveMembers() .graphUser() .get();
  2. iterate over all users userResult.getValue().forEach(this::getProfile);
  3. call User::getProfile but it returns always null even when profile is existing and permissions are granted. private void getProfile(User user) { Profile profile = user.getProfile(); }

It will work when you do this instead of user.getProfile() in step 3: private void getProfile(User user) { Profile profile = graphClient.users().byUserId(user.getId()).profile().get(); } This returns the profile for me.

Expected behavior

when calling User::getProfile i expect to get the profile back instead of null.

How to reproduce

  1. getting Users as transitiveMembers of a group UserCollectionResponse userResult = graphClient.groups() .byGroupId(groupId) .transitiveMembers() .graphUser() .get();
  2. iterate over all users userResult.getValue().forEach(this::getProfile);
  3. call User::getProfile but it returns always null even when profile is existing and permissions are granted. private void getProfile(User user) { Profile profile = user.getProfile(); }

SDK Version

6.47.0

Latest version known to work for scenario above?

No response

Known Workarounds

Use: graphClient.users().byUserId(user.getId()).profile().get(); instead of User::getProfile

Debug output

Configuration

No response

Other information

No response

VolkmannTino avatar Nov 07 '25 09:11 VolkmannTino