Start with dependency order
ox_lib is a dependency, so resources that use it must start after it. If a custom menu, notification, progress bar or callback calls lib before ox_lib is ready, the error can appear in the custom script even though the real cause is startup order. Put ox_lib high in your server start list and restart cleanly before testing again. If the issue disappears after starting the resource later, you have confirmed an ordering problem rather than a gameplay logic problem.
ensure ox_lib
ensure qb-core
ensure my-menu-resourceCheck the manifest import
Many ox_lib examples require an init file in the resource manifest. If that import is missing or placed after scripts that use lib, those scripts may see lib as nil. Check that the path exists in your installed ox_lib resource and that it is listed before client or server files that need it. Old snippets from forums may use outdated paths, so compare your manifest with your installed version instead of assuming every example is current.
Separate UI from trusted logic
Menus, input dialogs and notifications are player-facing features, so they usually belong in client code. Server files should validate important state such as jobs, money, items, distance and permissions, then tell the client what to show. If a menu call is placed in the wrong context, it may fail or do nothing. If a notification never appears, check whether the client receives the event that should show it.
Use a minimal ox_lib test
Before debugging a full police job, shop, garage or inventory system, make a tiny test resource that only loads ox_lib and shows one notification or simple context menu. If the minimal test works, ox_lib is installed correctly and the larger resource has its own logic or integration problem. If the minimal test fails, focus on installation, resource order and manifest setup.
Read both consoles
Use the FXServer console and the in-game F8 console. Server-side failures usually mention exports, callbacks, dependencies or database checks. Client-side failures usually mention UI calls, missing lib, missing files or script timing. Knowing which side fails prevents you from editing the wrong file. Add temporary prints before and after the lib call so you can prove whether the code path actually runs.
Watch framework compatibility
Some resources mix QBCore, ESX, ox_inventory, qb-target, ox_target and ox_lib assumptions. A menu snippet may work by itself but fail when attached to a job check or inventory check from a different framework. Identify which framework your server actually uses and keep the integration consistent. If you migrate from a qb menu to ox_lib menus, check every old callback and event name instead of only changing the visible UI.
Check version drift
Libraries evolve. A function name, parameter shape or example pattern can change over time. If copied code fails, check whether the resource was written for the same ox_lib version you installed. Do not downgrade randomly without a backup. First confirm what call fails, what version you have, and whether the installed documentation or examples show a newer pattern.
What to paste into Stellar AI
Paste the start order, the manifest shared script lines, the exact lib call, the server or F8 error, and whether the code is client, server or shared. Ask for diagnosis before a rewrite. A good patch should say whether the issue is load order, import path, context, old syntax or framework mismatch, then give a private test plan.
Fix ox_lib safely
Paste your manifest and console error into Stellar AI. Start with the smallest working menu or notification before adding full job or inventory logic.
Open Stellar AI free →