Fantasy fiction is a funny thing. If you don't explain enough, someone will get mad at you for being obtuse. If you explain too much, someone will get mad at you for, as they say, cutting open the drum to see what makes it go bang. It's not a question of pleasing everyone, since that is impossible; it's about what kind of audience you want.
Some time back I quit trying to make everything I write absolutely airtight in its design. Why bother? If someone has a grudge against your work, or it just plain rubs them the wrong way, they'll find whatever reason they need to dislike it or shoot it down. If they groove on it, and they buy into it, then you can get away with that much more. What you should never do is cheat.
Which leads us to the question: What constitutes cheating in a work of fantasy or SF? Here is my admittedly non-authoritative take. Cheating is when:
I suspect I have broken all of these rules at least once. I further suspect I have broken all of these rules together in at least one work. If you're bored, go read my books and tell me where I screwed up. (Or just read them anyway; I could use the audience.)
I don't admit to these things a way to absolve myself of past or future transgressions, but more to say that it can be amazingly difficult not to cheat and never realize it. It's also at least as difficult to cheat and justify to yourself after the fact that the cheating is worth it, because you're convinced the reader will forgive you. As I mentioned above: if you think the reader's on board for the ride, you can get away with a lot more than if they aren't.
Still, that doesn't mean you should bank your story's essence on such things. You can fudge a few details here and there that aren't central to the goings-on. Just don't do it in a way that evinces contempt for the reader's intelligence. Do it because you don't want to burden them with spurious information, not because you want to sneak around behind the audience's back.
Legal cheating in SF&F is stuff nobody really objects to, because otherwise we wouldn't have much to do. E.g., nobody really complains too much that faster-than-light travel is, as best we know, impossible, because it makes for a fun story element. What we would object to is not talking about how FTL works in the story, until the moment we can use it to cheat our way out of a dead end in the story, and then whomping up an explanation that just happens to resolve our problem. The same goes for most any other ingredient. Nobody likes retroactive explanations of convenience.
There's a fine line between legitimate surprises and cheating. Legitimate surprises are when all the clues have been in plain sight the whole time, and you, the poor sap turning the pages, just didn't hook them up. It's awfully hard to concoct legit surprises without lots of practice; I'm still no expert at it myself. Wisdom at last: when you know what you don't know.
I suspect such difficulties are why many fantasy stories have such agonizingly detailed magic systems. The author doesn't want their target audience screaming "Unfair!" if something happens that seems even slightly dodgy by their own rules. But I'm not convinced it's wise to try and shut such people up. Make as many rules as are needed to keep things straight, play as far as you can the rest of the time, and anyone who picks nits is probably just there to pick nits. It's a big world with a lot of books in it, and you're not obliged to make everyone happy.
Besides, at the end of the day, a good story is not going to rely on how clever or completist the magic system is, or whether we have a kick-ass explanation for how FTL travel works, or anything that parboiled. It's going to rely on whether or not you have given the reader someone to care about, and a situation in which that care can be dramatized. Worry about that first and everything else a distant second. People have a bad way of worrying about all the wrong things.