Maintenance for the week of April 6:
• ESO Store and Account System for maintenance – April 8, 9:00AM EDT (13:00 UTC) - 6:00PM EDT (22:00 UTC)
We are currently investigating connection issues some players are having on the European megaservers. We will update as new information becomes available.

Error Opening Tomes Interface

c363b
c363b
✭✭✭
When I tried to open the Tomes interface ingame it produced lots of error code with this error: E89AA440. The Tomes screen failed to open from the Alt menu or with F4.
  • c363b
    c363b
    ✭✭✭
    /EsoUI/Ingame/DirectPurchase/DirectPurchase_Manager.lua:42: Attempt to access a private function 'QuerySkuCatalog' from insecure code. The callstack became untrusted 19 stack frame(s) from the top.
    stack traceback:
    /EsoUI/Ingame/DirectPurchase/DirectPurchase_Manager.lua:42: in function 'DirectPurchase_Manager:RequestCatalog'
    /EsoUI/Ingame/TamrielTomes/TamrielTomesScreen_Shared.lua:763: in function 'ZO_TamrielTomesScreen_Shared:OnShowing'
    /EsoUI/Ingame/TamrielTomes/Keyboard/TamrielTomesScreen_Keyboard.lua:317: in function 'ZO_TamrielTomesScreen_Keyboard:OnShowing'
    /EsoUI/Libraries/Utility/BaseObject.lua:324: in function 'ZO_DeferredInitializingObject:OnStateChanged'
    /EsoUI/Libraries/Utility/BaseObject.lua:304: in function 'callback'
    /EsoUI/Libraries/Utility/ZO_CallbackObject.lua:132: in function 'ZO_CallbackObjectMixin:FireCallbacks'
    /EsoUI/Libraries/ZO_Scene/ZO_Scene.lua:151: in function 'ZO_Scene:SetState'
    /EsoUI/Libraries/ZO_Scene/ZO_SceneManager_Base.lua:213: in function 'ZO_SceneManager_Base:ShowScene'
    /EsoUI/Libraries/ZO_Scene/ZO_SceneManager_Leader.lua:309: in function 'ZO_SceneManager_Leader:ShowScene'
    /EsoUI/Libraries/ZO_Scene/ZO_SceneManager_Leader.lua:392: in function 'ZO_SceneManager_Leader:OnSceneStateHidden'
    /EsoUI/Libraries/ZO_Scene/ZO_SceneManager_Base.lua:287: in function 'ZO_SceneManager_Base:OnSceneStateChange'
    /EsoUI/Libraries/ZO_Scene/ZO_SceneManager_Leader.lua:339: in function 'ZO_SceneManager_Leader:OnSceneStateChange'
    /EsoUI/Ingame/Scenes/IngameSceneManager.lua:409: in function 'ZO_IngameSceneManager:OnSceneStateChange'
    /EsoUI/Libraries/ZO_Scene/ZO_Scene.lua:152: in function 'ZO_Scene:SetState'
    /EsoUI/Libraries/ZO_Scene/ZO_Scene.lua:284: in function 'ZO_Scene:OnTransitionComplete'
    /EsoUI/Libraries/ZO_Scene/ZO_Scene.lua:279: in function 'ZO_Scene:DetermineIfTransitionIsComplete'
    /EsoUI/Libraries/ZO_Scene/ZO_Scene.lua:201: in function 'ZO_Scene:OnSceneFragmentStateChange'
    /EsoUI/Libraries/ZO_Scene/ZO_SceneFragment.lua:147: in function 'ZO_SceneFragment:SetState'
    /EsoUI/Libraries/ZO_Scene/ZO_SceneFragment.lua:157: in function 'ZO_SceneFragment:OnHidden'
    /EsoUI/Libraries/ZO_Scene/ZO_SceneFragmentTemplates.lua:75: in function '(anonymous)'
  • code65536
    code65536
    ✭✭✭✭✭
    ✭✭✭✭✭
    This is a callstack taint error, caused by an addon.

    Based on the other reports that I've seen, I believe it's likely related to LibMainMenu-2.0, but I have not personally verified this.
    Nightfighters ― PC/NA and PC/EU

    Dungeons and Trials:
    Personal best scores:
    Dungeon trifectas:
    PC/Console Add-Ons: Combat AlertsGroup Buff Panels
    Media: YouTubeTwitch
  • imPDA
    imPDA
    ✭✭✭✭
    votan found probably a correct root of this problem, it is connected to how scenes work internally, if your fragment is the last to disappear in previous scene, it calls next scene, and since it is called from custom fragment, it considered to be not secure code, it causes insecurity error.

    If you can recall what last addon window was active, this addon needs to be fixed. Basically, it is true for all addons using scenes manager and fragments.

    It is not related to LibMainMenu-2.0, because I decided not to use it for a new addon, but this error still occurs. But as LibMainMenu-2.0 uses custom fragments, so any addon using is involved.
    Your Friendly Neighborhood PvP Enjoyer (prior to U48)
  • code65536
    code65536
    ✭✭✭✭✭
    ✭✭✭✭✭
    Oh, that's interesting. But we don't really have much control over the order in which fragments are unwound when changing scenes, do we?
    Nightfighters ― PC/NA and PC/EU

    Dungeons and Trials:
    Personal best scores:
    Dungeon trifectas:
    PC/Console Add-Ons: Combat AlertsGroup Buff Panels
    Media: YouTubeTwitch
  • imPDA
    imPDA
    ✭✭✭✭
    Yes, it looks like it. I placed my custom fragment first in fragment list, then also set fade duration to 50 (200 is default) and it mostly resolved the issue for now. If you set fade duration to 150 and place it to the end of list (as me b4), it will still appear sometimes, if you spam two buttons for example, so I believe this is really timing and order problem or fragments.

    I can't think about a good solution, I have not examined scenes and fragments source code well :D

    I also failed to get error with Item Set Browser today, but initially I got it every time (with Perfect Pixel enabled), so I wonder if some fragments will let you consistently avoid this error as PP removes some of them.
    Your Friendly Neighborhood PvP Enjoyer (prior to U48)
  • code65536
    code65536
    ✭✭✭✭✭
    ✭✭✭✭✭
    imPDA wrote: »
    Yes, it looks like it. I placed my custom fragment first in fragment list, then also set fade duration to 50 (200 is default) and it mostly resolved the issue for now. If you set fade duration to 150 and place it to the end of list (as me b4), it will still appear sometimes, if you spam two buttons for example, so I believe this is really timing and order problem or fragments.

    I can't think about a good solution, I have not examined scenes and fragments source code well :D

    I also failed to get error with Item Set Browser today, but initially I got it every time (with Perfect Pixel enabled), so I wonder if some fragments will let you consistently avoid this error as PP removes some of them.

    So, the behavior of turning the player's character to face the camera and then zooming in on the character is handled by a base-game fragment, but Perfect Pixel removes that fragment. Since that fragment involves turning your character and zooming/unzooming the camera, it wouldn't surprise me if the sheer duration of that fragment makes it so that it's often the last fragment to go. But that's just a guess.

    I've never once encountered this taint error, and I have very often swapped between my EJ addons and the tome. I also don't use Perfect Pixel or LibMainMenu-2.0, so if having those can sometimes trigger this problem, then it's a reasonable guess that they're either using a custom fragment that I'm not using in EJ, or that EJ is using a base-game fragment that they're not using. And off the top of my head, I know that the turn-and-zoom fragment is one that EJ uses but that PP then removes.
    Edited by code65536 on April 6, 2026 6:03PM
    Nightfighters ― PC/NA and PC/EU

    Dungeons and Trials:
    Personal best scores:
    Dungeon trifectas:
    PC/Console Add-Ons: Combat AlertsGroup Buff Panels
    Media: YouTubeTwitch
  • Gandalf_72
    Gandalf_72
    ✭✭✭✭
    c363b wrote: »
    When I tried to open the Tomes interface ingame it produced lots of error code with this error: E89AA440. The Tomes screen failed to open from the Alt menu or with F4.

    Same.
    PC EU.

    yu62k3bgke6l.png

    hnl5816bveyf.png
    /EsoUI/Ingame/DirectPurchase/DirectPurchase_Manager.lua:42: Attempt to access a private function 'QuerySkuCatalog' from insecure code. The callstack became untrusted 19 stack frame(s) from the top.
    stack traceback:
    /EsoUI/Ingame/DirectPurchase/DirectPurchase_Manager.lua:42: in function 'DirectPurchase_Manager:RequestCatalog'
    	<Locals> self = [table:1]{fireCallbackDepth = 0} </Locals>
    /EsoUI/Ingame/TamrielTomes/TamrielTomesScreen_Shared.lua:763: in function 'ZO_TamrielTomesScreen_Shared:OnShowing'
    	<Locals> self = [table:2]{currentCurrencyAmount = 5474, initialized = T, currentTierIndex = 1, nextTimeRemainingUpdateS = 5771.8139648438, currentRewardTrackId = 1, selectedTomeIndex = 1, pendingPreviewType = 0, areKeybindsAdded = T, selectedTomeId = 1, activePreviewType = 0} </Locals>
    /EsoUI/Ingame/TamrielTomes/Keyboard/TamrielTomesScreen_Keyboard.lua:317: in function 'ZO_TamrielTomesScreen_Keyboard:OnShowing'
    	<Locals> self = [table:2] </Locals>
    /EsoUI/Libraries/Utility/BaseObject.lua:324: in function 'ZO_DeferredInitializingObject:OnStateChanged'
    	<Locals> self = [table:2], _ = "hidden", newState = "showing" </Locals>
    /EsoUI/Libraries/Utility/BaseObject.lua:304: in function 'callback'
    /EsoUI/Libraries/Utility/ZO_CallbackObject.lua:132: in function 'ZO_CallbackObjectMixin:FireCallbacks'
    	<Locals> self = [table:3]{restoresHUDSceneToggleUIMode = F, state = "showing", wasShownInGamepadPreferredMode = F, fireCallbackDepth = 1, restoresHUDSceneToggleGameMenu = F, name = "TamrielTomesSceneKeyboard", disallowEvaluateTransitionCompleteCount = 1, wasRequestedToShowInGamepadPreferredMode = F}, eventName = "StateChange", registry = [table:4]{}, callbackInfoIndex = 1, callbackInfo = [table:5]{4 = F}, callback = /EsoUI/Libraries/Utility/BaseObject.lua:304, deleted = F </Locals>
    /EsoUI/Libraries/ZO_Scene/ZO_Scene.lua:151: in function 'ZO_Scene:SetState'
    	<Locals> self = [table:3], newState = "showing", oldState = "hidden", name = "TamrielTomesSceneKeyboard" </Locals>
    /EsoUI/Libraries/ZO_Scene/ZO_SceneManager_Base.lua:213: in function 'ZO_SceneManager_Base:ShowScene'
    	<Locals> self = [table:6]{remoteSceneSequenceNumber = 339, hudUISceneName = "hudui", hudUISceneHidesAutomatically = T, numTopLevelShown = 0, isLoadingScreenShown = F, numRemoteTopLevelShown = 0, hudSceneName = "hud", initialized = F, fireCallbackDepth = 0, exitUIModeOnChatFocusLost = F}, scene = [table:3], sequenceNumber = 339 </Locals>
    /EsoUI/Libraries/ZO_Scene/ZO_SceneManager_Leader.lua:309: in function 'ZO_SceneManager_Leader:ShowScene'
    	<Locals> self = [table:6], scene = [table:3] </Locals>
    /EsoUI/Libraries/ZO_Scene/ZO_SceneManager_Leader.lua:392: in function 'ZO_SceneManager_Leader:OnSceneStateHidden'
    	<Locals> self = [table:6], scene = [table:7]{restoresHUDSceneToggleUIMode = F, state = "hidden", wasShownInGamepadPreferredMode = F, fireCallbackDepth = 0, restoresHUDSceneToggleGameMenu = F, name = "mailInbox", disallowEvaluateTransitionCompleteCount = 1, wasRequestedToShowInGamepadPreferredMode = F}, lastSceneGroup = [table:8]{state = "hidden", activeScene = 1, fireCallbackDepth = 0}, nextSceneGroup = [table:9]{state = "showing", activeScene = 1, fireCallbackDepth = 0}, currentNextScene = [table:3] </Locals>
    /EsoUI/Libraries/ZO_Scene/ZO_SceneManager_Base.lua:287: in function 'ZO_SceneManager_Base:OnSceneStateChange'
    	<Locals> self = [table:6], scene = [table:7], oldState = "hiding", newState = "hidden" </Locals>
    /EsoUI/Libraries/ZO_Scene/ZO_SceneManager_Leader.lua:339: in function 'ZO_SceneManager_Leader:OnSceneStateChange'
    	<Locals> self = [table:6], scene = [table:7], oldState = "hiding", newState = "hidden" </Locals>
    /EsoUI/Ingame/Scenes/IngameSceneManager.lua:409: in function 'ZO_IngameSceneManager:OnSceneStateChange'
    	<Locals> self = [table:6], scene = [table:7], oldState = "hiding", newState = "hidden" </Locals>
    /EsoUI/Libraries/ZO_Scene/ZO_Scene.lua:152: in function 'ZO_Scene:SetState'
    	<Locals> self = [table:7], newState = "hidden", oldState = "hiding", name = "mailInbox" </Locals>
    /EsoUI/Libraries/ZO_Scene/ZO_Scene.lua:284: in function 'ZO_Scene:OnTransitionComplete'
    	<Locals> self = [table:7], nextState = "hidden" </Locals>
    /EsoUI/Libraries/ZO_Scene/ZO_Scene.lua:279: in function 'ZO_Scene:DetermineIfTransitionIsComplete'
    	<Locals> self = [table:7], nextState = "hidden" </Locals>
    /EsoUI/Libraries/ZO_Scene/ZO_Scene.lua:201: in function 'ZO_Scene:OnSceneFragmentStateChange'
    	<Locals> self = [table:7], fragment = [table:10]{animationTemplate = "FadeSceneAnimation", duration = 200, allowShowHideTimeUpdates = F, state = "hidden"}, oldState = "hiding", newState = "hidden" </Locals>
    /EsoUI/Libraries/ZO_Scene/ZO_SceneFragment.lua:147: in function 'ZO_SceneFragment:SetState'
    	<Locals> self = [table:10], newState = "hidden", oldState = "hiding", currentScene = [table:7] </Locals>
    /EsoUI/Libraries/ZO_Scene/ZO_SceneFragment.lua:157: in function 'ZO_SceneFragment:OnHidden'
    	<Locals> self = [table:10] </Locals>
    /EsoUI/Libraries/ZO_Scene/ZO_SceneFragmentTemplates.lua:75: in function '(anonymous)'
    	<Locals> _ = ud, completedPlaying = T </Locals>
    
    
    PC | EU
Sign In or Register to comment.