microsoftgraph / microsoftgraph/msgraph-sdk-java
SDK returns site `name` inconsistently: sometimes same as `displayName` instead of correct value and sometimes the correct value
Personne n'a encore pris cette issue.
- Langage dominant
- Java
- Étoiles
- 444
- Forks
- 154
- Merge moyen
- 18 h 28 min
- PR mergées (30 j)
- 4
Description
Describe the bug
Doing different site lists returns different values in the name field.
Doing a search limited to a smaller set of sites returns the correct / expected value in the name field.
Doing a list of all sites returns the displayName in the name field.
Expected behavior
The SDK should return values in the name field consistently.
How to reproduce
- Return sites using this code:
graphClient.sites().get()
The return value in the MSGraph API response is:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites",
"value": [
{
"createdDateTime": "2025-03-31T16:03:30Z",
"id": "mytenant.sharepoint.com,d0536e25-0c9c-4a9c-b879-cefdc46dc82d,9f7ed8fa-4175-4a6c-80ae-2e19f19f5948",
"name": "Test Site Many Names Site Info Name",
"webUrl": "https://mytenant.sharepoint.com/sites/TestSiteManyNames",
"displayName": "Test Site Many Names Site Info Name",
"isPersonalSite": false,
"siteCollection": {
"hostname": "mytenant.sharepoint.com"
},
"root": {}
},
{
"createdDateTime": "2025-02-23T17:46:07Z",
"id": "mytenant.sharepoint.com,c65bebd0-1a50-4d31-8ef8-51d067f95ca8,00577abf-eccb-44ae-ba22-1542cc3249e3",
"name": "Apps",
"webUrl": "https://mytenant.sharepoint.com/sites/appcatalog",
"displayName": "Apps",
"isPersonalSite": false,
"siteCollection": {
"hostname": "mytenant.sharepoint.com"
},
"root": {}
},
{
"createdDateTime": "2025-02-20T01:38:39Z",
"id": "mytenant.sharepoint.com,09ed6654-3505-4561-a2e7-8d2776480abb,4d074863-0c38-46e8-b60a-156446947967",
"name": "Team Site",
"webUrl": "https://mytenant.sharepoint.com/sites/contentTypeHub",
"displayName": "Team Site",
"isPersonalSite": false,
"siteCollection": {
"hostname": "mytenant.sharepoint.com"
},
"root": {}
},
{
"createdDateTime": "2025-02-20T01:38:32Z",
"id": "mytenant.sharepoint.com,ff2ad436-8677-4cfb-91d6-67d7344474a0,9fda6e4f-a65f-4cc1-ba2b-3d11d30dccd7",
"webUrl": "https://mytenant.sharepoint.com/search",
"isPersonalSite": false,
"siteCollection": {
"hostname": "mytenant.sharepoint.com"
},
"root": {}
},
{
"createdDateTime": "2025-02-20T01:37:56Z",
"id": "mytenant-my.sharepoint.com,5a898f19-31d7-4f38-abd7-d7342535cb7d,6baab3c4-1e9a-4c52-bf5d-49f46471726d",
"name": "My Name",
"webUrl": "https://mytenant-my.sharepoint.com/personal/myid_mytenant_com",
"displayName": "My Name",
"isPersonalSite": true,
"siteCollection": {
"hostname": "mytenant-my.sharepoint.com"
},
"root": {}
},
{
"createdDateTime": "2025-02-20T01:35:31Z",
"id": "mytenant.sharepoint.com,e24ba8dd-ec64-4930-b9d3-6a4a542d4114,e69c54e0-3df2-4d80-a2f9-48f75cc5a825",
"name": "All Company",
"webUrl": "https://mytenant.sharepoint.com/sites/allcompany",
"displayName": "All Company",
"isPersonalSite": false,
"siteCollection": {
"hostname": "mytenant.sharepoint.com"
},
"root": {}
},
{
"createdDateTime": "2025-02-20T01:32:07Z",
"id": "mytenant.sharepoint.com,e3bb292d-6bce-419a-8f50-c98b996d3b34,965c6dcd-d66f-4f05-b23a-5274bd961199",
"name": "Communication site",
"webUrl": "https://mytenant.sharepoint.com/",
"displayName": "Communication site",
"isPersonalSite": false,
"siteCollection": {
"hostname": "mytenant.sharepoint.com"
},
"root": {}
}
]
}
- Return just one of the above sites, example here is the one with "Many" in the display name (Kotlin):
graphClient.sites().get {
it.queryParameters.search = "Many"
}
and the return value in the MSGraph API response is now:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites",
"value": [
{
"createdDateTime": "2025-03-31T16:03:30Z",
"description": "Test Site Many Names Description",
"id": "mytenant.sharepoint.com,d0536e25-0c9c-4a9c-b879-cefdc46dc82d,9f7ed8fa-4175-4a6c-80ae-2e19f19f5948",
"lastModifiedDateTime": "2025-03-31T16:03:38Z",
"name": "TestSiteManyNames",
"webUrl": "https://mytenant.sharepoint.com/sites/TestSiteManyNames",
"displayName": "Test Site Many Names Site Info Name",
"root": {},
"siteCollection": {
"hostname": "mytenant.sharepoint.com"
}
}
]
}
Note the difference in the Name fields. The first response contains "name": "Test Site Many Names Site Info Name" while the second response contains "name": "TestSiteManyNames".
Note also that the second response does not contain isPersonalSite: false (even if isPersonalSite is requested explicitly via $select).
SDK Version
6.33.0
Latest version known to work for scenario above?
No response
Known Workarounds
Extract the last path segment from the webUrl field to get the name consistently, after filtering out the root site.
Debug output
No response
Configuration
No response
Other information
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez au point d’entrée graphClient.sites().get() et comparez la manière dont le SDK représente les deux réponses Microsoft Graph capturées, notamment name et isPersonalSite. Utilisez les réponses de liste et de recherche signalées pour définir la cohérence attendue ; le travail est terminé lorsque le SDK expose des valeurs stables pour les deux champs ou documente clairement une limitation en amont.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java, kotlin
- Domaine
- api, backend
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 42/100