セッションに格納する前に`htmlspecialchars`をかけていますが、この場合にエラーが発生すると下記のロジックも通ってしまい、二重に同じ処理を行ってしまいます。
https://github.com/fr-itaya/training/commit/5e1f27b08b1586d49029139f2ab12bd4c1345a5d#diff-ec8179f9475c380d2e1a7cb8261742aeR81
なのでこの処理は、このファイルの99行目以降に書きましょう。