0
Answered

Value cannot be null. Parameter name: id at Unify.Product.IdentityBroker.FilteredWorkerIdsCache.Contains(String id)

Carol Wapshere 4 years ago in UNIFYBroker/Workday updated by anonymous 4 years ago 4

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
Affected Versions:
Fixed by Version:

Answer

Answer
Answered

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).

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.

Under review

The warning is followed by an error, as it's captured at two separate locations (with different concerns and thus log levels).

Oh good, thanks for that clarification.

Answer
Answered

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).