Error Opening 10.2.200 for Specific User

I have a user that receives the below error when trying to open 10.2.200.
He can open it in the classic view, but the shell and active home pages throw the error.
I have purged his personalizations and cleared out his cache, but it still happens.

Application Error

Exception caught in: Epicor.ServiceModel

Error Detail

Message: Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

Table: HomeTile
GroupID=‘2’ TileID=‘10’ SysRowID=‘00000000-0000-0000-0000-000000000000’: ForeignKeyConstraint GroupToTile requires the child key values (2) to exist in the parent table.
Inner Exception Message: Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
Program: Epicor.ServiceModel.dll
Method: CopyTSTableToDataTable

Did you set up the permision for him to access Active Home Page?

I’m not familiar with that.
Where would one locate the permissions for AHP?

In the Menu Maintenance, at the bottom there is one fodler called Home Page.

Yes, he has permissions to it.

Can you paste complete trace, please?

Application Error

Exception caught in: Epicor.ServiceModel

Error Detail

Message: Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

Table: HomeTile
GroupID=‘2’ TileID=‘10’ SysRowID=‘00000000-0000-0000-0000-000000000000’: ForeignKeyConstraint GroupToTile requires the child key values (2) to exist in the parent table.
Inner Exception Message: Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
Program: Epicor.ServiceModel.dll
Method: CopyTSTableToDataTable

Client Stack Trace

at Ice.DatasetAdapter.CopyTSTableToDataTable[TIceRow,TDataTable](IceTable1 sourceTSTable, TDataTable destinationTable) at lambda_method(Closure , IIceTable , DataTable ) at Ice.DatasetAdapter.Copy(IceTableset sourceTableset, DataSet destinationDataset) at Ice.Proxy.BO.ShellLayoutImpl.GetHomePageForUser(String& warningLayoutNoAccess) at IceShell.Apps.Layout.HomePageDataManager.<>c__DisplayClass12_0.<LoadHomePageData>b__0(ShellLayoutImpl bo) at IceShell.Apps.Layout.ShellLayoutBOWrapper.CallBOMethod[TReturn](Func2 actionToRun)
at IceShell.Apps.Layout.HomePageDataManager.LoadHomePageData()
at IceShell.Apps.Layout.HomePageDataManager.GetHomePageData(HomePageAdapter homePageAdapter)
at IceShell.Apps.Adapters.HomePageAdapter.get_HomePageData()
at IceShell.Apps.Home.HomePageApp.loadTiles()
at IceShell.Apps.Home.HomePageApp.HomePageApp_Loaded(Object sender, RoutedEventArgs e)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root)
at MS.Internal.LoadedOrUnloadedOperation.DoWork()
at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at Ice.Lib.UI.ApplicationWatcher.StartApplication(ApplicationContext context)
at Ice.Lib.UI.App.IceShellLaunch.<>c__DisplayClass7_0.b__0()
at Ice.Lib.UI.App.IceShellLaunch.ShowMenuForm()
at Ice.Lib.UI.App.LaunchBase.ShowDialog(String[] args)

Inner Exception

Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

at System.Data.DataSet.EnableConstraints()
at System.Data.DataSet.set_EnforceConstraints(Boolean value)
at System.Data.DataTable.EndLoadData()
at Ice.DatasetAdapter.CopyTSTableToDataTable[TIceRow,TDataTable](IceTable`1 sourceTSTable, TDataTable destinationTable)

I think there is a permission missing based on this part of the Client stack trace. It is on the fourth line of the Client stack Trace

This leads me to believe that there’s a corrupt tile in one of his groups.
No idea how to reset someone’s layout, though.

Well if you are cloud (like me) you need to create a ticket. But perhap you can try going into the User Account Maintenance and then in the bottom right part of the screen there is an option to select the Default published layout.

this may sound kind of dumb, but have you deleted the cache / temp client folder?

I have seen some similar errors in 10.0 and 10.1 don´t know exactly why, but after deleting the cache / temp folder everything start working properly.

Ruben, that was the first thing I tried. :slight_smile:

shame… well it was worth to try. Every seems to point to a personalization/customization issue.

It does. I actually had the user go into classic and delete all groups and favorites.
No change to the message, though.

Perhaps looking in this folder?
C:\ProgramData\Epicor\server\yourcompanyID\Customization\DefaultLayout

or in here

C:\Users\userID\AppData\Local\Epicor

I know in those folders there are some config files.

Regards

I’ve removed the folder from C:\ProgramData already.

What would you recommend doing to the user.config file in the AppData?
I’m not familiar with that one.

Well, one time that I had a user with an error message related to layout or config files, I just copied my file to his folder and it worked.

Regards

Here’s the script I got from support that worked:

delete from ice.shelllayoutpersonal where userid = 'username'

If you see this post down the road and have the same issue, be sure to try it out in TEST first!

3 Likes