If the city is being taken over by Kraxis, then I suspect that you've been hit by the Broken Loyalties spell, which captures a city for the caster without provoking a battle and expels any garrison you may have had in that city.
If the city is not being taken over by Kraxis, then you've hit a bug.
If Broken Loyalties doesn't cause a message along the side of the screen, then that is something that should be added.
In the scenario I keep losing a city that only has about 20% unrest.
As far as I know, there are no civil revolts currently in the game. The effect of unrest is to reduce your production and research from the city, not give rise to the potential for rebellions, given as total_production = base_production*(100 - unrest%)/100 for both research and construction/training. Even a city at 100% unrest will not, to the best of my knowledge, rebel against your rule even if you don't keep a garrison in the city. You will, however, gain no benefit aside from tax income from that city.