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.
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: 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.
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.