The gamepigeon app is declaring I lost (I am black). This simply does not make sense since it is white's turn and they are in check. The game abruptly ends.
Is this erroneous logic? How can I lose if I am not in check?
This is a bug. The GamePigeon app was written by non-chess programmers, their focus is not on chess. They're not specalized in chess apps, chess is just one of the many things they do.
Well, the app was wrong to declare the game over at that point. But it is a losing position for black.
6Q1/8/7R/8/4P3/1P3K2/P4P1n/7k w - - 0 0 1. Rxh2 Kxh2 2. Qg2#
Notably, white needs to be careful, as most king moves immediately lead to stalemate and a draw.
I think I also understand what the bug in the app is. It's been programmed to check every position to see if there is a side with no legal moves. If there is, that side is declared the loser. That's what it sees here - no legal moves for black, so black loses. Never mind that it's not even black's turn (so it doesn't matter if he has moves or not), that it couldn't possibly be black's turn because white is in check, or that in general, "no legal moves" can be a stalemate just as well as a loss.