GameObject.Find not working in between additive scenes after build is created

So i am woking on a project and it is supposed to us a general handler script attached to a gameobject in a persistent scene, i need to access this script to switch between scenes and create a game over, and it utilises GameObject.Find() to retrieve this object
This is the code for the menu_manager accessing the object

 public AudioSource AmbientAudio;
   public AudioSource MusicAudio;
   public GameObject main_menu;
   public GameObject Options_menu;
   public Slider Ambient_volume_slider;
   public TextMeshProUGUI Ambient_volume_value;
   private double Ambient_volume_storage;
   public Slider Music_volume_slider;
   public TextMeshProUGUI Music_volume_value;
   private double Music_volume_storage;
   public GameObject Volume_menu;
   public GameObject Level_selector;
   public general_handler hand;
   public GameObject per_scene;
   public bool per_scene_loaded;
   public GameObject test;
  
   void Start(){
      
      
   }
   void FixedUpdate(){
       if(!SceneManager.GetSceneByName("persistent_scene").isLoaded && per_scene_loaded == false){
           SceneManager.LoadSceneAsync("persistent_scene", LoadSceneMode.Additive);
           per_scene_loaded = true;
           print("scene_loaded");
       }
      
       set_ambient_volume();
   }
    public void quit(){
        Application.Quit();
    }
    public void open_options()
    {
      main_menu.SetActive(false);
      Options_menu.SetActive(true);
    }
    public void close_option(){
        Options_menu.SetActive(false);
        main_menu.SetActive(true);
    }
    public void set_ambient_volume(){
      
       AmbientAudio.volume = Ambient_volume_slider.value;
       Ambient_volume_storage = Ambient_volume_slider.value * 100;
       Ambient_volume_value.text = Ambient_volume_storage.ToString("f2");
    }
    public void set_music_volume(){
        MusicAudio.volume = Music_volume_slider.value;
        Music_volume_storage = Music_volume_slider.value *400;
        Music_volume_value.text = Music_volume_storage.ToString("f2");
    }
    public void Open_sound_screen(){
        Options_menu.SetActive(false);
        Volume_menu.SetActive(true);
    }
    public void Close_sound_screem(){
        Volume_menu.SetActive(false);
        Options_menu.SetActive(true);
    }
    public void Load_Level_1(){
         print(GameObject.Find("john han").tag);
         hand = GameObject.Find("john han").transform.GetComponent<general_handler>();
         hand.load_scene("main_menu","Level_1");
    }
    public void open_level_selector(){
        switch_menus(main_menu, Level_selector);
    }
    void switch_menus(GameObject menu1, GameObject menu2){
        menu1.SetActive(false);
        menu2.SetActive(true);
    }
    public void close_level_selector(){
        switch_menus(Level_selector,main_menu);
    }
    public void Load_level(int level_index){
        hand = GameObject.Find("john han").transform.GetComponent<general_handler>();
        string level_name = "Level_"+ level_index.ToString();
        hand.load_scene("main_menu",level_name);
        hand.last_loaded_scene = level_index;
    }
    public void GoBackToMenu(){
        hand = GameObject.Find("john han").transform.GetComponent<general_handler>();
    }

every time i try to access this object in the build it gives me this error
NullReferenceException: Object reference not set to an instance of an object
at general_handler.load_scene (System.String scene1, System.String scene2) [0x00001] in C:\Users\Admin\Desktop\PP\Assets\scripts\menu\general_handler.cs:30
at menu_manager.Load_level (System.Int32 level_index) [0x0002d] in C:\Users\Admin\Desktop\PP\Assets\scripts\menu\menu_manager.cs:90
at UnityEngine.Events.InvokableCall1[T1].Invoke (T1 args0) [0x00010] in C:\buildslave\unity\build\Runtime\Export\UnityEvent\UnityEvent.cs:221 at UnityEngine.Events.CachedInvokableCall1[T].Invoke (System.Object[ ] args) [0x00001] in C:\buildslave\unity\build\Runtime\Export\UnityEvent\UnityEvent.cs:359
at UnityEngine.Events.UnityEvent.Invoke () [0x00074] in C:\buildslave\unity\build\Runtime\Export\UnityEvent\UnityEvent\UnityEvent_0.cs:70
at UnityEngine.UI.Button.Press () [0x00027] in C:\Program Files\Unity\Hub\Editor\2020.1.10f1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.ugui\Runtime\UI\Core\Button.cs:68
at UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) [0x00010] in C:\Program Files\Unity\Hub\Editor\2020.1.10f1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.ugui\Runtime\UI\Core\Button.cs:110
at UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) [0x00001] in C:\Program Files\Unity\Hub\Editor\2020.1.10f1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.ugui\Runtime\EventSystem\ExecuteEvents.cs:50
at UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction1[T1] functor) [0x0006c] in C:\Program Files\Unity\Hub\Editor\2020.1.10f1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.ugui\Runtime\EventSystem\ExecuteEvents.cs:261 UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object) UnityEngine.DebugLogHandler:LogException(Exception, Object) UnityEngine.Logger:LogException(Exception, Object) UnityEngine.Debug:LogException(Exception) UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction1) (at C:\Program Files\Unity\Hub\Editor\2020.1.10f1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.ugui\Runtime\EventSystem\ExecuteEvents.cs:265)
UnityEngine.EventSystems.StandaloneInputModule:ReleaseMouse(PointerEventData, GameObject) (at C:\Program Files\Unity\Hub\Editor\2020.1.10f1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.ugui\Runtime\EventSystem\InputModules\StandaloneInputModule.cs:187)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMousePress(MouseButtonEventData) (at C:\Program Files\Unity\Hub\Editor\2020.1.10f1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.ugui\Runtime\EventSystem\InputModules\StandaloneInputModule.cs:641)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMouseEvent(Int32) (at C:\Program Files\Unity\Hub\Editor\2020.1.10f1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.ugui\Runtime\EventSystem\InputModules\StandaloneInputModule.cs:547)
UnityEngine.EventSystems.StandaloneInputModule:ProcessMouseEvent() (at C:\Program Files\Unity\Hub\Editor\2020.1.10f1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.ugui\Runtime\EventSystem\InputModules\StandaloneInputModule.cs:527)
UnityEngine.EventSystems.StandaloneInputModule:Process() (at C:\Program Files\Unity\Hub\Editor\2020.1.10f1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.ugui\Runtime\EventSystem\InputModules\StandaloneInputModule.cs:282)
UnityEngine.EventSystems.EventSystem:Update() (at C:\Program Files\Unity\Hub\Editor\2020.1.10f1\Editor\Data\Resources\PackageManager\BuiltInPackages\com.unity.ugui\Runtime\EventSystem\EventSystem.cs:376)

6618754–753964–general_handler.cs (2.38 KB)
6618754–753970–menu_manager.cs (3.14 KB)

GameObject.Find() will not return objects that have their DontDestroyOnLoad flag set. Is it set for the object you are trying to find? If so, maybe this can help.