strange behaviour when creating and deleting objects with tags

hi.
i am observing a very strange behavior in my project. not sure, if i am just missing something or it is a bug.

I am creating GameObjects at runtime and give them tags.

GameObject currGarage = new GameObject (); currGarage.tag = "Garage";

later, i create a list and add objects with this tag to the list:

GameObject[] garageArray = GameObject.FindGameObjectsWithTag ("Garage");

		foreach(GameObject g in garageArray) {
			if(g != null) {
				allGarages.Add(g);
			} else {
				Debug.Log("object null");
			}
		}

then, at some point, i delete all objects in this list:

foreach (GameObject g in appLogic.garageManager.allGarages) {
					g.SetActive(true);
					Destroy (g);
				}

after that i create again some new GameObjects with that tag and write them into a new array:

GameObject[] garageArray = GameObject.FindGameObjectsWithTag ("Garage");

now i have an array of the size of all Gameobjects with that tag ever created. even if i delete objects, unity keeps referencing them.

Am i doing something wrong? Or is it normal behaviour? I just want the “fresh” objects, without references to the destroyed ones…

someone knows more about this issue?

now i have an array of the size of all Gameobjects with that tag ever created. even if i delete objects, unity keeps referencing them.

How do you know? What’s the error?
Post actual relevant code which creates, collects, destroys and throws error!
If gameobject is destroyed in scene, reference to it is broken and it is null.

Is it possible that you are trying to access primitive array using index array[index] without checking for null first?