0
Completed

System.FormatException: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

Bob Bradley 7 years ago updated by anonymous 7 years ago 6

The above exception was thrown when searching for a DN in the adapter space.

3 issues:

  1. While perfectly reasonable that such a search is nonsensical at a low enough level, the user experience is horrible.  No error should be thrown at all, just no results returned.  If, however, an error has to be returned it should be in the form of a user friendly message on the page (or in the old days this would have been in a dialog) - without the ugly stack trace.
  2. It is not clear from the search page how one should search for the DN of an object that appeared in the logs.  The alignment of the data grid with the column header was skewed and I incorrectly guessed that the column header for IdBId might have been the DN header.
  3. I was unable to clear the adapter entity search filter after this error.

Using: UNIFY Identity Broker Management Studio v5.0.5 Revision #0

Full error message as follows:

System.FormatException: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
   at System.Guid.GuidResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument, String failureArgumentName, Exception innerException)
   at System.Guid.TryParseGuidWithNoStyle(String guidString, GuidResult& result)
   at System.Guid.TryParseGuid(String g, GuidStyles flags, GuidResult& result)
   at System.Guid.Parse(String input)
   at Unify.Connect.Web.GuidIdentifierEntitySearchUtility`1.<.ctor>b__3(AdapterEntityValueCollectionKey schemaKey, String value, IDictionary`2 schema)
   at Unify.Connect.Web.OperatorEntitySearchUtility`1.EntityConversion(AdapterEntityValueCollectionKey schemaKey, String value, IDictionary`2 schemaConfiguration)
   at Unify.Connect.Web.IdentifierEntitySearchUtilityBase`1.GenerateSearchFunction(IIdentifierEntitySearchInformation searchInformation, IDictionary`2 schema)
   at Unify.Connect.Web.IdentifierEntitySearchUtility`2.GenerateSearchFunction(IIdentifierEntitySearchInformation searchInformation, IDictionary`2 schema)
   at Unify.Connect.Web.EntitySearchContainerContext`1.<>c__DisplayClass8.<Evaluate>b__2(IQueryable`1 entity)
   at Unify.Connect.Web.AndEntitySearchContainerOperatorContext`1.Evaluate(IQueryable`1 leftSideQuery, IQueryable`1 rightSideQuery, EntityEvaluator`2 innerQueryableEvalution)
   at Unify.Connect.Web.EntitySearchContainerContext`1.GenerateQueryableFunction(String contextDescriptor, String operator, IQueryable`1 leftSideQuery, EntityEvaluator`2 queryableEvaluation, IQueryable`1 outerQuery)
   at Unify.Connect.Web.EntitySearchContainerContext`1.Evaluate(IEntitySearchContainerInformation contextInformation, IDictionary`2 schema, IQueryable`1 innerQuery, IQueryable`1 outerQuery)
   at Unify.Connect.Web.EntitySearchContainerContext`1.<>c__DisplayClass4.<>c__DisplayClass6.<Evaluate>b__1(IQueryable`1 queryable)
   at Unify.Connect.Web.AndEntitySearchContainerOperatorContext`1.Evaluate(IQueryable`1 leftSideQuery, IQueryable`1 rightSideQuery, EntityEvaluator`2 innerQueryableEvalution)
   at Unify.Connect.Web.EntitySearchContainerContext`1.GenerateQueryableFunction(String contextDescriptor, String operator, IQueryable`1 leftSideQuery, EntityEvaluator`2 queryableEvaluation, IQueryable`1 outerQuery)
   at Unify.Connect.Web.EntitySearchContainerContext`1.<>c__DisplayClass4.<Evaluate>b__0(IEntitySearchContainerInformation innerContainer)
   at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor)
   at Unify.Connect.Web.EntitySearchContainerContext`1.Evaluate(IEntitySearchContainerInformation contextInformation, IDictionary`2 schema, IQueryable`1 innerQuery, IQueryable`1 outerQuery)
   at Unify.Connect.Web.IdentityBrokerEntitySearchController.CurrentBusinessEntities[TInEntity,TOutEntity](IQueryable`1 source, EntityRetrievalInformation information, IDictionary`2 valueSearchUtility, IDictionary`2 entityOrderFunctions, IEntitySearchContainerContext`2 searchContainerContext)
   at Unify.Connect.Web.IdentityBrokerEntitySearchController.CurrentEntities(EntityRetrievalInformation information)
   at Unify.Connect.Web.IdentityBrokerEntitySearchController.SearchEntities(Guid partitionId, Nullable`1 pageSize, Nullable`1 pageNumber, String groupColumn, Nullable`1 ascending, String searchContext)
   at Unify.Connect.Web.AdapterController.SearchEntities(Guid partitionId, Nullable`1 pageSize, Nullable`1 pageNumber, String groupColumn, Nullable`1 ascending, String searchContext)
   at lambda_method(Closure , ControllerBase , Object[] )
   at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__36(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3c()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass45.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3e()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass30.<BeginInvokeActionMethodWithFilters>b__2f(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass1e.<>c__DisplayClass28.<BeginInvokeAction>b__19()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass1e.<BeginInvokeAction>b__1b(IAsyncResult asyncResult)

Answer

Answer
Completed

Hey Bob,

Thanks for raising this one. The issue of clearing the search is fixed in 5.1 onwards, and the user experience of error messages has been improved for future versions of IDB.

GOOD, I'M SATISFIED
Satisfaction mark by Bob Bradley 7 years ago
Under review

Thanks Bob, this will be looked at to improve the experience.

To search for the DN, try searching for the column that makes up the DN.

Yes thanks Adam - that's what I did next.  Thankfully I was searching the wrong adapter because adapter search is presently unusable (since I can't clear out the previous offending search).  How can I reset an adapter search after this error please?

Restarting the site in IIS (or forcing a rebuild, e.g. save the web.config) will do it.

Ouch - OK thanks.  Thought this would be client side filtering ... obviously not.

It is client side. It's cached, however.

Answer
Completed

Hey Bob,

Thanks for raising this one. The issue of clearing the search is fixed in 5.1 onwards, and the user experience of error messages has been improved for future versions of IDB.