So, at its core, magic is using a swarm of tiny (50-100 micrometers), naturally occuring robots to deliver substances to a given location and initiate chemical reactions that lead towards the desired result. It involves physics, chemistry, programing and communication.
So, how to prevent sieges from lasting until someone pulls out their fat man and obliterates the gatehouse, or the dragonborn from slaughtering 95% percent of the population with a magic sword?
Magic-denying fields that selectively nullify magic around a point of origin, of course. I think using the programing and communication aspects is the best for magic denial, as far as efficiency and universality is concerned.
However, micro machines receive their orders before they're fired and communicate between each other by holding hands (individual bots are spheres with several retractable arms with a gripper/hand at their end). A mage usually generates their own bots that recruit ambient ones, though one can rely solely on their own bots for a spell, if they're patient or strong enough.
Say, you summon me in the middle of the city, because you want to make a contract with me and become a magical girl. It's possible to fake the commands you direct at me after summoning, but if you summon me with the intention of walking up to the local jarl and banning him from life, that command is retained in the spell, that should be impenetrable to jamming attempts, thus no one on Earth could "talk me down" from slapping that jarl to death...
that is a problem!
Ideally, the communication of individual bots should be jammed, before they could form into my deadly, jarl-slapping avatar.
So, how could communication between individual bots be jammed? Note that the barrier isn't visible and doesn't have side-effects.