Value cannot be null. Parameter name: id at Unify.Product.IdentityBroker.FilteredWorkerIdsCache.Contains(String id)
News have opened a support call - it looks like the Identity Broker Workday Employees connector is not importing any data, and may not have been importing for at least a couple of days. This is the error in the log where it says the import failed. The customer has also sent me the full log file.
20161019,22:20:24,UNIFY Identity Broker,Connector,Warning,"Import all entities from connector failed.Import all entities from connector Workday Employee failed with reason Value cannot be null. Parameter name: id. Duration: 01:33:15.1564315 Error details: System.ArgumentNullException: Value cannot be null. Parameter name: id at Unify.Product.IdentityBroker.FilteredWorkerIdsCache.Contains(String id) at Unify.Product.IdentityBroker.WorkdayWorkerConnector.FilterWorker(IWorkdayCommunicator communicator, FilteredWorkerIdsCache filteredWorkerIdsCache, HashSet`1 organisationFilters, String workerID, WorkdayWorker currentWorker, Action`1 rejectItemAction, ICollection`1 cacheFiltered, ICollection`1 emailFiltered, ICollection`1 hireDateMissingFiltered, ICollection`1 orgFiltered, ICollection`1 permanentFiltered) at Unify.Product.IdentityBroker.WorkdayWorkerConnector.<GetWorkers>d__16.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at Unify.Framework.Collections.ActionOnExceptionEnumerator`1.MoveNext() at Unify.Framework.Collections.EnumerableExtensions.<ActionOnLast>d__10`1.MoveNext() at Unify.Framework.Collections.EnumerableExtensions.<ProduceAutoPages>d__7`1.MoveNext() at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit() at Unify.Framework.Visitor.VisitEvaluateOnThreadPool[T](IEnumerable`1 visitCollection, Action`2 visitor, Int32 maxThreads) at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.PerformChangeDetection(IEnumerable`1 connectorEntities) at Unify.Product.IdentityBroker.ChangeDetectionImportAllJob.ImportAllChangeProcess() at Unify.Product.IdentityBroker.ChangeDetectionImportAllJob.RunBase() at Unify.Framework.DefinedScopeJobAuditTrailJobDecorator.Run() at Unify.Product.IdentityBroker.ConnectorJobExecutor.<>c__DisplayClass27_0.<Run>b__0() at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)",Normal 20161019,22:20:24,UNIFY Identity Broker,Change detection engine,Error,"Change detection engine import all items failed. Change detection engine import all items for connector Workday Employee failed with reason Value cannot be null. Parameter name: id. Duration: 01:33:15.1714330 Error details: System.ArgumentNullException: Value cannot be null. Parameter name: id at Unify.Product.IdentityBroker.FilteredWorkerIdsCache.Contains(String id) at Unify.Product.IdentityBroker.WorkdayWorkerConnector.FilterWorker(IWorkdayCommunicator communicator, FilteredWorkerIdsCache filteredWorkerIdsCache, HashSet`1 organisationFilters, String workerID, WorkdayWorker currentWorker, Action`1 rejectItemAction, ICollection`1 cacheFiltered, ICollection`1 emailFiltered, ICollection`1 hireDateMissingFiltered, ICollection`1 orgFiltered, ICollection`1 permanentFiltered) at Unify.Product.IdentityBroker.WorkdayWorkerConnector.<GetWorkers>d__16.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at Unify.Framework.Collections.ActionOnExceptionEnumerator`1.MoveNext() at Unify.Framework.Collections.EnumerableExtensions.<ActionOnLast>d__10`1.MoveNext() at Unify.Framework.Collections.EnumerableExtensions.<ProduceAutoPages>d__7`1.MoveNext() at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit() at Unify.Framework.Visitor.VisitEvaluateOnThreadPool[T](IEnumerable`1 visitCollection, Action`2 visitor, Int32 maxThreads) at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.PerformChangeDetection(IEnumerable`1 connectorEntities) at Unify.Product.IdentityBroker.ChangeDetectionImportAllJob.ImportAllChangeProcess() at Unify.Product.IdentityBroker.ChangeDetectionImportAllJob.RunBase() at Unify.Framework.DefinedScopeJobAuditTrailJobDecorator.Run() at Unify.Product.IdentityBroker.ConnectorJobExecutor.<>c__DisplayClass27_0.<Run>b__0() at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)",Normal
Answer
One this I have noticed about this log entry - it is a "Warning". Surely it should be an "Error"? As we're going to be reporting on these logs in splunk it would be good to have something as serious as "Import all entities from connector failed" showing up in the Error counts.
The warning is followed by an error, as it's captured at two separate locations (with different concerns and thus log levels).
From analysis between the latest version and the version that presented the problem, it can be seen that there is a difference in the logic for filtered workers. An improvement had already been made to ensure that rescinded workers do not cause the filter logic to fail (as they tend to get imported partially populated).
Customer support service by UserEcho
From analysis between the latest version and the version that presented the problem, it can be seen that there is a difference in the logic for filtered workers. An improvement had already been made to ensure that rescinded workers do not cause the filter logic to fail (as they tend to get imported partially populated).