One thing you should also keep in mind.

You never sent your army to attack that city. The details you entered were the coords. Meaning that the system doesn't know your sending so many troops out to attack a city, valley, or flat. All it knows that this many people will arrive at this location in this amount of time, and depending the status of the coords during the time of arrival such and such happens.

I dun wanna contemplate the coding entailed in changing it so that the system will keep a snapshot memory of every location someone attacks and if it does not match with the moment of impact to reverse the state of your troops to a retreat command.