Deliberate mistake: During the cavalry charges, swords are held at shoulder height as they would for charging enemy cavalry, not knee height for charging infantry. This was a deliberate decision in order to have the blades more visible.
Factual error: Major Stewart addresses the Indian NCO as "Sergeant Major" and he is so described in the credits. There was no such rank in the British Indian Army. Indian cavalry sergeants were known as Daffadars. More senior Indian cavalry officers held VCO ranks (Jemadar, Risaldar and Risaldar Major) which had no British equivalent. Given the importance of rank and protocol, it is highly unlikely that a British commissioned officer would be unaware of this.
Continuity mistake: The 'over-the-top' trench scene in War Horse depicts a single soldier ordered to remain behind and shoot those who have retreated. In one shot he is seen standing guard while, a few feet away, a dead soldier lies in the trench being eaten by CGI rats. Cut away and the same shot of him again, the casualty and the rats are gone.
Factual error: When the horse jumps over the British tank, he runs to a German trench, jumps over and runs alongside it, to finally jump into the trench. Once he falls inside, he starts to run madly among the astonished Germans. The problem is: the trenches were made in zig-zag pattern, making soldiers difficult to see beyond 10m, along the trench. The horse ran way more than that, and the obstacles inside the trenches would make this run impossible.
Factual error: The battle in which Albert is gassed is not an accurate portrayal of how the British army was fighting by 1918. By 1918 the British had developed what for the time were very advanced infantry fighting techniques. They would have attacked in sections with each man having been properly trained as to his role and objectives. And by 1918 the British would not have launched a human wave style attack in daylight, or one that was unsupported by artillery and possibly tanks. The unruly mob that is depicted is somewhat more typical of the attacks of 1915 and 1916.
Continuity mistake: When the horse is caught in the barbed wire between the English and German trenches, the English soldier crosses a swampy area to get to the horse. As he crosses the bridge, it is submerged under the water level, but when the shot changes, the bridge is suddenly out of the water, then back in the water in the following shot.