Fix: ElvUI Missing Search Bar & Buttons In Banker Window

by Kenji Nakamura 57 views

Having trouble with your ElvUI after the latest update? You're not alone! Many users have reported missing search bars and buttons in the banker window. This guide will walk you through the issue, explain the errors, and hopefully help you find a solution.

Understanding the Issue

After the recent ElvUI update, some players have noticed that the search bar and buttons for sorting, purchasing bags, and toggling bags are missing when they visit a banker. This can be incredibly frustrating, especially when you're trying to manage your inventory efficiently. Let's dive into the details and see what's going on.

What's the Expected Behavior?

Ideally, when you open your bank, you should see a search bar at the top, allowing you to quickly find specific items. Additionally, there should be buttons to help you sort your inventory, purchase new bags, and toggle the display of your bags. These features are essential for smooth inventory management, making the game more enjoyable.

What's Actually Happening?

Instead of the expected interface, players are encountering a missing search bar and buttons. When using the /edebug command, the bank window appears without these crucial elements. Without /edebug enabled, another Blizzard UI Bank window pops up, further complicating the issue. This inconsistent behavior indicates a problem within the ElvUI framework that needs addressing.

Here are a couple of images to illustrate the problem:

Image with /edebug on

Image with /edebug off

Diving into the Lua Errors

To better understand what's causing this issue, let's take a look at the Lua errors that are being generated. These errors provide valuable clues about where the problem lies within the ElvUI code.

Error #1: With /edebug On

ERROR #1 with /edebug on
7x ElvUI/Core/Modules/Bags/Bags.lua:2798: attempt to index local 'panel' (a nil value)
[ElvUI/Core/Modules/Bags/Bags.lua]:2798: in function <ElvUI/Core/Modules/Bags/Bags.lua:2797>
[tail call]: ?
[ElvUI/Core/Modules/Bags/Bags.lua]:3089: in function <ElvUI/Core/Modules/Bags/Bags.lua:3087>
[tail call]: ?
[LibSharedMedia-3.0-8020003/CallbackHandler-1.0-8/CallbackHandler-1.0.lua]:109: in function <...edia-3.0/CallbackHandler-1.0/CallbackHandler-1.0.lua:109>
[C]: ?
[LibSharedMedia-3.0-8020003/CallbackHandler-1.0-8/CallbackHandler-1.0.lua]:19: in function <...edia-3.0/CallbackHandler-1.0/CallbackHandler-1.0.lua:15>
[LibSharedMedia-3.0-8020003/CallbackHandler-1.0-8/CallbackHandler-1.0.lua]:54: in function 'Fire'
[ElvUI_Libraries/Core/Ace3/AceEvent-3.0-4/AceEvent-3.0.lua]:120: in function <...UI_Libraries/Core/Ace3/AceEvent-3.0/AceEvent-3.0.lua:119>

Locals:
self = <table> {
 IsEquipmentSlot = <table> {
 }
 BagFrame = ElvUI_ContainerFrame {
 }
 BAG_FILTER_ICONS = <table> {
 }
 BagIndice = <table> {
 }
 name = "ElvUI_Bags"
 QuestKeys = <table> {
 }
 QuestColors = <table> {
 }
 ItemLevelSlots = <table> {
 }
 defaultModuleState = true
 SortUpdateTimer = Frame {
 }
 SellFrame = ElvUIVendorGraysFrame {
 }
 CharacterBanks = <table> {
 }
 CHARACTERBANK_SIZE = 98
 AutoToggleClose = <table> {
 }
 BankTab = 1
 BankFrame = ElvUI_BankContainerFrame {
 }
 WARBANDBANK_SIZE = 98
 modules = <table> {
 }
 Initialized = true
 ProfessionColors = <table> {
 }
 AssignmentColors = <table> {
 }
 baseName = "ElvUI"
 db = <table> {
 }
 BagFrames = <table> {
 }
 CharacterBankIndexs = <table> {
 }
 numTrackedTokens = 0
 QuestSlots = <table> {
 }
 enabledState = true
 GearFilters = <table> {
 }
 ExcludeGrays = <table> {
 }
 moduleName = "Bags"
 WarbandBanks = <table> {
 }
 BindText = <table> {
 }
 defaultModuleLibraries = <table> {
 }
 WarbandIndexs = <table> {
 }
 Dropdown = <table> {
 }
 orderedModules = <table> {
 }
 ExcludeVendors = <table> {
 }
 AutoToggleEvents = <table> {
 }
 hooks = <table> {
 }
}
panel = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to index local 'panel' (a nil value)"

This error message, attempt to index local 'panel' (a nil value), indicates that the code is trying to access a variable named panel, but it's currently set to nil. This typically happens when the panel hasn't been properly initialized or has been inadvertently cleared. The error occurs in the Bags.lua file within the ElvUI core modules, specifically at line 2798. This suggests that there's an issue with how the bank panel is being handled within the ElvUI bags module.

Error #2: With /edebug Off

ERROR #2 with /edebug off
1x ...ceBlizzard_MoneyFrame/Classic/MoneyFrame.lua:156: attempt to perform arithmetic on local 'money' (a nil value)
[Blizzard_MoneyFrame/Classic/MoneyFrame.lua]:156: in function 'MoneyFrame_Update'
[Blizzard_StaticPopup_Frame/Classic/StaticPopup.lua]:743: in function 'OnShow'
[Blizzard_StaticPopup/StaticPopup.lua]:988: in function <Blizzard_StaticPopup/StaticPopup.lua:982>
[C]: ?
[C]: in function 'Show'
[Blizzard_StaticPopup/StaticPopup.lua]:743: in function <Blizzard_StaticPopup/StaticPopup.lua:278>
[C]: ?
[C]: ?
[C]: ?
[C]: ?
[C]: in function 'StaticPopup_Show'
[*BankFrame.xml:263_OnClick]:2: in function <[string "*BankFrame.xml:263_OnClick"]:1>

Locals:
frameName = "StaticPopup1MoneyFrame"
money = nil
forceShow = nil
frame = StaticPopup1MoneyFrame {
 CopperButton = StaticPopup1MoneyFrameCopperButton {
 }
 info = <table> {
 }
 small = 1
 GoldButton = StaticPopup1MoneyFrameGoldButton {
 }
 trialErrorButton = StaticPopup1MoneyFrameTrialErrorButton {
 }
 SilverButton = StaticPopup1MoneyFrameSilverButton {
 }
 moneyType = "STATIC"
}
info = <table> {
 collapse = 1
}
(*temporary) = 10000
(*temporary) = 100
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to perform arithmetic on local 'money' (a nil value)"
COPPER_PER_SILVER = 100
SILVER_PER_GOLD = 100

This second error, attempt to perform arithmetic on local 'money' (a nil value), suggests an issue with the money frame. The code is trying to perform a calculation on a variable named money, but it's currently nil. This error occurs in the MoneyFrame.lua file, which is part of the Blizzard UI. It's triggered when the game attempts to update the money display in a static popup, which likely happens when you interact with the banker.

Troubleshooting Steps

Before diving deeper into potential fixes, it's essential to ensure you've covered the basics. Here are some steps to verify the issue and rule out common causes:

  • Verify ElvUI is Up to Date: Use the /estatus command in the game to check if your ElvUI is the latest version. Outdated versions can often have bugs that are fixed in newer releases. You should also check the Changelog for known issues and fixes related to the update.
  • Check Default UI and Issue Tracker: Make sure the problem isn't present in the default World of Warcraft UI. Disable ElvUI and see if the search bar and buttons appear in the standard bank window. Also, search the Issue Tracker to see if others have reported the same problem.
  • Read the Troubleshooting Steps: Ensure you've gone through the standard troubleshooting procedures, including disabling other addons to check for conflicts. Sometimes, other addons can interfere with ElvUI, causing unexpected issues.

Potential Solutions and Workarounds

Now that we've identified the problem and looked at the error messages, let's explore some potential solutions and workarounds.

1. Update ElvUI

The first and most straightforward solution is to ensure you're running the latest version of ElvUI. Developers often release updates to fix bugs and address issues reported by users. To update ElvUI:

  • Go to the Tukui website or use the Tukui client.
  • Download the latest version of ElvUI.
  • Replace the old ElvUI folder in your World of Warcraft _retail_\Interface\AddOns\ directory with the new one.
  • Restart your game and check if the issue is resolved.

2. Disable Other Addons

Sometimes, conflicts between addons can cause unexpected behavior. To check if another addon is interfering with ElvUI, try disabling all other addons and see if the search bar and buttons reappear. If they do, you can then re-enable addons one by one to identify the culprit.

  • Exit World of Warcraft.
  • Go to your _retail_\Interface\AddOns\ directory.
  • Move all addon folders to a temporary folder outside the AddOns directory.
  • Launch World of Warcraft and see if the issue persists.
  • If the issue is resolved, move the addon folders back one by one, launching the game each time to check for the conflict.

3. Reset ElvUI Configuration

It's possible that your ElvUI configuration has become corrupted. Resetting ElvUI to its default settings can sometimes fix these issues. Be aware that this will remove your custom settings, so you'll need to reconfigure ElvUI afterward.

  • In the game, type /elvui to open the ElvUI settings panel.
  • Go to the