2
votes

The story so far:

  • A couple weeks ago, a field completely disappeared from the AccountExtensionBase table but remained in the Account and FilteredAccount views. This caused the Main Info form in CRM itself (which draws from that table) to stop working completely.

  • To fix the above, I manually removed said field from the definitions of said views, and I edited the Main Info form to no longer reference the missing field.

That left in more-or-less working condition. The only thing that's still broken is adding related entities from an already-open Main Info form. When I try, it throws exception 0x80044150. After learning this, I manually removed the field from the METABASE database and manually removed all references to it in the OrganizationUIBase table. Nothing. CRM won't let me just recreate the field, and I also can't seem to convince it to actually write to the trace log so I can get any more information about what's going on. I know this sometimes comes up when you exceed the 2155 option limit for picklist fields within an entity, but I don't think that's it, because the first thing I tried when the original issue manifested itself was to remove two entire picklist fields that were no longer needed, and that clearly hasn't helped.

So any ideas about what could be causing this, or what I can do to fix it, or even what a possible next step might be? I'm kind of stumped here.

Edit: got the trace logging to work...

at ErrorInformation.LogError() at ErrorInformation..ctor(Exception exception, Uri requestUrl) at MainApplication.Application_Error(Object sender, EventArgs e) at EventHandler.Invoke(Object sender, EventArgs e) at HttpApplication.RaiseOnError() at HttpApplication.RecordError(Exception error) at HttpApplication.ResumeSteps(Exception error) at HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) at HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) at HttpRuntime.ProcessRequest(HttpWorkerRequest wr) at ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)

>MSCRM Platform Error Report:

Error: Exception of type System.Web.HttpUnhandledException was thrown. Error Number: 0x80044150 Error Message: Exception from HRESULT: 0x80044150. Error Details: Exception from HRESULT: 0x80044150. Source File: Not available Line Number: Not available Request URL: http://crmserv/userdefined/edit.aspx?_CreateFromType=1&_CreateFromId={94892C13-A23E-DB11-BBF1-0014221C4264}&etc=10059 Stack Trace Info: Exception of type System.Web.HttpUnhandledException was thrown. at System.Web.UI.Page.HandleError(Exception e) at System.Web.UI.Page.ProcessRequestMain() at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequest(HttpContext context) at System.Web.CallHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) at Microsoft.Crm.Platform.ComProxy.CRMCustomizationClass.Transform(CUserAuth& Caller, CObjectName& SourceObject, Int32 TargetObjectType, Int32 TargetFieldType) at Microsoft.Crm.Application.Platform.Entity.CreateFrom(Int32 sourceEntityType, String sourceEntityId, TransformType transformType) at Microsoft.Crm.Application.Forms.EndUserForm.PopulateDefaultDataIfAvailable() at Microsoft.Crm.Application.Forms.EndUserForm.RetrieveParams() at Microsoft.Crm.Application.Forms.EndUserForm.Initialize(Entity entity) at Microsoft.Crm.Application.Forms.CustomizableForm.Execute(Entity entity, String formId, String formType) at Microsoft.Crm.Application.Forms.CustomizableForm.Execute(Entity entity) at Microsoft.Crm.Application.Pages.UserDefined.DetailPage.ConfigureForm() at Microsoft.Crm.Application.Controls.AppPage.OnPreRender(EventArgs e) at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Page.ProcessRequestMain() Type: Platform


This might be the more useful error report, actually. The above showed up twice, but this one is getting thrown scores of times every minute:

at User.GetPrivilege(String priv, PRIVILEGE_DEPTH depth) at User.GetPrivilege(Int32 objectType, PrivilegeId privilegeId) at AppMenuBar.BuildNewObjectMenu(Menu menuObject, Boolean buildAsSubMenu) at AppFormMenuBar.BuildFileMenu(String formName) at AppFormMenuBar.Execute(PrivilegeCheck privilegeCheck, String formName) at AppFormMenuBar.Execute(PrivilegeCheck privilegeCheck) at AccountDetailPage.ConfigureMenus() at AppPage.OnPreRender(EventArgs e) at Control.PreRenderRecursiveInternal() at Page.ProcessRequestMain() at Page.ProcessRequest() at Page.ProcessRequest(HttpContext context) at CallHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() at HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) at HttpApplication.ResumeSteps(Exception error) at HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) at HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) at HttpRuntime.ProcessRequest(HttpWorkerRequest wr) at ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)

Privilege Check Failed For user: , User Does Not Have Privilege: {9f2b415e-8a0c-430c-bdd1-ad2052b86b02}

Lots of different users show up in the last line. Anything?

1
That error report isn't particularly helpful, my guess is something is messed up internally. It has been a long time since I did anything with CRM 3.0 so not sure I can help with this one.cchamberlain
@cole I added a different error that I'm seeing a lot of. Is that one useful at all?extarbags
That privilege error is typical of a user not having the required security role to do something. Can you run the following query against the CRM DB to see if it comes up with the priv that is lacking on the security role. I added the query to my original answer to make it more readable.cchamberlain

1 Answers

0
votes

It sounds like you are making unsupported direct SQL modifications to the database. If that is the cause of the errors, you are likely in trouble. You say tracing will not turn on, did you add the following keys to the registry and perform IIS reset? - http://support.microsoft.com/kb/907490

EDIT:

Can you run the following query replacing the database name with that from your instance and let me know if a privilege comes up. You are likely missing that privilege for the users security role for whom it is throwing that error.

    SELECT [PrivilegeId]
      ,[Name]
      ,[CanBeLocal]
      ,[CanBeDeep]
      ,[VersionNumber]
      ,[CanBeGlobal]
      ,[CanBeBasic]
      ,[AccessRight]
      ,[IsDisabledWhenIntegrated]
  FROM [MyCrmDatabase_MSCRM].[dbo].[PrivilegeBase]
  WHERE privilegeid='9f2b415e-8a0c-430c-bdd1-ad2052b86b02'