cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
RamtinS
Frequent Visitor

HTTP Request to Graph $expand Started to Fail

I have built a flow that updates a group of all managers in the organization every 3 hours. It uses an HTTP request to the Graph to list all users and expand their managers. However, this action started failing on Sep 22nd without any edits to the HTTP request. The error message says:

 

"Transitive manager's list is only supported on a single user, send the $expand request on /users/{id} endpoint."

 

The only way I could avoid the error was to set $top=1 and maximize the pagination threshold, but it slows down the action significantly, and I doubt it's the right approach.

 

Any ideas on how it started to fail suddenly and how to fix it?

15 REPLIES 15
vayinapurapu1
Resolver II
Resolver II

may i know the query that was working before? are you using V1.0 or beta? 

microsoft-graph-docs/user-list-manager.md at main · microsoftgraph/microsoft-graph-docs · GitHub

Cheers,

Vinay. 

henrip
New Member

I'm also seeing this error when querying Graph API for managers, the error first appeared on last friday 23/9/2022. The query I'm using is:
https://graph.microsoft.com/v1.0/users?`$expand=manager(`$levels=1;`$select=id)&`$filter=userType eq 'guest' and (endsWith(mail,'<domainname>') or endsWith(mail,'<domainname2>'))&`$Select=id&`$count=true&`$top=999

 

To me it seems that Microsoft has introduced changes to v1.0 that break existing functionality. Why even have versioning on the API in the first place if this kind of breaking changes are still beeing made to it? Querying user's manager one by one is not an option since the AAD tenant I'm working on has a large number of users.

Tomtom924S
New Member

Looks like it broke, I'm struggling with the same issue.. the following query worked just fine until yesterday, now it gives the same error..

https://graph.microsoft.com/v1.0/users?$top=999&$count=true&$filter=startswith(officeLocation,'US_')&$select=id&$expand=manager($select=id,mail,displayName,jobTitle;$levels=1 )

w0rdsm1th
New Member

+1 - this is also broken for me. My app needs to get all active user's managers from /users/ API so does not specify single user's id.

 

this $expand manager query was taken from Graph API docs. https://learn.microsoft.com/en-us/graph/api/user-list-manager?view=graph-rest-1.0&tabs=http#http-req...

Expiscornovus
Super User
Super User

Hi @w0rdsm1th,

 

In that article you are referring to there is actually a note about this in the optional query parameters section:

https://learn.microsoft.com/en-us/graph/api/user-list-manager?view=graph-rest-1.0&tabs=http#optional...

 

$levels parameter is only supported on a single user (/users/{id} or me endpoints) and not on the entire list of users.



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


w0rdsm1th
New Member

ah thanks @Expiscornovus, I have tested and removing $levels gives me what I need. My query had $levels=1. I do agree with others tho, the API did definitely work specifying $levels and entire list of users before 23/9

henrip
New Member

Yes, this 100% was working with $levels=1 specified until 23/9. I've been running the same query as part of an automation for at least an year without any problems before.

Expiscornovus
Super User
Super User

Hi @henrip,

 

I am not suggesting it was not working before 😁. Something definitely changed.

 

All I am saying is that the reason why it currently is not working is mentioned in the earlier shared Graph API documentation link.

 

FYI, the docs got adjusted back in July:

https://github.com/microsoftgraph/microsoft-graph-docs/commit/21d680e4b143550bc99f62a2e38b20e16037ed...

 



Happy to help out! 🙂

Interested in more #PowerAutomate #SharePointOnline or #PowerVirtualAgents content?
Visit my blog, Subscribe to my YouTube channel or Follow me on Twitter


Tomtom924S
New Member

Right, it just stopped working. Removing $levels seems to solve it though, thank you! But I have been also able to filter for "officeLocation" with $count for months until 23/9, now that one gives an error too suddenly..

henrip
New Member

There is something weird going on with Graph API now. I just tried removing $levels and tested the query with Graph Explorer -> got "Transitive manager's list is only supported on a single user, send the $expand request on /users/{id} endpoint" -> kept hitting "Run query" again -> after 4 tries I got http 200 and the query worked as expected. So if you just keep querying with the same query approximately 1 out of 5 retries work and the other return http 400. Now also my original query with $levels is working intermittently.

Hi there, sure! It is v1.0; I also tried it in beta but failed too. Here is the query:

 

https://graph.microsoft.com/v1.0/users?$count=true&$top=999&$filter=country+eq+%27United+States%27+and+employeeId+ne+null&$select=userPrincipalName&$expand=manager($levels=1;$select=userPrincipalName,country)

Thanks, @Expiscornovus for the tip! I removed the $levels from my query, but now the employeeId ne null is not working!  

 

https://graph.microsoft.com/v1.0/users?$count=true&$top=999&$filter=country+eq+%27United+States%27+and+employeeId+ne+null&$select=userPrincipalName&$expand=manager($select=userPrincipalName,country) 

 

Returns:
"Unsupported property filter clause operator 'NotEqualsMatch'."

The query works without employeeId ne null but it's must have for me and used to work just fine until Sep 23rd.

MaximilienCRUZ
New Member

I have the same problem as you guys,

 

tried to fix via removing levels seems to do something but I can't get around a new strange bug: (close to the one @RamtinS has I think)

 

This request which I was using with manager($levels=1) previously, now doesn't work even when removing $levels (you can test it there: https://developer.microsoft.com/en-us/graph/graph-explorer)

 

https://graph.microsoft.com/v1.0/users?$count=true&$top=999&$select=id,mail,onPremisesExtensionAttributes,companyName,givenName,department,surname,jobTitle&$filter=endsWith(mail,'@domain.fr')&$expand=manager

 

But if you remove the expand bit, the filter works again... Or you can remove  the filter and then the expand works.. It worked before, really annoying to have production systems fail because of a microsoft API 😞

 

If someone has a solution I'll be glad to read it.

Right, I'm afraid that $expand with an advanced query stopped working as well apart from $levels.. MS note says that "$expand is not currently supported with advanced queries". Looks like ne and endsWithoperators are both only supported in advanced queries, refer to https://learn.microsoft.com/en-us/graph/aad-advanced-queries?tabs=http#legend

I guess we will need to rework our queries that worked previously..

ne operator is considered an advance query that no longer works with $expand 😞

Helpful resources

Announcements
Microsoft 365 Conference – December 6-8, 2022

Microsoft 365 Conference – December 6-8, 2022

Join us in Las Vegas to experience community, incredible learning opportunities, and connections that will help grow skills, know-how, and more.

Difinity Conference 2022

Difinity Conference 2022

Register today for two amazing days of learning, featuring intensive learning sessions across multiple tracks, led by engaging and dynamic experts.

European SharePoint Conference

European SharePoint Conference

The European SharePoint Conference returns live and in-person November 28-December 1 with 4 Microsoft Keynotes, 9 Tutorials, and 120 Sessions.

Users online (5,227)