I’m feel like I’m losing my mind here. I have written a custom module and implemented hook_menu to add custom admin pages. Last week this worked perfectly – this week they stopped working then vanished altogether. I can’t understand what the problem is and I can’t even get simple pages to work now.
My code nhs_session_judge.module
/**  * Implements hook_menu  */ function nhs_session_judge_menu() {     $items['admin/session-judging'] = array(         'title' => 'Your judging',         'page callback' => 'your_judging_page',         'access arguments' => array('access administration pages'),         'type' => MENU_NORMAL_ITEM,     );      return $items; }  /**  * Custom page callback  */ function your_judging_page() {     $content['raw_markup'] = array(         '#type' => 'markup',         '#markup' => '<p>This table shows at-a-glance the session bids you have already scored and those yet to be judged.</p>',     );      ...      return $content; } 
so both the hook_menu implementation exists as does the page callback function.
If I use a backup of the database and visit the page – it works.
If I make a change – I get
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'your_judging_page' not found or invalid function name in menu_execute_active_handler()  
If I clear the cache, with either Drush or devel, the menu item disappears completely and going to the URL directly just redirects to /admin.
Does anyone know what’s going on here? I can’t make any changes/fixes to this because as soon as I do it breaks.