Not sure on how your setup looks like but since you mention that you are changing scene i assume that the “card” objects are not tagged with don’t destroy on load and thus sometimes get disabled/destroyed before your OnDisable has a chance to find them.
Disabling and destruction of objects is not subject to a given queue or order as far as i know.
Perhaps you could create a workaround to search for the card objects just right before you give the command to change the scene. This way you can be sure that all objects are still present and that the definite next thing to happen will be the change of scenes.