ワイも unwrap は論外と思うやで。
ロジック的に失敗があり得ないから失敗の場合のことは書くのを省略するというのが unwrap の役割だろ。
失敗がないはずのところで失敗したならそれはロジックに誤りがあったということ。
つまりはバグだ。
プログラムにバグを書くのが正しいってことはない。

でも panic するのは正しいかもしれない。 (公開情報だけでは断言はできないけど。)
正しくないデータに対してプログラムが回復する余地がないなら終了するしか仕方ないし、
その問題にどう対処するかは運用の問題なので必要なログを残した上で終了するのは正しい。

特に今回の事例はメモリまわりの制御が絡んでいるということがある。
メモリが足りないままで続けるとあらたにメモリが必要な状況が生じて破綻するかもしれない。
エラーを返して上位レイヤで判断するのはロジック的には綺麗だがリソース不足の状況ではそうも言ってられない。