I’ve been sitting inside the the Follower version of Operation: Floodgate, tinkering with my UI, and a few times now I’ve - seemingly at random - seen an explosion of LUA errors. The biggest offender seems to be
Blizzard_UnitFrame/Shared/CompactUnitFrame.lua:1179: attempt to compare local 'health' (a secret value)
This one
, once it gets going, generates a few errors per second, and doesn’t stop (until I reload UI). I think the most recent time it happened, it also coincided with one of my action bars disappearing - I tried dragging an ability to it, and it was just not there.
In addition to it, there’s a couple of other similar errors coming from the same file:
Blizzard_UnitFrame/Shared/CompactUnitFrame.lua:1151: attempt to compare local 'maxHealth' (a secret value)
Blizzard_UnitFrame/Shared/CompactUnitFrame.lua:1026: attempt to perform boolean test on local 'checkedRange' (a secret value)
I don’t know if dumping the errors is useful, but here they are:
8313x ...ddOns/Blizzard_UnitFrame/Shared/CompactUnitFrame.lua:1179: attempt to compare local 'health' (a secret value)
[Blizzard_UnitFrame/Shared/CompactUnitFrame.lua]:1179: in function 'CompactUnitFrame_UpdateHealPrediction'
[Blizzard_UnitFrame/Shared/CompactUnitFrame.lua]:240: in function <...ddOns/Blizzard_UnitFrame/Shared/CompactUnitFrame.lua:224>
Locals:
frame = CompactPartyFrameMember1 {
dispelDebuffFrames = <table> {
}
DispelOverlay = Frame {
}
DispelOverlayAuraOffset = 0
Debuff2 = CompactPartyFrameMember1Debuff2 {
}
maxDispelDebuffs = 3
powerBar = CompactPartyFrameMember1PowerBar {
}
privateAuraBorderScale = 1.800000
updateAllEvent = "GROUP_ROSTER_UPDATE"
myHealPrediction = CompactPartyFrameMember1MyHealPrediction {
}
CenterDefensiveBuff = Button {
}
Debuff1 = CompactPartyFrameMember1Debuff1 {
}
groupType = 4
overHealAbsorbGlow = CompactPartyFrameMember1OverHealAbsorbGlow {
}
newUnit = true
myHealAbsorbOverlay = CompactPartyFrameMember1MyHealAbsorbOverlay {
}
totalAbsorbOverlay = CompactPartyFrameMember1TotalAbsorbOverlay {
}
unit = "player"
unitExists = true
aurasDirty = false
dispels = <table> {
}
maxBuffs = 6
editModeStatus = "IncomingSummonPending"
displayedUnit = "player"
debuffs = <table> {
}
PrivateAuraAnchor4 = Frame {
}
privateAuraSize = 29.700000
background = CompactPartyFrameMember1Background {
}
IsPingable = true
healthBar = CompactPartyFrameMember1HealthBar {
}
overAbsorbGlow = CompactPartyFrameMember1OverAbsorbGlow {
}
PrivateAuraAnchor5 = Frame {
}
PrivateAuraAnchors = <table> {
}
totalAbsorb = CompactPartyFrameMember1TotalAbsorb {
}
name = CompactPartyFrameMember1Name {
}
aggroHighlight = CompactPartyFrameMember1AggroHighlight {
}
PrivateAuraAnchor3 = Frame {
}
myHealAbsorbRightShadow = CompactPartyFrameMember1MyHealAbsorbRightShadow {
}
healPredictionDirty = true
selectionHighlight = CompactPartyFrameMember1SelectionHighlight {
}
Debuff3 = CompactPartyFrameMember1Debuff3 {
}
myHealAbsorbLeftShadow = CompactPartyFrameMember1MyHealAbsorbLeftShadow {
}
debuffFrames = <table> {
}
PrivateAuraAnchor2 = Frame {
}
bigDefensives = <table> {
}
buffs = <table> {
}
dispelsChanged = false
needsUpdate = true
statusText = CompactPartyFrameMember1StatusText {
}
inVehicle = false
debuffsChanged = false
roleIcon = CompactPartyFrameMember1RoleIcon {
}
otherHealPrediction = CompactPartyFrameMember1OtherHealPrediction {
}
PrivateAuraAnchor1 = Frame {
}
optionTable = <table> {
}
isLootObject = false
TempMaxHealthLoss = CompactPartyFrameMember1TempMaxHealthLoss {
}
hideCastbar = false
powerBarUsedHeight = 8
outOfRange = <no value>
myHealAbsorb = CompactPartyFrameMember1MyHealAbsorb {
}
buffsChanged = false
maxDebuffs = 3
centerStatusIcon = CompactPartyFrameMember1CenterStatusIcon {
}
readyCheckIcon = CompactPartyFrameMember1ReadyCheckIcon {
}
buffFrames = <table> {
}
}
_ = <no value>
maxHealth = <no value>
health = <no value>
myIncomingHeal = <no value>
allIncomingHeal = <no value>
totalAbsorb = <no value>
myCurrentHealAbsorb = <no value>
(*temporary) = "player"
(*temporary) = <no value>
(*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 compare local 'health' (a secret value)"
MAX_INCOMING_HEAL_OVERFLOW = 1.050000
1x ...ddOns/Blizzard_UnitFrame/Shared/CompactUnitFrame.lua:1151: attempt to compare local 'maxHealth' (a secret value)
[Blizzard_UnitFrame/Shared/CompactUnitFrame.lua]:1151: in function 'CompactUnitFrame_UpdateHealPrediction'
[Blizzard_UnitFrame/Shared/CompactUnitFrame.lua]:240: in function <...ddOns/Blizzard_UnitFrame/Shared/CompactUnitFrame.lua:224>
Locals:
frame = CompactPartyFrameMember1 {
dispelDebuffFrames = <table> {
}
DispelOverlay = Frame {
}
DispelOverlayAuraOffset = 0
Debuff2 = CompactPartyFrameMember1Debuff2 {
}
maxDispelDebuffs = 3
powerBar = CompactPartyFrameMember1PowerBar {
}
privateAuraBorderScale = 1.800000
updateAllEvent = "GROUP_ROSTER_UPDATE"
myHealPrediction = CompactPartyFrameMember1MyHealPrediction {
}
CenterDefensiveBuff = Button {
}
Debuff1 = CompactPartyFrameMember1Debuff1 {
}
groupType = 4
overHealAbsorbGlow = CompactPartyFrameMember1OverHealAbsorbGlow {
}
newUnit = true
myHealAbsorbOverlay = CompactPartyFrameMember1MyHealAbsorbOverlay {
}
totalAbsorbOverlay = CompactPartyFrameMember1TotalAbsorbOverlay {
}
unit = "player"
unitExists = true
aurasDirty = false
dispels = <table> {
}
maxBuffs = 6
editModeStatus = "IncomingSummonPending"
displayedUnit = "player"
debuffs = <table> {
}
PrivateAuraAnchor4 = Frame {
}
privateAuraSize = 29.700000
background = CompactPartyFrameMember1Background {
}
IsPingable = true
healthBar = CompactPartyFrameMember1HealthBar {
}
overAbsorbGlow = CompactPartyFrameMember1OverAbsorbGlow {
}
PrivateAuraAnchor5 = Frame {
}
PrivateAuraAnchors = <table> {
}
totalAbsorb = CompactPartyFrameMember1TotalAbsorb {
}
name = CompactPartyFrameMember1Name {
}
aggroHighlight = CompactPartyFrameMember1AggroHighlight {
}
PrivateAuraAnchor3 = Frame {
}
myHealAbsorbRightShadow = CompactPartyFrameMember1MyHealAbsorbRightShadow {
}
healPredictionDirty = true
selectionHighlight = CompactPartyFrameMember1SelectionHighlight {
}
Debuff3 = CompactPartyFrameMember1Debuff3 {
}
myHealAbsorbLeftShadow = CompactPartyFrameMember1MyHealAbsorbLeftShadow {
}
debuffFrames = <table> {
}
PrivateAuraAnchor2 = Frame {
}
bigDefensives = <table> {
}
buffs = <table> {
}
dispelsChanged = false
needsUpdate = true
statusText = CompactPartyFrameMember1StatusText {
}
inVehicle = false
debuffsChanged = false
roleIcon = CompactPartyFrameMember1RoleIcon {
}
otherHealPrediction = CompactPartyFrameMember1OtherHealPrediction {
}
PrivateAuraAnchor1 = Frame {
}
optionTable = <table> {
}
isLootObject = false
TempMaxHealthLoss = CompactPartyFrameMember1TempMaxHealthLoss {
}
hideCastbar = false
powerBarUsedHeight = 8
outOfRange = <no value>
myHealAbsorb = CompactPartyFrameMember1MyHealAbsorb {
}
buffsChanged = false
maxDebuffs = 3
centerStatusIcon = CompactPartyFrameMember1CenterStatusIcon {
}
readyCheckIcon = CompactPartyFrameMember1ReadyCheckIcon {
}
buffFrames = <table> {
}
}
_ = <no value>
maxHealth = <no value>
health = <no value>
(*temporary) = CompactPartyFrameMember1HealthBar {
}
(*temporary) = <no value>
(*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 compare local 'maxHealth' (a secret value)"
MAX_INCOMING_HEAL_OVERFLOW = 1.050000
2x ...ddOns/Blizzard_UnitFrame/Shared/CompactUnitFrame.lua:1026: attempt to perform boolean test on local 'checkedRange' (a secret value)
[Blizzard_UnitFrame/Shared/CompactUnitFrame.lua]:1026: in function 'CompactUnitFrame_UpdateInRange'
[Blizzard_UnitFrame/Shared/CompactUnitFrame.lua]:457: in function 'func'
[Blizzard_UnitFrame/Shared/CompactRaidGroup.lua]:29: in function 'CompactRaidGroup_ApplyFunctionToAllFrames'
[Blizzard_UnitFrame/Shared/CompactPartyFrame.lua]:40: in function 'applyFunc'
[Blizzard_CompactRaidFrames/Blizzard_CompactRaidFrameContainer.lua]:138: in function 'ApplyToFrames'
[Blizzard_CompactRaidFrames/Blizzard_CompactRaidFrameContainer.lua]:150: in function 'ApplyMultipleToFrames'
[Blizzard_CompactRaidFrames/Blizzard_CompactRaidFrameContainer.lua]:29: in function <...actRaidFrames/Blizzard_CompactRaidFrameContainer.lua:28>
[C]: ?
[Blizzard_SharedXMLBase/CallbackRegistry.lua]:210: in function <...eBlizzard_SharedXMLBase/CallbackRegistry.lua:209>
[C]: ?
[Blizzard_SharedXMLBase/CallbackRegistry.lua]:213: in function 'TriggerEvent'
[Blizzard_EditMode/Shared/EditModeManager.lua]:108: in function 'ExitEditMode'
...[C]: in function 'Hide'
[Blizzard_UIParentPanelManager/Shared/UIParentPanelManager.lua]:445: in function 'SetUIPanel'
[Blizzard_UIParentPanelManager/Shared/UIParentPanelManager.lua]:476: in function 'MoveUIPanel'
[Blizzard_UIParentPanelManager/Shared/UIParentPanelManager.lua]:530: in function 'HideUIPanelImplementation'
[Blizzard_UIParentPanelManager/Shared/UIParentPanelManager.lua]:489: in function 'HideUIPanel'
[Blizzard_UIParentPanelManager/Shared/UIParentPanelManager.lua]:137: in function <...UIParentPanelManager/Shared/UIParentPanelManager.lua:128>
[C]: in function 'SetAttribute'
[Blizzard_UIParentPanelManager/Shared/UIParentPanelManager.lua]:870: in function 'HideUIPanel'
[Blizzard_EditMode/Shared/EditModeManager.lua]:42: in function 'onCloseCallback'
[Blizzard_SharedXML/Mainline/SharedUIPanelTemplates.lua]:143: in function <...izzard_SharedXML/Mainline/SharedUIPanelTemplates.lua:138>
Locals:
frame = CompactPartyFrameMember1 {
dispelDebuffFrames = <table> {
}
DispelOverlay = Frame {
}
DispelOverlayAuraOffset = 0
Debuff2 = CompactPartyFrameMember1Debuff2 {
}
maxDispelDebuffs = 3
powerBar = CompactPartyFrameMember1PowerBar {
}
privateAuraBorderScale = 1.800000
updateAllEvent = "GROUP_ROSTER_UPDATE"
myHealPrediction = CompactPartyFrameMember1MyHealPrediction {
}
CenterDefensiveBuff = Button {
}
Debuff1 = CompactPartyFrameMember1Debuff1 {
}
groupType = 4
overHealAbsorbGlow = CompactPartyFrameMember1OverHealAbsorbGlow {
}
newUnit = true
myHealAbsorbOverlay = CompactPartyFrameMember1MyHealAbsorbOverlay {
}
totalAbsorbOverlay = CompactPartyFrameMember1TotalAbsorbOverlay {
}
unit = "player"
unitExists = true
aurasDirty = true
dispels = <table> {
}
maxBuffs = 6
editModeStatus = "IncomingSummonPending"
displayedUnit = "player"
debuffs = <table> {
}
PrivateAuraAnchor4 = Frame {
}
privateAuraSize = 29.700000
background = CompactPartyFrameMember1Background {
}
IsPingable = true
healthBar = CompactPartyFrameMember1HealthBar {
}
overAbsorbGlow = CompactPartyFrameMember1OverAbsorbGlow {
}
PrivateAuraAnchor5 = Frame {
}
PrivateAuraAnchors = <table> {
}
totalAbsorb = CompactPartyFrameMember1TotalAbsorb {
}
name = CompactPartyFrameMember1Name {
}
aggroHighlight = CompactPartyFrameMember1AggroHighlight {
}
PrivateAuraAnchor3 = Frame {
}
myHealAbsorbRightShadow = CompactPartyFrameMember1MyHealAbsorbRightShadow {
}
healPredictionDirty = true
selectionHighlight = CompactPartyFrameMember1SelectionHighlight {
}
Debuff3 = CompactPartyFrameMember1Debuff3 {
}
myHealAbsorbLeftShadow = CompactPartyFrameMember1MyHealAbsorbLeftShadow {
}
debuffFrames = <table> {
}
PrivateAuraAnchor2 = Frame {
}
bigDefensives = <table> {
}
buffs = <table> {
}
dispelsChanged = false
needsUpdate = true
statusText = CompactPartyFrameMember1StatusText {
}
inVehicle = false
debuffsChanged = false
roleIcon = CompactPartyFrameMember1RoleIcon {
}
otherHealPrediction = CompactPartyFrameMember1OtherHealPrediction {
}
PrivateAuraAnchor1 = Frame {
}
optionTable = <table> {
}
isLootObject = false
TempMaxHealthLoss = CompactPartyFrameMember1TempMaxHealthLoss {
}
hideCastbar = false
powerBarUsedHeight = 8
outOfRange = <no value>
myHealAbsorb = CompactPartyFrameMember1MyHealAbsorb {
}
buffsChanged = false
maxDebuffs = 3
centerStatusIcon = CompactPartyFrameMember1CenterStatusIcon {
}
readyCheckIcon = CompactPartyFrameMember1ReadyCheckIcon {
}
buffFrames = <table> {
}
}
inRange = <no value>
checkedRange = <no value>
(*temporary) = <no value>
(*temporary) = <no value>
(*temporary) = nil
(*temporary) = "attempt to perform boolean test on local 'checkedRange' (a secret value)"