locked
CRM 2013 Plugin PreAccountMerge Custom Error Message Display not working RRS feed

  • Question

  • I have a PreAccountMerge plugin created to error out (throw new InvalidPluginExecutionException) with Custom Error Message when User perform Merge Operation on 2 accounts. Custom Error Message changes based on certain validation. When it throws error, on the user screen, below generic error dialog get displayed, but it doesn't display Custom message from plugin. My all other plugin is working fine and able to display Custom Message on screen as i expected.

    I try putting the InvalidPluginExecutionException very first statement on PreAccountMerge, but still the same. I created sample 30 day trial online CRM Account and deployed same plugin online, it works fine. i am able to see the custom message on screen. I try to disable all plugins & Workflows, to test this, but no luck.

    When i run this plugin, i am able to capture error on CRM Server by enabling trace which shows below error. Any one what could be wrong??

    # CRM Tracing Version 2.0
    # LocalTime: 2014-09-22 09:15:57.609
    # Categories: *:Verbose
    # CallStackOn: Yes
    # ComputerName: crmtestserver
    # CRMVersion: 6.1.0000.0581
    # DeploymentType: OnPremise
    # ScaleGroup: 
    # ServerRole: AppServer, AsyncService, DiscoveryService, ApiServer, HelpServer, DeploymentService, SandboxServer, DeploymentManagementTools, VssWriter, EmailConnector
    
    [2014-09-22 09:15:57.609] Process: w3wp |Organization:00000000-0000-0000-0000-000000000000 |Thread:    3 |Category: Shared |User: 00000000-0000-0000-0000-000000000000 |Level: Verbose |ReqId: 9c5d325e-7093-47e5-a8ce-9376ee8bc8da | CrmDbConnection.Open  ilOffset = 0x2E
    	at CrmDbConnection.Open()  ilOffset = 0x2E
    	at DatabaseService.ExecuteRetrieveCommand(String[] columns, PropertyBag[] conditions, CrmDbConnection connection, Nullable`1 top, Nullable`1 offset, IList`1 orderBy, QueryHints hints, IDictionary collectionToFill)  ilOffset = 0x0
    	at <>c__DisplayClass2.<RetrieveInternal>b__0()  ilOffset = 0x5A
    	at DatabaseService.MeasurePerformance(Action executeAction, Boolean readQuery)  ilOffset = 0xC
    	at DatabaseService.RetrieveInternal(String tableName, String[] columns, PropertyBag[] conditions, Nullable`1 top, Nullable`1 offset, IList`1 orderBy, QueryHints hints, IDictionary collectionToFill)  ilOffset = 0xED
    	at DatabaseService.Retrieve(String tableName, String[] columns, PropertyBag[] conditions)  ilOffset = 0x2C
    	at DatabaseService.RetrieveById(String tableName, Object id, String[] columns)  ilOffset = 0x48
    	at ServerLocatorService.RetrieveForCaching(Table table, Object primaryKey)  ilOffset = 0x20
    	at ServerLocatorService.RetrieveFromCache(Table table, Object primaryKey)  ilOffset = 0x11
    	at ServerLocatorService.RetrieveById(String tableName, Object primaryKey, String[] columns)  ilOffset = 0x43
    	at ServerLocatorService.GetFederationProvider(Guid id, String[] columns)  ilOffset = 0xD
    	at ServerLocatorService.GetFederationProvider(Guid id)  ilOffset = 0x3
    	at LocatorService.GetFederationProvider(Guid id)  ilOffset = 0x7
    	at CrmAuthenticationContext.get_DefaultFederationProvider()  ilOffset = 0xF
    	at CrmAuthenticationContext.GetFederationProviderInternal(Guid orgId)  ilOffset = 0x9F
    	at CrmAuthenticationContext.IsClaimsEnabled(Guid organizationId)  ilOffset = 0x16
    	at ClaimsUtility.InitializeApplication()  ilOffset = 0x7
    	at MainApplication.Application_OnStart()  ilOffset = 0x38
    	at RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)  ilOffset = 0xFFFFFFFF
    	at RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)  ilOffset = 0x34
    	at RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)  ilOffset = 0x89
    	at MethodBase.Invoke(Object obj, Object[] parameters)  ilOffset = 0x6
    	at HttpApplication.InvokeMethodWithAssert(MethodInfo method, Int32 paramCount, Object eventSource, EventArgs eventArgs)  ilOffset = 0x11
    	at HttpApplication.ProcessSpecialRequest(HttpContext context, MethodInfo method, Int32 paramCount, Object eventSource, EventArgs eventArgs, HttpSessionState session)  ilOffset = 0x4B
    	at HttpApplicationFactory.EnsureAppStartCalled(HttpContext context)  ilOffset = 0x35
    	at HttpApplicationFactory.GetApplicationInstance(HttpContext context)  ilOffset = 0x35
    	at HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)  ilOffset = 0x103
    	at ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)  ilOffset = 0x4B
    >ConnectionString: Workstation ID=crmtestserver.w3wp.443;Data Source=crmsqlserver;Initial Catalog=MSCRM_CONFIG;Integrated Security=True;Min Pool Size=2;Connect Timeout=150
    [2014-09-22 09:15:57.687] Process: w3wp |Organization:00000000-0000-0000-0000-000000000000 |Thread:    3 |Category: Platform.Sql |User: 00000000-0000-0000-0000-000000000000 |Level: Verbose |ReqId: 9c5d325e-7093-47e5-a8ce-9376ee8bc8da | CrmDbConnection.InternalExecuteReader  ilOffset = 0x1C
    	at CrmDbConnection.InternalExecuteReader(IDbCommand command, Boolean capturePerfTrace)  ilOffset = 0x1C
    	at CrmDbConnection.ExecuteReader(IDbCommand command, Boolean impersonate, Boolean capturePerfTrace)  ilOffset = 0x10
    	at DatabaseService.ExecuteBaseReader(CrmDbConnection connection, IDbCommand command, String[] columns, IDictionary collectionToFill)  ilOffset = 0x1E
    	at DatabaseService.ExecuteRetrieveCommand(String[] columns, PropertyBag[] conditions, CrmDbConnection connection, Nullable`1 top, Nullable`1 offset, IList`1 orderBy, QueryHints hints, IDictionary collectionToFill)  ilOffset = 0x57
    	at <>c__DisplayClass2.<RetrieveInternal>b__0()  ilOffset = 0x5A
    	at DatabaseService.MeasurePerformance(Action executeAction, Boolean readQuery)  ilOffset = 0xC
    	at DatabaseService.RetrieveInternal(String tableName, String[] columns, PropertyBag[] conditions, Nullable`1 top, Nullable`1 offset, IList`1 orderBy, QueryHints hints, IDictionary collectionToFill)  ilOffset = 0xED
    	at DatabaseService.Retrieve(String tableName, String[] columns, PropertyBag[] conditions)  ilOffset = 0x2C
    	at DatabaseService.RetrieveById(String tableName, Object id, String[] columns)  ilOffset = 0x48
    	at ServerLocatorService.RetrieveForCaching(Table table, Object primaryKey)  ilOffset = 0x20
    	at ServerLocatorService.RetrieveFromCache(Table table, Object primaryKey)  ilOffset = 0x11
    	at ServerLocatorService.RetrieveById(String tableName, Object primaryKey, String[] columns)  ilOffset = 0x43
    	at ServerLocatorService.GetFederationProvider(Guid id, String[] columns)  ilOffset = 0xD
    	at ServerLocatorService.GetFederationProvider(Guid id)  ilOffset = 0x3
    	at LocatorService.GetFederationProvider(Guid id)  ilOffset = 0x7
    	at CrmAuthenticationContext.get_DefaultFederationProvider()  ilOffset = 0xF
    	at CrmAuthenticationContext.GetFederationProviderInternal(Guid orgId)  ilOffset = 0x9F
    	at CrmAuthenticationContext.IsClaimsEnabled(Guid organizationId)  ilOffset = 0x16
    	at ClaimsUtility.InitializeApplication()  ilOffset = 0x7
    	at MainApplication.Application_OnStart()  ilOffset = 0x38
    	at RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)  ilOffset = 0xFFFFFFFF
    	at RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)  ilOffset = 0x34
    	at RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)  ilOffset = 0x89
    	at MethodBase.Invoke(Object obj, Object[] parameters)  ilOffset = 0x6
    	at HttpApplication.InvokeMethodWithAssert(MethodInfo method, Int32 paramCount, Object eventSource, EventArgs eventArgs)  ilOffset = 0x11
    	at HttpApplication.ProcessSpecialRequest(HttpContext context, MethodInfo method, Int32 paramCount, Object eventSource, EventArgs eventArgs, HttpSessionState session)  ilOffset = 0x4B
    	at HttpApplicationFactory.EnsureAppStartCalled(HttpContext context)  ilOffset = 0x35
    	at HttpApplicationFactory.GetApplicationInstance(HttpContext context)  ilOffset = 0x35
    	at HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)  ilOffset = 0x103
    	at ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)  ilOffset = 0x4B
    >SELECT  Id, [ActiveEndpoint], [ActiveMexEndpoint], [Enabled], [IdentityClaim], [MetadataUri], [Name], [PassiveEndpoint], [RelyingPartyActiveIdentifier], [RelyingPartyPassiveIdentifier]  FROM [FederationProvider]   WHERE ((([Id] = '26332692-cd1e-4dd6-bd5b-07326c43302e')) ) 
    [2014-09-22 09:15:57.703] Process: w3wp |Organization:00000000-0000-0000-0000-000000000000 |Thread:    3 |Category: Platform.Sql |User: 00000000-0000-0000-0000-000000000000 |Level: Verbose |ReqId: 9c5d325e-7093-47e5-a8ce-9376ee8bc8da | CrmDbConnection.InternalExecuteReader  ilOffset = 0x135
    	at CrmDbConnection.InternalExecuteReader(IDbCommand command, Boolean capturePerfTrace)  ilOffset = 0x135
    	at CrmDbConnection.ExecuteReader(IDbCommand command, Boolean impersonate, Boolean capturePerfTrace)  ilOffset = 0x10
    	at DatabaseService.ExecuteBaseReader(CrmDbConnection connection, IDbCommand command, String[] columns, IDictionary collectionToFill)  ilOffset = 0x1E
    	at DatabaseService.ExecuteRetrieveCommand(String[] columns, PropertyBag[] conditions, CrmDbConnection connection, Nullable`1 top, Nullable`1 offset, IList`1 orderBy, QueryHints hints, IDictionary collectionToFill)  ilOffset = 0x57
    	at <>c__DisplayClass2.<RetrieveInternal>b__0()  ilOffset = 0x5A
    	at DatabaseService.MeasurePerformance(Action executeAction, Boolean readQuery)  ilOffset = 0xC
    	at DatabaseService.RetrieveInternal(String tableName, String[] columns, PropertyBag[] conditions, Nullable`1 top, Nullable`1 offset, IList`1 orderBy, QueryHints hints, IDictionary collectionToFill)  ilOffset = 0xED
    	at DatabaseService.Retrieve(String tableName, String[] columns, PropertyBag[] conditions)  ilOffset = 0x2C
    	at DatabaseService.RetrieveById(String tableName, Object id, String[] columns)  ilOffset = 0x48
    	at ServerLocatorService.RetrieveForCaching(Table table, Object primaryKey)  ilOffset = 0x20
    	at ServerLocatorService.RetrieveFromCache(Table table, Object primaryKey)  ilOffset = 0x11
    	at ServerLocatorService.RetrieveById(String tableName, Object primaryKey, String[] columns)  ilOffset = 0x43
    	at ServerLocatorService.GetFederationProvider(Guid id, String[] columns)  ilOffset = 0xD
    	at ServerLocatorService.GetFederationProvider(Guid id)  ilOffset = 0x3
    	at LocatorService.GetFederationProvider(Guid id)  ilOffset = 0x7
    	at CrmAuthenticationContext.get_DefaultFederationProvider()  ilOffset = 0xF
    	at CrmAuthenticationContext.GetFederationProviderInternal(Guid orgId)  ilOffset = 0x9F
    	at CrmAuthenticationContext.IsClaimsEnabled(Guid organizationId)  ilOffset = 0x16
    	at ClaimsUtility.InitializeApplication()  ilOffset = 0x7
    	at MainApplication.Application_OnStart()  ilOffset = 0x38
    	at RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)  ilOffset = 0xFFFFFFFF
    	at RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)  ilOffset = 0x34
    	at RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)  ilOffset = 0x89
    	at MethodBase.Invoke(Object obj, Object[] parameters)  ilOffset = 0x6
    	at HttpApplication.InvokeMethodWithAssert(MethodInfo method, Int32 paramCount, Object eventSource, EventArgs eventArgs)  ilOffset = 0x11
    	at HttpApplication.ProcessSpecialRequest(HttpContext context, MethodInfo method, Int32 paramCount, Object eventSource, EventArgs eventArgs, HttpSessionState session)  ilOffset = 0x4B
    	at HttpApplicationFactory.EnsureAppStartCalled(HttpContext context)  ilOffset = 0x35
    	at HttpApplicationFactory.GetApplicationInstance(HttpContext context)  ilOffset = 0x35
    	at HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)  ilOffset = 0x103
    	at ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)  ilOffset = 0x4B

    Monday, September 22, 2014 3:05 PM

Answers

  • please install update rollup3 which got fix for this issue.

    regards.

    Jithesh

    • Marked as answer by Nicksoft2011 Wednesday, September 24, 2014 6:55 PM
    Monday, September 22, 2014 9:09 PM
  • Jithesh,

     thanks for update on this. We already have SP1 installed and current build is 6.1.0.581. 

    Do we still need to install Roll up update 3??

    Thanks,

    Nick

    • Marked as answer by Nicksoft2011 Wednesday, September 24, 2014 6:55 PM
    Tuesday, September 23, 2014 1:30 PM
  • I was able to resolve this issue by installing CRM 2013 SP1 Roll up 1 update (http://support.microsoft.com/kb/2953252which is released on September 23,2014). It did resolved the issue.

    • Marked as answer by Nicksoft2011 Monday, September 29, 2014 12:36 PM
    Wednesday, September 24, 2014 6:57 PM

All replies

  • please install update rollup3 which got fix for this issue.

    regards.

    Jithesh

    • Marked as answer by Nicksoft2011 Wednesday, September 24, 2014 6:55 PM
    Monday, September 22, 2014 9:09 PM
  • Jithesh,

     thanks for update on this. We already have SP1 installed and current build is 6.1.0.581. 

    Do we still need to install Roll up update 3??

    Thanks,

    Nick

    • Marked as answer by Nicksoft2011 Wednesday, September 24, 2014 6:55 PM
    Tuesday, September 23, 2014 1:30 PM
  • I was able to resolve this issue by installing CRM 2013 SP1 Roll up 1 update (http://support.microsoft.com/kb/2953252which is released on September 23,2014). It did resolved the issue.

    • Marked as answer by Nicksoft2011 Monday, September 29, 2014 12:36 PM
    Wednesday, September 24, 2014 6:57 PM