@@ -173,18 +173,26 @@ public void updateUserRequest(User user) {
173173 .toList ();
174174 //Provision the user to all provisionings in Manage where the user is known
175175 provisionings .forEach (provisioning -> {
176- if (this .hasEvaHook (provisioning )) {
177- RequestEntity requestEntity = this .evaClient .updateUserRequest (provisioning , user );
178- this .doExchange (requestEntity , APIType .USER_API , mapParameterizedTypeReference , provisioning );
179- } else if (this .hasScimHook (provisioning )) {
180- Optional <RemoteProvisionedUser > provisionedUserOptional =
181- this .remoteProvisionedUserRepository .findByManageProvisioningIdAndUser (provisioning .getId (), user );
182- provisionedUserOptional .ifPresent (remoteProvisionedUser -> {
183- UserRequest userRequest = new UserRequest (user , provisioning , remoteProvisionedUser .getRemoteIdentifier ());
184- this .resolveInstitutionalEduID (user , provisioning , userRequest );
185- String userRequestJson = prettyJson (userRequest );
186- this .updateRequest (provisioning , userRequestJson , APIType .USER_API , remoteProvisionedUser .getRemoteIdentifier (), HttpMethod .PUT );
187- });
176+ try {
177+ if (this .hasEvaHook (provisioning )) {
178+ RequestEntity requestEntity = this .evaClient .updateUserRequest (provisioning , user );
179+ this .doExchange (requestEntity , APIType .USER_API , mapParameterizedTypeReference , provisioning );
180+ } else if (this .hasScimHook (provisioning )) {
181+ Optional <RemoteProvisionedUser > provisionedUserOptional =
182+ this .remoteProvisionedUserRepository .findByManageProvisioningIdAndUser (provisioning .getId (), user );
183+ provisionedUserOptional .ifPresent (remoteProvisionedUser -> {
184+ UserRequest userRequest = new UserRequest (user , provisioning , remoteProvisionedUser .getRemoteIdentifier ());
185+ this .resolveInstitutionalEduID (user , provisioning , userRequest );
186+ String userRequestJson = prettyJson (userRequest );
187+ this .updateRequest (provisioning , userRequestJson , APIType .USER_API , remoteProvisionedUser .getRemoteIdentifier (), HttpMethod .PUT );
188+ });
189+ }
190+ } catch (RuntimeException e ) {
191+ //We choose to ignore these, because one remote provisioning errors should not stop other provisionings
192+ LOG .error (String .format ("Error in updateUserRequest for provisioning %s for user %s" ,
193+ provisioning .getEntityId (), user .getEmail ())
194+ , e );
195+
188196 }
189197 });
190198 }
0 commit comments