ええと、何が原因だろう?
自分のところでも同じ症状が出たのですが、現象を再現できずにいます。

現象としては、データベースの該当 PM レコードに異常が発生しているので、それを探して直す必要があります。

具体的には、xxxxx_priv_msgs.msg_id のフィールドが 0 になっているレコードがあるので、それを適当な値に変更するか、不要なら削除する必要がります。

phpMyAdmin などが使えればそれで、SQL が判るならコマンドを叩くか、phpコードを書いて実行すればよいでしょう。

例えば、カスタムブロックの PHP-eval 次のようなものを作って表示すると ... でもテストしてないからうまくいくかどうか。
global $xoopsDB;
$xoopsDB->queryF("UPDATE ".$xoopsDB->prefix("priv_msgs")." SET msg_id=9 WHERE msg_id=0");