GameObject.SetActive() not working

I’d like to activate an end screen once the player touches the goal pad. I use an OnCollisionEnter2D on my player to detect it, and then call a function on my UI container, as seen below

public void Finish() { Debug.Log("finished!"); finishMenu.SetActive(true); GameIsFinished = true; Time.timeScale = 0f; }

However, my finishMenu isn’t activating. I’m getting the log in the console, and timeScale is 0. The same finishMenu does activate when I try other ways of activating it (Input.GetKeyDown).

After some debugging, I noticed that after finishMenu.SetActive(true), finishMenu.activeSelf is true, but it is not activeInHierarchy. This info does not show up in the inspector, only when debugging with breakpoints. In the inspector, it seems like it isn’t activeSelf or activeInHierarchy. The parent GameObject (where this script is attached) of finishMenu, is active, so I don’t know why finishMenu is activeSelf, but not activeInHierachy.