ハルトの秘密基地

フリーランスエンジニアのガジェットとお金の話

エラーメッセージ "An unhandled lowlevel error occurred. The application logs may have details." の対応

ここにはプログラミングの話を書くつもりはなかったけど

他に書く場所もないので書く。

ググっても珍しく他の記事があまり参考にならなかったので。

というか自分の環境が特殊で、複合原因だった。

状況

環境

Heroku + puma + sinatra + ActiveRecord + mysql のウェブアプリ。

発生したエラー

画面遷移時(厳密にはDBにデータをinsertするタイミング)に

"An unhandled lowlevel error occurred. The application logs may have details."

原因

複合原因でややこしいが、

  • database.ymlではutf8mb4を指定していたのに実際のテーブルがutf8でレコードに依ってはinsertできない
  • そのときに発生していたエラーメッセージをslackAPIで運用ログとして飛ばしていたが、slackAPIで使用できない文字が含まれていた?(あいまい)
  • 結果としてslack-ruby-clientでクラッシュ
  • 表題のエラーが画面に出力された

対応

本番DBをutf8mb4に変更した。解決。

(普段使ってるクライアントのSequel Proで全テーブルポチポチでdone)

どうするべきだったか

ググる前にpumaのエラーログを確認するべきだった。コンソールで

heroku logs -t -a appname

で確認ができる。

このエラーメッセージは基本的にググってもRails関連の記事しか出てこない。

個人開発なので(言い訳にならないが)適当こきすぎて却って遠回りしてしまった。

反省。。。