schema.patch SynchronizationSchema : 404 No HTTP resource was found that matches the request URI
Describe the bug
I'm trying to update one Attribut Mapping from a Synchronisation Job. For information, the provisioning job is created on template_id “gsuite”. When I launch the schema.patch() method I have the API Error.
APIError Code: 404 message: None error: MainError(additional_data={}, code='UnknownError', details=None, inner_error=InnerError(additional_data={}, client_request_id='0bbde296-b67b-4dcd-a4fb-35fcd5fa98f5', date=DateTime(2024, 7, 18, 7, 14, 15, tzinfo=Timezone('UTC')), odata_type=None, request_id='c86232e3-3a57-458c-8c44-3f2874146620'), message='{"Message":"No HTTP resource was found that matches the request URI 'https://syncfabric.windowsazure.com/api/servicePrincipals('acc560a1-67df-4d8d-abd0-7cf74a1d7211')/synchronization/jobs('gsuite.b126ececd749434c915e443764450031.8f782d8a-7b79-4417-aab7-f96538801e92')/schema?api-version=2.0'."}', target=None)
Expected behavior
All I do now is read the shema and then patch the shema as is without modifying it. I expect the schema to be patched without modification. I'll then have to update the Objects Mapping.
How to reproduce
async def patch_synchronizationSchema_case(service_principal_id: str):
# Read Service Principal
servicePrincipal = await client.service_principals.by_service_principal_id(service_principal_id).get()
print(f'=================')
print(f'app_display_name : {servicePrincipal.app_display_name}')
# Read Job
jobs = await client.service_principals.by_service_principal_id(service_principal_id).synchronization.jobs.get()
if len(jobs.value) == 0:
print(f'There is no synchronisation job')
return
job=jobs.value[0]
synchronizationJob_id=jobs.value[0].id
print(f'job template id : {job.template_id}')
print(f'job id : {synchronizationJob_id}')
# Read schema
schema = await client.service_principals.by_service_principal_id(service_principal_id).synchronization.jobs.by_synchronization_job_id(synchronizationJob_id).schema.get()
# Modifie Object Mapping
# TODO
# Patch schema
await client.service_principals.by_service_principal_id(service_principal_id).synchronization.jobs.by_synchronization_job_id(synchronizationJob_id).schema.patch(schema)
asyncio.run(patch_synchronizationSchema_case(GCP_DEV2_servicePrincipal_id))
SDK Version
1.5.3
Latest version known to work for scenario above?
No response
Known Workarounds
No response
Debug output
Click to expand log
``` APIError
Code: 404
message: None
error: MainError(additional_data={}, code='UnknownError', details=None, inner_error=InnerError(additional_data={}, client_request_id='3006e706-78d4-4a17-bf17-0a02ff65b55c', date=DateTime(2024, 7, 18, 7, 26, 24, tzinfo=Timezone('UTC')), odata_type=None, request_id='fb6b307f-6a84-41f0-aeae-52d8b9d4cd00'), message='{"Message":"No HTTP resource was found that matches the request URI \'https://syncfabric.windowsazure.com/api/servicePrincipals(\'acc560a1-67df-4d8d-abd0-7cf74a1d7211\')/synchronization/jobs(\'gsuite.b126ececd749434c915e443764450031.8f782d8a-7b79-4417-aab7-f96538801e92\')/schema?api-version=2.0\'."}', target=None)
</details>
### Configuration
_No response_
### Other information
_No response_
Hello @dominique-lambert-OBS , Thanks for using the python SDK and for raising this.
In In order to help us reproduce and help fix this, are there active synchronization jobs?
For instance, len(jobs.value) a number greater than 0, considering you are seeing a 404 when patching, could this be the reason, same for synchronization jobs and schema.
Hello, Yes I can confirm that len(jobs.value) egals 1
================= app_display_name : GCP DEV2 Jobs len : 1 job template id : gsuite job id : gsuite.b126ececd749434c915e443764450031.1c0969ff-f1fd-440a-852c-bf0943750273
Hello, @baywet, can we re-open this case ? Best regards, Dominique
Hi @dominique-lambert-OBS Thanks for the nudge here. @shemogumbe it seems the metadata for this API is incorrect, the API is expecting a PUT, not a PATCH can you either open an ICM on the team asking them to add an update restriction to their metadata, or open an issue in the metadata repo to do so please?
Hello @shemogumbe Can you take a look before the bot closes the case? Best regards Dominique
Blocked by https://github.com/microsoftgraph/msgraph-metadata/issues/676