Identity Broker Forum
Welcome to the community forum for Identity Broker.
Browse the knowledge base, ask questions directly to the product group, or leverage the community to get answers. Leave ideas for new features and vote for the features or bug fixes you want most.

"Attempting to retrieve the CollectionKeyId for caption <x> failed" after adding a new field when Locker objects already exist
On a system with existing Locker records I added a new field to an Adapter, Locker and Link mapping, and then ran Changes Synchronization, which logged an error. I then ran a Clear Sync Changes, followed by a Baseline Synchronization, but the same error still occurred.
I managed to get rid of the error by running Clear Entities on the Locker, which isn't ideal since I lost all my joins and had to careful resync my Links in the right order to avoid any undesirable provisioning attempts :-(
Synchronization job started syncing 42941 changes on the 'Chris21 DET' link from the adapter to locker. Job ID: b7478421-d9c7-405d-a286-290d823cd3eb",Normal
20190719,13:33:25,UNIFYBroker,Link,Error,"Request to sync changes on link failed.
Request to sync changes on link Chris21 DET (32a760fb-9e58-4761-ab12-9f57f10e79de) in direction outgoing failed with message Attempting to retrieve the CollectionKeyId for caption DETProvisioned failed. No collection key record found for that caption. [Count:42941]. Duration: 00:00:21.9409080
Error details:
System.ArgumentException: Attempting to retrieve the CollectionKeyId for caption DETProvisioned failed. No collection key record found for that caption.
at Unify.Product.Plus.LockerEntityValueOriginContext.LookupCollectionKeyId(String key)
at Unify.Product.Plus.LockerEntityValueOriginLinqQueryExecutorInformation.AddValueKeyFieldSearchValue(Guid searchID, String field)
at Unify.Product.Plus.VisitMethodWhereWithContainsValueKeyField.<>c__DisplayClass4_0.b__0(String item)
at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor)
at Unify.Product.Plus.VisitMethodWhereWithContainsValueKeyField.Transform(MethodCallExpression expression)
at Unify.Product.Plus.LockerEntityValueOriginExpressionQueryVisitor.VisitMethodCall(MethodCallExpression m)
at Unify.Framework.ExpressionVisitorBase`11.Visit(Expression exp)
at Unify.Framework.Data.LinqContextConversionExpressionVisitorBase`5.ConvertExpression(Expression partitionExpression)
at Unify.Framework.Data.LinqQueryConversionProvider`5.GetOrderedQuery(Expression businessExpression, IQueryable`1 sourceQueryable, TContext sourceContext)
at Unify.Framework.Data.LinqWhereQuery`5.GetEnumerator()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Unify.Product.Plus.PriorityRepository.<>c__DisplayClass14_0.b__3(Guid targetEntityId, AdapterEntityValueCollectionKey field)
at Unify.Product.Plus.Prioritizer.ShouldPrioritize(Guid targetEntityId, AdapterEntityValueCollectionKey field)
at Unify.Product.Plus.MappingApplicator.InnerApply[TSourceEntity,TTargetEntity](IJoinedEntityPair`2 joinedPair, ISyncChange syncChange, Boolean forUpdate, Boolean priorityLookupRequired)
at Unify.Product.Plus.MappingApplicator.ApplyForUpdate[TSourceEntity,TTargetEntity](IJoinedEntityPair`2 joinedPair, ISyncChange syncChange, Boolean priorityLookupRequired)
at Unify.Product.Plus.LinkSynchronizer`2.JoinAndMap(IEnumerable`1 filterResult, IDictionary`2 changesDict)
at Unify.Product.Plus.Link.SynchronizeAdapterChanges(IEnumerable`1 changes)
at Unify.Product.Plus.LinkNotifierDecorator.<>c__DisplayClass42_0.b__0()
at Unify.Framework.Notification.NotifierDecoratorBase.Notify[TResult](ITaskNotificationFactory notificationFactory, Func`1 function)
at Unify.Product.Plus.LinkAuditingDecorator.SynchronizeAdapterChanges(IEnumerable`1 changes)
at Unify.Product.Plus.AdapterToLockerSynchronizationJob.RunBase()
at Unify.Product.Plus.SynchronizationJobExecutor.d__8.MoveNext()",Normal
20190719,13:33:25,UNIFYBroker,SyncEngine,Information,"Request to sync adapter to locker errored.
Synchronization job failed syncing 42941 changes on the 'Chris21 DET' link from the adapter to locker with the reason Attempting to retrieve the CollectionKeyId for caption DETProvisioned failed. No collection key record found for that caption.. Job ID: b7478421-d9c7-405d-a286-290d823cd3eb Duration: 00:00:21.9409080
Error details:
System.ArgumentException: Attempting to retrieve the CollectionKeyId for caption DETProvisioned failed. No collection key record found for that caption.
at Unify.Product.Plus.LockerEntityValueOriginContext.LookupCollectionKeyId(String key)
at Unify.Product.Plus.LockerEntityValueOriginLinqQueryExecutorInformation.AddValueKeyFieldSearchValue(Guid searchID, String field)
at Unify.Product.Plus.VisitMethodWhereWithContainsValueKeyField.<>c__DisplayClass4_0.b__0(String item)
at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor)
at Unify.Product.Plus.VisitMethodWhereWithContainsValueKeyField.Transform(MethodCallExpression expression)
at Unify.Product.Plus.LockerEntityValueOriginExpressionQueryVisitor.VisitMethodCall(MethodCallExpression m)
at Unify.Framework.ExpressionVisitorBase`11.Visit(Expression exp)
at Unify.Framework.Data.LinqContextConversionExpressionVisitorBase`5.ConvertExpression(Expression partitionExpression)
at Unify.Framework.Data.LinqQueryConversionProvider`5.GetOrderedQuery(Expression businessExpression, IQueryable`1 sourceQueryable, TContext sourceContext)
at Unify.Framework.Data.LinqWhereQuery`5.GetEnumerator()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Unify.Product.Plus.PriorityRepository.<>c__DisplayClass14_0.b__3(Guid targetEntityId, AdapterEntityValueCollectionKey field)
at Unify.Product.Plus.Prioritizer.ShouldPrioritize(Guid targetEntityId, AdapterEntityValueCollectionKey field)
at Unify.Product.Plus.MappingApplicator.InnerApply[TSourceEntity,TTargetEntity](IJoinedEntityPair`2 joinedPair, ISyncChange syncChange, Boolean forUpdate, Boolean priorityLookupRequired)
at Unify.Product.Plus.MappingApplicator.ApplyForUpdate[TSourceEntity,TTargetEntity](IJoinedEntityPair`2 joinedPair, ISyncChange syncChange, Boolean priorityLookupRequired)
at Unify.Product.Plus.LinkSynchronizer`2.JoinAndMap(IEnumerable`1 filterResult, IDictionary`2 changesDict)
at Unify.Product.Plus.Link.SynchronizeAdapterChanges(IEnumerable`1 changes)
at Unify.Product.Plus.LinkNotifierDecorator.<>c__DisplayClass42_0.b__0()
at Unify.Framework.Notification.NotifierDecoratorBase.Notify[TResult](ITaskNotificationFactory notificationFactory, Func`1 function)
at Unify.Product.Plus.LinkAuditingDecorator.SynchronizeAdapterChanges(IEnumerable`1 changes)
at Unify.Product.Plus.AdapterToLockerSynchronizationJob.RunBase()
at Unify.Product.Plus.SynchronizationJobExecutor.d__8.MoveNext()",Normal
20190719,13:33:25,UNIFYBroker,Int32 LookupCollectionKeyId(System.String),Error,"Unify.Plus.ChangeTracking.Repository.Sql:
System.ArgumentException: Attempting to retrieve the CollectionKeyId for caption DETProvisioned failed. No collection key record found for that caption.
at Unify.Product.Plus.LockerEntityValueOriginContext.LookupCollectionKeyId(String key)
at Unify.Product.Plus.LockerEntityValueOriginLinqQueryExecutorInformation.AddValueKeyFieldSearchValue(Guid searchID, String field)
at Unify.Product.Plus.VisitMethodWhereWithContainsValueKeyField.<>c__DisplayClass4_0.b__0(String item)
at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor)
at Unify.Product.Plus.VisitMethodWhereWithContainsValueKeyField.Transform(MethodCallExpression expression)
at Unify.Product.Plus.LockerEntityValueOriginExpressionQueryVisitor.VisitMethodCall(MethodCallExpression m)
at Unify.Framework.ExpressionVisitorBase`11.Visit(Expression exp)
at Unify.Framework.Data.LinqContextConversionExpressionVisitorBase`5.ConvertExpression(Expression partitionExpression)
at Unify.Framework.Data.LinqQueryConversionProvider`5.GetOrderedQuery(Expression businessExpression, IQueryable`1 sourceQueryable, TContext sourceContext)
at Unify.Framework.Data.LinqWhereQuery`5.GetEnumerator()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Unify.Product.Plus.PriorityRepository.<>c__DisplayClass14_0.b__3(Guid targetEntityId, AdapterEntityValueCollectionKey field)
at Unify.Product.Plus.Prioritizer.ShouldPrioritize(Guid targetEntityId, AdapterEntityValueCollectionKey field)
at Unify.Product.Plus.MappingApplicator.InnerApply[TSourceEntity,TTargetEntity](IJoinedEntityPair`2 joinedPair, ISyncChange syncChange, Boolean forUpdate, Boolean priorityLookupRequired)
at Unify.Product.Plus.MappingApplicator.ApplyForUpdate[TSourceEntity,TTargetEntity](IJoinedEntityPair`2 joinedPair, ISyncChange syncChange, Boolean priorityLookupRequired)
at Unify.Product.Plus.LinkSynchronizer`2.JoinAndMap(IEnumerable`1 filterResult, IDictionary`2 changesDict)
at Unify.Product.Plus.Link.SynchronizeAdapterChanges(IEnumerable`1 changes)
at Unify.Product.Plus.LinkNotifierDecorator.<>c__DisplayClass42_0.b__0()
at Unify.Framework.Notification.NotifierDecoratorBase.Notify[TResult](ITaskNotificationFactory notificationFactory, Func`1 function)
at Unify.Product.Plus.LinkAuditingDecorator.SynchronizeAdapterChanges(IEnumerable`1 changes)
at Unify.Product.Plus.AdapterToLockerSynchronizationJob.RunBase()
at Unify.Product.Plus.SynchronizationJobExecutor.d__8.MoveNext()",Normal
20190719,13:34:37,UNIFYBroker,Link,Information,"Request to manually queue a baseline synchronization job on link started.
Request to manually queue a baseline synchronization job on link Chris21 DET started.",Normal
20190719,13:41:58,UNIFYBroker,Link,Information,"Request to manually queue a baseline synchronization job on link completed.
Request to manually queue a baseline synchronization job on link 'Chris21 DET' completed. Duration: 00:07:21.4025706",Normal
20190719,13:42:06,UNIFYBroker,SyncEngine,Information,"Request to sync adapter to locker started.
Synchronization job started syncing 42942 changes on the 'Chris21 DET' link from the adapter to locker. Job ID: a68bff33-8555-43e4-ac9b-222f014f1053",Normal
20190719,13:42:28,UNIFYBroker,Link,Error,"Request to sync changes on link failed.
Request to sync changes on link Chris21 DET (32a760fb-9e58-4761-ab12-9f57f10e79de) in direction outgoing failed with message Attempting to retrieve the CollectionKeyId for caption DETProvisioned failed. No collection key record found for that caption. [Count:42942]. Duration: 00:00:21.9446416
Error details:
System.ArgumentException: Attempting to retrieve the CollectionKeyId for caption DETProvisioned failed. No collection key record found for that caption.
at Unify.Product.Plus.LockerEntityValueOriginContext.LookupCollectionKeyId(String key)
at Unify.Product.Plus.LockerEntityValueOriginLinqQueryExecutorInformation.AddValueKeyFieldSearchValue(Guid searchID, String field)
at Unify.Product.Plus.VisitMethodWhereWithContainsValueKeyField.<>c__DisplayClass4_0.b__0(String item)
at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor)
at Unify.Product.Plus.VisitMethodWhereWithContainsValueKeyField.Transform(MethodCallExpression expression)
at Unify.Product.Plus.LockerEntityValueOriginExpressionQueryVisitor.VisitMethodCall(MethodCallExpression m)
at Unify.Framework.ExpressionVisitorBase`11.Visit(Expression exp)
at Unify.Framework.Data.LinqContextConversionExpressionVisitorBase`5.ConvertExpression(Expression partitionExpression)
at Unify.Framework.Data.LinqQueryConversionProvider`5.GetOrderedQuery(Expression businessExpression, IQueryable`1 sourceQueryable, TContext sourceContext)
at Unify.Framework.Data.LinqWhereQuery`5.GetEnumerator()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Unify.Product.Plus.PriorityRepository.<>c__DisplayClass14_0.b__3(Guid targetEntityId, AdapterEntityValueCollectionKey field)
at Unify.Product.Plus.Prioritizer.ShouldPrioritize(Guid targetEntityId, AdapterEntityValueCollectionKey field)
at Unify.Product.Plus.MappingApplicator.InnerApply[TSourceEntity,TTargetEntity](IJoinedEntityPair`2 joinedPair, ISyncChange syncChange, Boolean forUpdate, Boolean priorityLookupRequired)
at Unify.Product.Plus.MappingApplicator.ApplyForUpdate[TSourceEntity,TTargetEntity](IJoinedEntityPair`2 joinedPair, ISyncChange syncChange, Boolean priorityLookupRequired)
at Unify.Product.Plus.LinkSynchronizer`2.JoinAndMap(IEnumerable`1 filterResult, IDictionary`2 changesDict)
at Unify.Product.Plus.Link.SynchronizeAdapterChanges(IEnumerable`1 changes)
at Unify.Product.Plus.LinkNotifierDecorator.<>c__DisplayClass42_0.b__0()
at Unify.Framework.Notification.NotifierDecoratorBase.Notify[TResult](ITaskNotificationFactory notificationFactory, Func`1 function)
at Unify.Product.Plus.LinkAuditingDecorator.SynchronizeAdapterChanges(IEnumerable`1 changes)
at Unify.Product.Plus.AdapterToLockerSynchronizationJob.RunBase()
at Unify.Product.Plus.SynchronizationJobExecutor.d__8.MoveNext()",Normal
20190719,13:42:28,UNIFYBroker,SyncEngine,Information,"Request to sync adapter to locker errored.
Synchronization job failed syncing 42942 changes on the 'Chris21 DET' link from the adapter to locker with the reason Attempting to retrieve the CollectionKeyId for caption DETProvisioned failed. No collection key record found for that caption.. Job ID: a68bff33-8555-43e4-ac9b-222f014f1053 Duration: 00:00:21.9446416
Error details:
System.ArgumentException: Attempting to retrieve the CollectionKeyId for caption DETProvisioned failed. No collection key record found for that caption.
at Unify.Product.Plus.LockerEntityValueOriginContext.LookupCollectionKeyId(String key)
at Unify.Product.Plus.LockerEntityValueOriginLinqQueryExecutorInformation.AddValueKeyFieldSearchValue(Guid searchID, String field)
at Unify.Product.Plus.VisitMethodWhereWithContainsValueKeyField.<>c__DisplayClass4_0.b__0(String item)
at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor)
at Unify.Product.Plus.VisitMethodWhereWithContainsValueKeyField.Transform(MethodCallExpression expression)
at Unify.Product.Plus.LockerEntityValueOriginExpressionQueryVisitor.VisitMethodCall(MethodCallExpression m)
at Unify.Framework.ExpressionVisitorBase`11.Visit(Expression exp)
at Unify.Framework.Data.LinqContextConversionExpressionVisitorBase`5.ConvertExpression(Expression partitionExpression)
at Unify.Framework.Data.LinqQueryConversionProvider`5.GetOrderedQuery(Expression businessExpression, IQueryable`1 sourceQueryable, TContext sourceContext)
at Unify.Framework.Data.LinqWhereQuery`5.GetEnumerator()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Unify.Product.Plus.PriorityRepository.<>c__DisplayClass14_0.b__3(Guid targetEntityId, AdapterEntityValueCollectionKey field)
at Unify.Product.Plus.Prioritizer.ShouldPrioritize(Guid targetEntityId, AdapterEntityValueCollectionKey field)
at Unify.Product.Plus.MappingApplicator.InnerApply[TSourceEntity,TTargetEntity](IJoinedEntityPair`2 joinedPair, ISyncChange syncChange, Boolean forUpdate, Boolean priorityLookupRequired)
at Unify.Product.Plus.MappingApplicator.ApplyForUpdate[TSourceEntity,TTargetEntity](IJoinedEntityPair`2 joinedPair, ISyncChange syncChange, Boolean priorityLookupRequired)
at Unify.Product.Plus.LinkSynchronizer`2.JoinAndMap(IEnumerable`1 filterResult, IDictionary`2 changesDict)
at Unify.Product.Plus.Link.SynchronizeAdapterChanges(IEnumerable`1 changes)
at Unify.Product.Plus.LinkNotifierDecorator.<>c__DisplayClass42_0.b__0()
at Unify.Framework.Notification.NotifierDecoratorBase.Notify[TResult](ITaskNotificationFactory notificationFactory, Func`1 function)
at Unify.Product.Plus.LinkAuditingDecorator.SynchronizeAdapterChanges(IEnumerable`1 changes)
at Unify.Product.Plus.AdapterToLockerSynchronizationJob.RunBase()
at Unify.Product.Plus.SynchronizationJobExecutor.d__8.MoveNext()",Normal
201

This has been implemented and is available in the release of UNIFYConnect V6, which will be made available shortly.

New deployment reporting "Request to retrieve adapter schema for adapter with id <x> failed with message A partition could not be found with id <x>"
During initial data load of a new environment I noticed one of my Adapters (for a Connector with 9,761 objects, with only one Transformation, a Time Offset Flag) had pending changes that were not processing. There were no corresponding errors in the log for it, so I ran Clear Entities, watched the Pending Changes clear to 0, then ran Generate Changes. At this time nothing was written to the log to indicate processing was under way, but the SQL Server was using 100% of one CPU. After some time with no evident progress I stopped the UNIFYBroker service, and the SQL Server stopped using CPU. I restarted the UNIFYBroker service, and the CPU usage returned to 100% of one CPU and this error was written in the log several times. Since then, nothing has been written to the log and the Pending Changes counter has remained unchanged at 9,761.
Unify.Framework.UnifyEngineException: A partition could not be found with id ae6aa686-33ae-41ba-9462-5f26793f5216.
at Unify.Product.IdentityBroker.AdapterEngine.GetPartitionSchema(Guid partitionId)
at Unify.Product.IdentityBroker.AdapterEngineAuditingDecorator.GetPartitionSchema(Guid partitionId)
at Unify.Product.IdentityBroker.AdapterEngineNotifierDecorator.<>c__DisplayClass6_0.b__0()
at Unify.Framework.Notification.NotifierDecoratorBase.Notify[TResult,TFactory](TFactory notificationFactory, Func`1 action, Action`2 modifyFactory)
at Unify.Product.IdentityBroker.AdapterEngineNotifierDecorator.GetPartitionSchema(Guid partitionId)
at Unify.Product.IdentityBroker.AdapterEngineAccessor.GetPartitionSchema(Guid partitionId)
at Unify.Product.IdentityBroker.AdapterStatisticsEngine.GetEntityCount(Guid adapterId)",Normal
20190719,10:51:30,UNIFYBroker,Unify.Product.IdentityBroker.IEntitySchema GetPartitionSchema(System.Guid),Warning,"Unify.IdentityBroker.Adapter.Engine:
Unify.Framework.UnifyEngineException: A partition could not be found with id ae6aa686-33ae-41ba-9462-5f26793f5216.
at Unify.Product.IdentityBroker.AdapterEngine.GetPartitionSchema(Guid partitionId)
at Unify.Product.IdentityBroker.AdapterEngineAuditingDecorator.GetPartitionSchema(Guid partitionId)
at Unify.Product.IdentityBroker.AdapterEngineNotifierDecorator.<>c__DisplayClass6_0.b__0()
at Unify.Framework.Notification.NotifierDecoratorBase.Notify[TResult,TFactory](TFactory notificationFactory, Func`1 action, Action`2 modifyFactory)
at Unify.Product.IdentityBroker.AdapterEngineNotifierDecorator.GetPartitionSchema(Guid partitionId)
at Unify.Product.IdentityBroker.AdapterEngineAccessor.GetPartitionSchema(Guid partitionId)
at Unify.Product.IdentityBroker.AdapterStatisticsEngine.GetEntityCount(Guid adapterId)",Normal
Could you please suggest what the cause of the error might be, and tell me how to get UNIFYBroker to commence processing the pending changes?
UNIFYBroker v5.3.2 Revision #0
Microsoft Active Directory 5.3.0.0
Chris21 Connector 5.3.0.0
Sync Changes 5.3.0.2
Plus Change Tracking 5.3.0.2
Connections 5.3.0.2
Links 5.3.0.2
Link Statistics 5.3.0.2
Lockers 5.3.0.2
Locker Statistics 5.3.0.2
Provisioning 5.3.0.2
Plus 5.3.0.2
Windows Server 2016 Datacenter + SQL Server 2012 (both UNIFYBroker + SQL running on the same server)

Resolution courtesy of Matt: stop the UNIFYBroker service and rebuild the highly fragmented UNIFYBroker database table indexes.

UNIFYBroker/AD & dn field type
I have configured my UNIFYBroker/AD connector to use objectGUID as the key, so I can modify the "dn" attribute to move users between AD OUs. I configured my "dn" attribute as a "Distinguished Name (DN)" type in the AD connector and I generate an appropriate value for the field in a PowerShell Link Task. But when I attempt to sync to the AD adapter I see this error:
It looks to me like the UNIFYBroker/AD connector code needs me to configure the "dn" attribute as a String type. Is that correct? I'd prefer to have it configured as a Distinguished Name (DN), because that is what it is in AD and I want to use it elsewhere as a Distinguished Name (DN) data type (e.g. when I join to it for use on another user's "manager" attribute).

Hey Adrian,
Unfortunately that's correct - the AD connector expects the DN field to be a string value type.
This is because the underlying Microsoft library used for integration requires the DN to be a string value, so we enforce that value type further up the chain to ensure we don't cause any strange behaviour doing the conversion ourselves.

When performing a move DN operation in the AD connector, check that the target OU is present first
When the target OU is missing, the error that is currently logged is quite difficult to relate back to the root cause. If a test of the target OU were made before the move and a specific error logged in this case then it would go a long way to improving the usability of the product.
See https://voice.unifysolutions.net/communities/6/topics/3850-baseline-sync-reports-received-error-code-other-an-unknown-error-occurred for an example of the error that currently occurs.

Baseline sync reports: Received error code Other An Unknown error occurred
My AD service account has permission to update users in AD. How can I get more information about why this is happening?
New install, Broker/Plus 5.3.0.2

Matt & Adam investigated - the issue was that the OU to which Broker was attempting to move a user object was not present in AD. I have noticed that "5012" errors like this one have been associated with AD OU issues before.
The screen shot above includes the text "MoveEntryAsync" in the middle of the stack trace, which alerted Adam to the fact that the issue was related to a DN move operation.

Connector Entity Search Screen Issue
On UNIFYBroker Service v5.3.2 RTM navigate to Connector Entity Search screen, click on any entity ID
The browser navigates back to the Connectors screen rather than presenting the full details of the record.

UNIFYBroker for chris21 v5.3.0 RTM Agent UI Issue
For the Chirs21 connector on the Agent screen Logon Application field should be optional. In the UNIFYBroker for chris21 v5.3.0 RTM it is mandatory.

Broker Plus Incompletes in sync from adapter to locker
I'm getting this in the log files
Request to sync adapter to locker completed.
Sychronization job completed syncing 524 changes on the 'Active Directory to Person' link from the adapter to the locker. Delayed: 0 Incomplete :524 Denied: 0 Job ID <guid> Duration <time>
What does the incomplete status mean?

Looks like that link is not configured to provision. Is your locker empty? If the link doesn't provision and there is nothing to join onto, then that will also count as incomplete.

Cannot retreive schema for Chris21 DET connector
Chris21 DET Connector is configured as follow:
However, retrieving schema failed with the below error in the log:
20190628,03:22:53,UNIFYBroker,Logging Engine,Information,Log file started.,Minimal
20190628,03:22:53,UNIFYBroker,Connector Engine,Error,"The schema for 'c21 DET Connector' connector was not updated for the following reason: System.AggregateException: One or more errors occurred. ---> System.ArgumentException: An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at Unify.Product.IdentityBroker.Chris21RecordtoChris21FieldDefinitionsAdapter.Transform(IChris21Record sourceValue, Boolean showTranslations)
at Unify.Product.IdentityBroker.Chris21Agent.d__18.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Unify.Product.IdentityBroker.Chris21ConnectorBase.d__33.MoveNext()
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at Unify.Product.IdentityBroker.Chris21ConnectorSchemaProvider.GetSchema(ISchemaProviderFactoryInformation factoryInformation)
at Unify.Product.IdentityBroker.ConnectorEngine.SchemaProviderResult(IOperationalConnector`1 operationalConnector, Func`2 selector, IEnumerable`1 appliedFields)
---> (Inner Exception #0) System.ArgumentException: An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at Unify.Product.IdentityBroker.Chris21RecordtoChris21FieldDefinitionsAdapter.Transform(IChris21Record sourceValue, Boolean showTranslations)
at Unify.Product.IdentityBroker.Chris21Agent.d__18.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Unify.Product.IdentityBroker.Chris21ConnectorBase.d__33.MoveNext()<---
",Normal
Same error with a new Unify.IdentityBroker database as well.
The Frontiner chris21 agent connects without any error.

Run the following in the GTR form in chris21. This will run the same query the connector uses to retrieve its schema.
cbr="componentlist",screen="DET"

Binding UNIFYBroker endpoint/API to https
Hi team,
Is it possible to bind the UNIFYBroker API/endpoint (http://servername:5999[0/1]) to https?

Hi Paul, we don't have it documented, but it is possible.
- Ensure you certificate is installed as a local machine certificate, not a user certificate.
- Follow these instructions To bind an SSL certificate to a port number. The
appid
can be any valid GUID. - Update the configuration for the API. If you're modifying the default API, make sure you have a correctly configured web component ready to confirm the API changes.
Let me know if anything is incorrect or unclear. I'll turn these instructions into proper documentation based on your feedback.
Customer support service by UserEcho