If you have more than one remote, this can happen all the time. Since engines are stored in the remote, adding an engine to a second remote that already has a different engine using that ID # in the second remote will result in changing the ID # of the engine to an empty space in the second remote. When you go back to run it with the first remote, it's there with the old ID #, but it won't be found. If you add it to the first remote, I'll come up with the new ID # if it's free. If that ID # is not free, the engine will get yet another ID # and the cycle repeats.
It's key to manage the ID #'s if you have multiple remotes.