Skip to content

graphClient.Me.GetAsync() / graphClient.Users.GetAsync() can't get AdditonalData from Type "#Collection(String)" #2913

@jcraft123

Description

@jcraft123

Describe the bug

Hello,
I'm trying to retrieve some Entra ID directory extensions from users using the Graph SDK. It works with normal strings, but if I have an array as data type, it just displays an empty object.

If I use the following code block:

var me = await graphClient.me.GetAsync(requestConfiguration =>
{
    requestConfiguration.QueryParameters.Select =
        new string[] { "Id", "extension_c4eaf7e0c68a468c8a93aa91dc1cdf8e_roomNumber", "extension_c4eaf7e0c68a468c8a93aa91dc1cdf8e_info" };
});

I receive:

{
    "AdditionalData": {
        "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,extension_c4eaxxxxxxxxxxxxxxxxaa91dc1cdf8e_roomNumber,extension_c4eaxxxxxxxxxxxxxxxxaa91dc1cdf8e_info)/$entity",
        "[email protected]": "#Collection(String)",
        "extension_c4eaxxxxxxxxxxxxxxxxaa91dc1cdf8e_roomNumber": {},
        "extension_c4eaxxxxxxxxxxxxxxxxaa91dc1cdf8e_info": "11 IT 04 Anwendungsdienste - Kollaboration"
    },
    "BackingStore": {
        "InitializationCompleted": true,
        "ReturnOnlyChangedValues": false
    },
    "Id": "c959de31-XXXX-XXXX-XXXX-276f63552369",
    "OdataType": "#microsoft.graph.user"
}

Expected behavior

I expect all the values to be displayed as if I go directly to the HTTP API.
URL: https://graph.microsoft.com/v1.0/me?$select=id,extension_c4eaxxxxxxxxxxxxxxxxaa91dc1cdf8e_roomNumber,extension_c4eaxxxxxxxxxxxxxxxxaa91dc1cdf8e_info

Output:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,extension_c4eaxxxxxxxxxxxxxxxxaa91dc1cdf8e_roomNumber,extension_c4eaxxxxxxxxxxxxxxxxaa91dc1cdf8e_info)/$entity",
    "id": "c959de31-XXXX-XXXX-XXXX-276f63552369",
    "[email protected]": "#Collection(String)",
    "extension_c4eaxxxxxxxxxxxxxxxxaa91dc1cdf8e_roomNumber": [
        "E.6.160"
    ],
    "extension_c4eaxxxxxxxxxxxxxxxxaa91dc1cdf8e_info": "11 IT 04 Anwendungsdienste - Kollaboration"
}

How to reproduce

var graphClient = new GraphServiceClient(credential, scopes);
var me = await graphClient.Me.GetAsync(requestConfiguration => {
    requestConfiguration.QueryParameters.Select =  new string[] { "Id", "extension_c4eaxxxxxxxxxxxxxxxxaa91dc1cdf8e_roomNumber", "extension_c4eaxxxxxxxxxxxxxxxxaa91dc1cdf8e_info" };
});
Console.WriteLine(JsonSerializer.Serialize(me!));

SDK Version

5.78.0

Latest version known to work for scenario above?

5.46.0

Known Workarounds

No response

Debug output

No response

Configuration

-OS: Windows 11
-Architecture: x64
-IDE: Visual Studio 2022 17.14.0

Other information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:bugA broken experience

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions