Eelco de Groot wrote:But in the case of Stockfish at least, if there is a search result found in TT, that takes precendece over static eval. In other words a search result that is exact, or is a Fail High higher than alpha or Fail Low lower than alpha this is alway assumed to be more accurate than static eval.
If a search result is available for the current node in the TT it would of course always be good enough to satisfy a search request for that position. You would not even get to calculating the eval, as you would have a hash cutoff. That should happen in any engine that uses TT.
So in qsearch Stockfish still has this same problem when the static eval was not enough or a search result is grafted it will probably have this Q takes B or it will try this as one of the possible qsearch captures.
If you already fail low on the static eval of the current position, it doesn't matter whether you can safe the Queen or not. As the evasion is a non-capture, it would be futile. But the point is that you would return the eval, not the result of a bad move because you pruned all good moves. The point is that in this case even the loss of a Queen was apparently 'good enough' to propagate to the root. So the static eval or any value more accurate than it, should certainly have been good enough, as there are moves that safe the Queen.
And the value of the node sinks without trying anything else but captures. The problem will persist going higher up because Q takes B is the hash move, alpha has fallen
If QxB ever gets to be hash move, something seriously broken must have been going on before. There should be no way a node could ever think QxB is best in this position.
TT just reflects what an earlier, possibly more thorough search turned up. It is not arbitrary nonsense, but just re-using of earlier search results. And no correct search could ever find that this position forcibly loses a Queen.
... and static eval would now stand pat in the futility pruning at the top, not with static eval > alpha but eventually because static eval > alpha + futility margin. But the search result does not and is in fact so low that you probably fall into razoring, where you only do a q search which will give you the same lousy move Q takes B

You do not even reach the regular search until depth is high enough not to fall into razoring anymore. Then you have to be lucky enough that in spite of the bad eval, still from Q x B, you are not so far below alpha that evasions are pruned because of too high move count. Then finally you see the evasion. In regular search you will still have saved so much time because of all the pruning, that the ridiculous Q x B does not matter. The other side can´t usually force this kind of a position at the end of a PV so it does not matter there either