Unable to change Sync Rule - The given key was not present in the dictionary.
Hi Sean, I've seen similar looking error when working with custom FIM web service client. By default the client used accountName to query users from FIM service. If I changed the key to, say employeeId, then the client returned this "The given key was not present in the dictionary" error (can't remember the exact words...). I assumed it was because some of the users had empty employeeId attribute (eg. administrator) and the client didn't have error checking for that. This is just a guess, but maybe it helps: Could it be that changing the sync rule requires that all currently matched objects must have the new relationship attribute available? -LariLari Savolainen - Sr. Consultant IDM/IAM (www.panoramapartners.fi)
January 22nd, 2011 2:59am

Issue Resolved. FYI Cause: ====== The precedence values for the synchronization rules jumped from 4 to 6, and there was no sync rule with a precedence of "5". Since the UI does not allow this to happen, I am not sure how the data got into this situation (maybe we had 6 values at one time and deleted the 5th and it didnt automatically reorder?) Resolution: ========= Changed the precedence value for the sync rule that was set to 6 back to 5. As I could not set this via the Portal, I used a SQL update script (after ensuring we had a backup of the databases, just in case). Once this change was made, we could change the sync rules without incident.
Free Windows Admin Tool Kit Click here and download it now
January 22nd, 2011 3:33am

FIM 2010 update 1 and latest hotfix This is in regards to an Outbound Sync Rule from FIM to SQLdatabase, unable to change the RelationShip Criteria on one of the outbound syncs from AccountName = AccountName to anything=anything(tried several options) but we are on the other Outbound Sync rules without any errors. Here is the error we get in eventvwr. Any help is welcomed, thank you! Looks like data is corrupt somewhere, just need to be pointed in the right direction. Requestor: urn:uuid:4f322aa2-82a8-4d72-8df4-6e04860ca034 mscorlib: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.ThrowHelper.ThrowKeyNotFoundException() at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at Microsoft.ResourceManagement.ActionProcessor.SyncRuleActionProcessor.SortSyncRuleByPrecedence(Dictionary`2 precedenceDictionary) at Microsoft.ResourceManagement.ActionProcessor.SyncRuleActionProcessor.AdjustScopeAndRelationship(String currentConnectedSystemId, Int32 currentPrecedence, IList`1 scopeAndRelationshipParameters, Dictionary`2 parameterDictionary, Dictionary`2& syncRuleDictionary) at Microsoft.ResourceManagement.ActionProcessor.SyncRuleActionProcessor.PreProcessUpdateRequest(RequestType request) at Microsoft.ResourceManagement.ActionProcessor.SyncRuleActionProcessor.PreProcessRequestFromObjectType(RequestType request) at Microsoft.ResourceManagement.ActionProcessor.ActionDispatcher.PreProcessRequestFromObjectType(RequestType request) at Microsoft.ResourceManagement.WebServices.RequestDispatcher.CreateRequest(CreateRequestDispatchParameter dispatchParameter) at Microsoft.ResourceManagement.WebServices.RequestDispatcher.CreateRequest(UniqueIdentifier requestor, UniqueIdentifier targetIdentifier, OperationType operation, String businessJustification, List`1 requestParameters, CultureInfo locale, Boolean isChildRequest, Guid cause, Boolean doEvaluation, Nullable`1 serviceId, Nullable`1 servicePartitionId) at Microsoft.ResourceManagement.WebServices.RequestDispatcher.CreateRequest(UniqueIdentifier requestor, UniqueIdentifier targetIdentifier, OperationType operation, String businessJustification, List`1 requestParameters, CultureInfo locale, Boolean isChildRequest, Guid cause, Boolean doEvaluation) at Microsoft.ResourceManagement.WebServices.ResourceManagementService.Put(Message request)
January 22nd, 2011 4:35am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics