Post History
What you should have done, and should do in rewrite, is make it clear to the reader a traitor exists, perhaps make it clear a poison that does exactly that exists, etc. You can do that early in you...
Answer
#4: Attribution notice removed
Source: https://writers.stackexchange.com/a/45265 License name: CC BY-SA 3.0 License URL: https://creativecommons.org/licenses/by-sa/3.0/
#3: Attribution notice added
Source: https://writers.stackexchange.com/a/45265 License name: CC BY-SA 3.0 License URL: https://creativecommons.org/licenses/by-sa/3.0/
#2: Initial revision
What you should have done, and should do in rewrite, is make it clear to the reader a traitor exists, perhaps make it clear a poison that does exactly that exists, etc. You can do that early in your book, in a story or fable. The readers already believe the MC would never do this thing. So you need to hang a lantern on this behavior _during_ the battle. Say the poison is called "rage oil", somebody in the battle can scream "Bob's been roofied on rage oil! He killed Stanley! Stay clear!" So the reader gets it; yes, Bob would never, but Bob's on rage oil, so yeah. Then their focus is indeed on "Who roofied Bob?" You can still leave that part a mystery. It messes a little with the rest of your plot; now there are people looking for a traitor they can't find. Bob doesn't suspect the real traitor. The real traitor may manage to frame somebody else, or one of the dead. Perhaps, out of caution, he even did that _before_ the battle, getting the poison into Bob's food or drink that got served by _someone else_. The servant girl that mysteriously ended up with her throat cut once the battle was done. (Traitor killed her). But it can still be true that Bob is motivated to solve the problem without battle. In general you have to provide enough clues that the reader has SOME reason for a character to do something they would never do. Go back and plant the seeds earlier in your story, hang a lantern on the MC's behavior during the battle, and leave them with a question that makes sense (who is the traitor), not a contradiction of what they already knew. This in turn primes the reader for your later reveal; you can't just surprise them out of nowhere with a best friend that was a traitor all along; that feels like a deus ex machina. Now they KNOW there was a traitor, and you can make the dead servant girl seems too darn convenient so the reader knows the traitor is probably still out there. Then they aren't surprised BY the traitor being revealed, only by who it is. But it doesn't look like a deus ex machina, they are forewarned that some trusted person is the traitor, and the best friend was in a position to execute all the sabotages.