Diagnostics

  • Check if you have ticked Display LUA Errors (in Interface -> Help), which can be disabled after solving the problem.
  • After the addons are loaded a Lua error should appear such as this one:

Message: Interface\AddOns\DXE\Core.lua:207: Usage: EmbedLibrary(addon, libname, silent, offset): ‘libname’ – Cannot find a library instance of “AceTimer-3.0“.

What’s important here is that the first yellow part links us to a DXE file (Core.lua) and EmbedLibrary tells us it’s a library related problem – more specifically with “AceTimer-3.0” library.

  • Identify the addon from which the library is being attempted to load using the Stack section in the Lua error.

Stack: [C]: ?
…ace\AddOns\Postal\Libs\AceAddon-3.0\AceAddon-3.0.lua:210: in function `EmbedLibrary

Shows that the addon Postal is the source from which the library is being sought.

The solution

Copy the folder with the missing library from the Interface\Addons\DXE\Libs folder into Libs folder in the problematic addon (in our case Interface\Addons\Postal\Libs).

You shouldn’t need to overwrite anything. Just add the missing library files.

After adding the missing libraries you need to restart the entire game (/reload won’t do) and check if the solution worked.

It is possible the libraries might get loaded from another addon at some point in which case you repeat the whole process for another addon.

Memory-wise it shouldn’t pose much problem. The libraries are usually couple of kilobytes and you probably already have many duplicates among your addons anyway.

Background

A lot of addons use so called libraries which are tools with functions that you can use with your addon. Now libraries can be used globally by all present addons but at least one addon must include them so that they can be used. If you don’t already have the libraries with another addon you usually download a version of your new addon with the libraries included but if you already have the required libraries you don’t have to although nothing bad happens if you do.

One popular library set is called Ace whose AceAddon library is an easy way to setup an addon which is why a lot of addons (including DXE) use it. Now if multiple addons contain the same AceAddon library sometimes an instance of AceAddon library can get loaded first from another addon rather than DXE (or any other that presents an error).

The problem is that while the AceAddon library is loaded a whole bunch of modules are loaded with it from the source addon and might be missing the modules we want for DXE. Those modules might get loaded in later but it doesn’t matter because the DXE won’t be loaded anymore (because of the missing library). I don’t pretend to understand it very deeply but at least it’s an issue that can be solved relatively easy.

The lesson

Not all loading problems might be cause by this issue and Lua error gives us important information leading us to the root of our problem. In that case you should contact me with that information. It can also be the case that I made a mistake during the release process for the addon. Please let me know so I can fix it at once.