[Title "White to play and mate in 10"] [FEN "r1b2r2/5pk1/pq2p3/1p5Q/3p1P2/P2Rn1NP/1P4P1/7K w - - 0 28"]
However, it is actually checkmate in 10! I understand that Stockfish prunes the search tree heavily, which can (in theory) result in such errors in evaluation. But this is the first time (in practice) that I have seen a non-contrived position (it came from a variant line of an actual game that I was exploring with Stockfish) with a completely wrong evaluation. Can anyone who is very familiar with the Stockfish code provide an explanation of the main factors here? Is it simply that there were too many quiescent moves? I count only 5 moves that are not a check or a forced move (i.e. the only move that does not result in mate-in-3) or a capture, and these 5 are the moves that I as a human player would consider as quiescent (even if I ignore the great king danger). Am I missing some other reason here?
The principal variation is:
[Title "White checkmates in 10"] [FEN "r1b2r2/5pk1/pq2p3/1p5Q/3p1P2/P2Rn1NP/1P4P1/7K w - - 0 0"] 1. Qg5+ Kh7 2. Nh5 Nf5 3. Nf6+ Kh8 4. Kh2 e5 5. Rg3 Qxf6 6. Qxf6+ Kh7 7. Rg5 d3 8. Rh5+ Nh6 9. Qxh6+ Kg8 10. Qh8#
Stockfish 10+ at depth 19 evaluates it as draw until
29. Nh5. After the next move
Nf5, Stockfish thought it was +7.5. After the next move
Nf6+ Stockfish knew it was game over.