As this has been used a lot and should not be done anymore to avoid error messages ingame and to make all addons providing context menus (especially at the inventory) work properly together:
Please do NOT use ZO_PreHook on ZO_InventorySlot_ShowContextMenu anymore!
Instead use LibCustomMenu and the function LibCustomMenu:RegisterContextMenu.
And AddCustomMenuItem or AddCustomSubmenuItem for the context menu entries.
Do NOT use and zo_callLater for the menu entries anymore as LibCustomMenu will handle this for you via the parameter "category" of the WIKI mentioned function LibCustomMenu:RegisterContextMenu (for inventory context menus!)
Possible categories can be (Default is LibCustomMenu.CATEGORY_LATE):
From early (at top of the menu) to late (at the bottom of the menu)
See the examples for that function at the libraries description page.
@addon authors still using ZO_PreHook on the inventory context menu functions or keybind functions:
PLEASE change this and use this library properly instead!
Note that the info above only relates to the inventory context menus!
Context menus at the chat's player context menu can be still applied using a SecurePostHook to these functions and applying your own callback function.
Hint: Try to change your code from ZO_PreHook and zo_callLater to the nox existing function SecurePostHook! It got ther same parameters like ZO_PreHook but will run your code securely after the menu was build so you do not need to delay your added entries etc.