ことれいのもり

PHP Fatal error: Error occurred during parsing: Fail to push limit. のエラーが出る原因と対処法

はじめに

PHPで開発中に、突然「PHP Fatal error: Uncaught Google\Protobuf\Internal\GPBDecodeException: Error occurred during parsing: Fail to push limit.」というエラーが表示されたことはありませんか?

特に、FileZillaなどのFTPクライアントを使ってファイルをサーバーにアップロードした直後にこのエラーが出ることがあります。

この記事では、FIleZillaでアップロードしたファイルがある場合のエラーの対処法を説明します。

対処法:FileZillaをバイナリファイルでアップロードする

対処方法は簡単で、FileZillaで「バイナリファイル」に設定してアップロードするだけです。

FileZillaを使っていない人は、あなたの使っているFTPクライアントでアップロードするときに「バイナリファイル」にしてアップロードしているか確認してください。

この記事ではFileZillaを使っている場合の変更方法について説明します。

FileZillaの設定方法

FileZillaの上部のタブから「転送」→「転送形式」→「バイナリ」と選択するだけです。

設定されている場合は「バイナリ」の左側に「・」がつきます。

この状態なら、バイナリファイルとしてアップロードされるようになります。


FileZillaの設定方法


エラーが出ていた原因

エラー文の中に「Fail to push limit.」という文字列がありました。

これは、自動生成されたprotobufメタデータファイルを変更した場合に出るエラー文です。


そんな設定を変更した覚えがない人が多いと思います。

FileZilleなどのFTPクライアントを使ってファイルをアップロードしたときに、一部のバージョンでは勝手に行末が変更されることがあります。

そのため、勝手に変更されないように最初から「バイナリファイル」をアップロードすることで上手くいきます。


このエラーを解決するために参考にしたリンクを、記事最後に載せておきます。

もっと詳しく知りたい人や、この方法では解決しなかった人は参考にしてください。

おわりに

「Fail to push limit」に関するエラーの対処法についてまとめました。

FTPクライアントによる転送データの問題だ、とはエラー文から想像しにくいですよね。

参考になれば幸いです。

参考リンク