Symptoms
Assigned task items do not show up in the K2 Worklist for users. The notification emails for the tasks are not getting sent out either. Looking at the ViewFlow for the WF instance we can see the correct participants listed at runtime but for whatever reason the users do not get the task item, see: http://screencast.com/t/0qOcKhYv0
We noticed the related error below in the logs:
61007 Permanent failure sending message New Task: System.FormatException: The specified string is not in the form required for an e-mail address.
at System.Net.Mail.MailAddressParser.ParseAddress(String data, Boolean expectMultipleAddresses, Int32andamp index)
at System.Net.Mail.MailAddressParser.ParseAddress(String data)
at System.Net.Mail.MailAddress..ctor(String address, String displayName, Encoding displayNameEncoding)
at SourceCode.MessageBus.Ews.Destination.EwsMessageDestination.GetEmail(AlternativeCollection alternativeCollection)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at System.Linq.Enumerable.Any TSource](IEnumerable`1 source)
at SourceCode.MessageBus.Ews.Destination.EwsMessageDestination.Send(String title, MessageExtendedInformation extended, IEnumerable`1 attachments, MessageBodyReaderb] messageBodies)
at SourceCode.MessageBus.Server.MessageBusRuntime.SourceCode.MessageBus.IMessageDestination.Send(String title, MessageExtendedInformation extended, IEnumerable`1 attachments, MessageBodyReaderm] messageBodies)
at System.Net.Mail.MailAddressParser.ParseAddress(String data, Boolean expectMultipleAddresses, Int32andamp index)
at System.Net.Mail.MailAddressParser.ParseAddress(String data)
at System.Net.Mail.MailAddress..ctor(String address, String displayName, Encoding displayNameEncoding)
at SourceCode.MessageBus.Ews.Destination.EwsMessageDestination.GetEmail(AlternativeCollection alternativeCollection)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at System.Linq.Enumerable.AnyeTSource](IEnumerable`1 source)
at SourceCode.MessageBus.Ews.Destination.EwsMessageDestination.Send(String title, MessageExtendedInformation extended, IEnumerable`1 attachments, MessageBodyReadert] messageBodies)
at SourceCode.MessageBus.Server.MessageBusRuntime.SourceCode.MessageBus.IMessageDestination.Send(String title, MessageExtendedInformation extended, IEnumerable`1 attachments, MessageBodyReaderg] messageBodies)
In the workflow design we are using the 'Get Users From Group(user email)' method for the 'Group' SmartObject, in the Management category on SharePoint 2013, to assign task to the workflow participants (destination users). This was suggested to us as a way to get around group synchronization issue we are experiencing at the moment. As a test, we hard-coded the destination user email, using a datafield, in the Task step but the outcome was the same. When we UNCHECKED the option to 'Notify participants when they receive a work item' the error exception above did not get surfaced in the logs however the participant still do not see the task item in the K2 worklist even though they are listed correctly as the participant for the task in the ViewFlow at runtime.
Diagnoses
It's important to note that Customer syncs AD to their AAD. For this particular scenario, using the 'Get Users From Group(user email)' method for the 'Group' SmartObject, in the Management category in SharePoint 2013, to assign task to the workflow participants will not work. This comes down to how user accounts are set up in AD/AAD, which does not adhere to 'standard' usage hence making the functionality unusable. Ideally, for this functionality to work, K2 requires that the AD Username context matches the email address local part for the user account(s) being retrieved. In other words: User: DomainUser Email: User@Domain.com In this case however user accounts are set up in AD as below: User: DomainS103456 Email: User@Domain.com For this reason the functionality breaks at runtime since the user account name which does not match the email address local part. In other words when the user tries to open a worklist item the 'Destination' does not match and therefore they do not see the task item assigned to their email address.
Resolution
As per described in the DIAGNOSIS section above you will need to make the change in AD/AAD from username@domain to email@domain per Microsoft recommendation of configuring AD/AAD.