This is an issue I've been having since the pre-Mists patch, but never had before that. This also happens without add-ons.
If I'm using Power Word: Shield, the spell applies a debuff (Weakened Soul) which renders the target invalid for PW:S until WS runs out. The problem comes if I try to PW:S that player again at any point before WS actually ends, even if it's only a moment before.
Before the pre-Mists patch, if I accidentally smacked PW:S slightly too early, nothing happened, which is good. Once WS ended I could simply hit it again and it would cast successfully, no problem.
Since the pre-Mists patch, if I hit PW:S slightly too early, it attempts to cast the spell but it switches to the click-to-cast cursor and requires me to click a target to cast it. Hitting PW:S again after WS runs out does nothing, it just sits there on that cursor asking me to click a target. Aside from clicking the target, I can hit escape to remove that cursor, or simply cast another spell instead.
This happens both with mouseover macros, and with spells simply bound to a key and cast on a pre-selected target. I've also noted it to happen occasionally with offensive spells when enemy targets go immune.
The weirdest thing to me, is that if I have no target at all selected, it does nothing. It puts up a message, and does not attempt to cast at all. I seem to remember that having no target at all used to queue up the spell to cast and go to the "Click a target!" cursor. But that behaviour seems to have been reversed, which seems odd.
I use mouseover macros specifically so I do not need to click to either select a target or to cast on them, so this feels very clunky and awkward when it occurs (and it does occasionally if I'm anticipating WS ending).
Is there anything I can do to my PW:S mouseover macro to change this behaviour? A condition I can add?
This is the macro, it worked beautifully pre-Mists:
#showtooltip power word: shield
/cast [mod:alt,@player][nomod:alt,@mouseover,exists,help,nodead,] power word: shield
I've tried removing the exists conditional, but the behaviour is the same. I can't think of anything to add to it except for /stopcasting, which does not work for this, either.