<ul><li><strong>CRITICAL FIX — $rsDomain undefined:</strong> $rsDomain, $siteid, $domainid, and $faqmodid were never initialized in inc_pet_registry_manager.php, causing Warning + Deprecated strtoupper(null) PHP errors in all 4 tabs (list_pet_items, list_pet_categories, list_pet_breeds, settings). Fixed by adding initialization block at top of inc file that fetches domain name from domain_names_sites via SITELINKID.</li><li><strong>CRITICAL FIX — Fatal error: count() on null in addCategory:</strong> getRegistryTypesRecord() returns get_one() (null when no record) but controller called count($isexist) on it. Fixed with empty() + count((array)) guard pattern.</li><li><strong>CRITICAL FIX — Fatal error: Non-static method User::get_userByAcctId() called statically:</strong> saveNotification() in petregistry.controller.php used User::get_userByAcctId() static call on non-static method. Fixed by instantiating $_userObj = new User() with null guard on empty recipient.</li><li><strong>CRITICAL FIX — JS Fatal: Invalid token from missing example11.js:</strong> pet_modals.php loaded /platform/services/websites/modules/module/PetRegistryManager/image_upload_ajax/examples/example11.js which does not exist (returns 404 HTML), causing MIME type error and JS parse failure. Removed the dead script tag.</li><li><strong>MEDIUM FIX — Leftover $faqmodid/$rsDomain in custom_js.php line 479:</strong> getTableItem() call with undefined PHP variables in JS output. Replaced with $.onpageload_pet_datatable() call.</li><li><strong>MEDIUM FIX — count() on null for getNotifSetting and onloadgetchosenpettype:</strong> Applied same empty()+count((array)) guard to prevent future fatal errors on null returns.</li><li><strong>SPEED FIX — N+1 query in chosenpettype action:</strong> Was fetching pet categories with one DB call per ID in a PHP loop. Added getRegistryTypesByIds() batch method using IN() query. Controller updated to use batch fetch.</li></ul>