user16875: This is the study
[fen "3B4/1r2p3/r2p1p2/bkp1P1p1/1p1P1PPp/p1P4P/PPBK4/8 w - - 0 1 "]

As you can see, Stockfish gives an absolute decisive win for black, though it is clearly a draw!!
Check it out yourself
c4+ is a losing move, while Ba4+ is the correct one.
What's going on? Doesn't Stockfish take into consideration closed positions at all?

user18998: It helps to understand that engines don't really go off of "strategy", so much as they look several moves into the future, evaluate the score of the position, and find the optimal move set.
The great weakness of that approach is that if nothing can happen quickly, the engine's going to have problems.  This used to be a huge problem with endgames.  If you've got a K+B+P vs K+P, you're not resolving that position in just a few moves.  So the fix was to add Endgame Tablebases to the engines - just bruteforce calculate every endgame position ahead of time and add them as a library for the engine to use.  (This is why, in most cheap chess apps, you can earn a win simply by surviving to the endgame: because it doesn't have an endgame tablebase.)
But your position is (understandably) not going to be in any endgame tablebase.  So stockfish has to play out millions of positions, stretching 10 or so moves into the future... only to find that in all of them, black is substantially up in material.  It definitely can't play out ~56 moves for the full decision tree - which is what it would take to determine a definitive draw.

user15223: Stockfish isn't a perfect chess-playing entity, and you've found a position where it's unable to tell is a draw (at least until the 50 move rule kicks in and helps it prune). These positions are called "fortresses". You can tell this is happening because even if you input the solution, Stockfish still evaluates the final position as -10 or more. These fortress positions where Stockfish is dead wrong are few and far between, but they exist, and this is one of them.
There've been various attempts at writing fortress detection code in Stockfish and other conventional engines which are meant to recognize fortresses and stop Stockfish from heading for them if its position is superior. If you have a smart idea, you can probably publish it in an academic journal (see the publications in the chessprogramming wiki).

16875: <p>This is the study</p>

<pre><code>[fen "3B4/1r2p3/r2p1p2/bkp1P1p1/1p1P1PPp/p1P4P/PPBK4/8 w - - 0 1 "]
</code></pre>

<p>As you can see, Stockfish gives an absolute decisive win for black, though it is clearly a draw!!</p>

<p><a href="https://lichess.org/study/sANfn6M8" rel="noreferrer">Check it out yourself</a></p>

<p>c4+ is a losing move, while Ba4+ is the correct one.</p>

<p>What's going on? Doesn't Stockfish take into consideration closed positions <strong>at all</strong>?</p>
 18998: <p>It helps to understand that engines don't really go off of "strategy", so much as they look several moves into the future, evaluate the score of the position, and find the optimal move set.</p>

<p>The great weakness of that approach is that if nothing can happen quickly, the engine's going to have problems.  This used to be a <em>huge</em> problem with endgames.  If you've got a K+B+P vs K+P, you're not resolving that position in just a few moves.  So the fix was to add Endgame Tablebases to the engines - just bruteforce calculate every endgame position ahead of time and add them as a library for the engine to use.  (This is why, in most cheap chess apps, you can earn a win simply by surviving to the endgame: because it doesn't have an endgame tablebase.)</p>

<p>But your position is (understandably) not going to be in any endgame tablebase.  So stockfish has to play out millions of positions, stretching 10 or so moves into the future... only to find that in all of them, black is substantially up in material.  It definitely can't play out ~56 moves for the full decision tree - which is what it would take to determine a definitive draw.</p>
 15223: <p>Stockfish isn't a perfect chess-playing entity, and you've found a position where it's unable to tell is a draw (at least until the 50 move rule kicks in and helps it prune). These positions are called "<a href="https://www.chessprogramming.org/Fortress" rel="noreferrer">fortresses</a>". You can tell this is happening because even if you input the solution, Stockfish still evaluates the final position as -10 or more. These fortress positions where Stockfish is dead wrong are few and far between, but they exist, and this is one of them.</p>

<p>There've been various attempts at writing fortress detection code in Stockfish and other conventional engines which are meant to recognize fortresses and stop Stockfish from heading for them if its position is superior. If you have a smart idea, you can probably publish it in an academic journal (see the publications in the chessprogramming wiki).</p>
