In this position Stockfish completely fails to see 29... Rc1, until I make the move on the board and then take back the move. Then it has it in its hashtable and it instantly recognizes it as the best move leading to mate in 9 or 10 moves.
This is an interesting limitation on the chess program's ability to see sacrifices. However, after about a minute and 50 seconds, at a depth of 29 ply, Stockfish figures out that Rc1 is the best move. For me, the move is pretty intuitive.
If I were writing a chess program, I would have it greatly reduce its search depth on sacrificial moves, because 99% of the time they are going to be wrong. Something like 1. e4 e5 2. Bc4 Nf6 3. Bxf7+ is just a bad move, and the program could waste an enormous amount of time looking at the possibilities that follow.