「変更が正しい JSON レスポンスではありません」で記事が保存できない(WordPress、mixhostのサーバ障害)

「変更が正しい JSON レスポンスではありません」で記事が保存できない(WordPress、mixhostのサーバ障害)
閲覧中のユーザー数
(閲覧中のユーザー:0)
  • WordPressで記事を保存しようとしたら「更新に失敗しました。返答が正しい JSON レスポンスではありません」というエラーが表示されました(2023年9月21日 10:00ごろ)。
  • どうも、記事保存時のアクセスでエラーになっているようです。
    いくつか対処法を確認しましたが、改善せず。
  • さしあたり、「パーマリンク設定」を「基本」に変更すれば、記事を投稿できます。
    ただし、この方法だと検索エンジンからのアクセスが 404エラーになってしまう問題点もありました。
  • SNSでのエラー情報によると、レンタルサーバで mixhost を利用しているという共通点があるようです。
  • 【追記】mixhostのマイページ – メンテナンスの完了報告後、「パーマリンク」を設定しても無事に投稿できるようになりました。(2023-09-21 14:40)
「変更が正しい JSON レスポンスではありません」で記事が保存できない(WordPress、mixhostのサーバ障害)

サーバ障害で「JSON レスポンス」のエラーになることもあるんだね。

sns_share_buttons
\記事が役に立ったらシェアしてね/
【スポンサーリンク】

1. 記事が保存できない

朝(2023年9月21日 10:00ごろ)、記事を投稿しようとしたら、エラーになって進めませんでした。

1. 記事が保存できない

更新に失敗しました。返答が正しい JSON レスポンスではありません

記事の保存ができないので、同じタブで別のページに移動しようとすると、「行った変更が保存されない可能性があります」と表示されます。

幸いにして、外部からウェブサイトを閲覧するのは、問題なく動いています。
更新だけができません。

1.1. JSON リスポンスのエラーの主な対処法

このエラーは、よくあるものです。
ブロックエディタからデータベースに書き込むときに問題があることを示しています。

WordPressのブロックエディタは、「REST API」(Webシステムを利用するための呼び出しルール)を使って「wp-json」と通信し、記事の更新をしています。
この経路のどこかに問題がありそうです。

主な対処法は、

  • クラシックエディタから書き込む
    (現在は通常はない)
  • パーマリンクの設定を「基本」にする
  • サイトの .htaccess を修正する
  • サーバのWAF(Web Application Firewall)を無効化する
  • WordPressのREST APIを無効化する

見てわかるように、かなり土台の部分の問題によって出てくるエラーなのです。

1.1. JSON リスポンスのエラーの主な対処法

正しく問題点を修正するのは大変です。

2. パーマリンクを「基本」にする

簡単に試すことができるのは、「パーマリンク」を「基本」にすること。
これだけで、問題の所在が明確になるかもしれません。

2. パーマリンクを「基本」にする

今回のエラーでは、これだけでブロックエディタでの記事の保存・公開ができるようにはなりました。
つまり、この周辺に問題の「根っこ」がありそうです。

2.1. これではリンク切れになる

ただし、これは「パーマリンクを使わない」ということです。
すべての記事は、「?p=id」のようなパラメータクエリでアクセスします。

パーマリンクにアクセスがあっても記事に誘導しなくなるので、検索結果などでのサイトへのアクセスが軒並み「リンク切れ」になってしまいます。

2.1. これではリンク切れになる

根本的には解決していません。

3. いろいろ対処法を試したけど

ネット上の過去の事例を参考に、いろいろ対処法を試してみました。

なんとなくWordPressの理解は深まった気がしますが、半日取り組んで結局は出ず。

3.1. プラグイン・テーマの問題を切り分ける

一応、プラグインやテーマの問題を切り分ける必要があります。

  • 今回は、すべてのプラグインを無効化し、
  • テーマを一時的に別のものに入れ替えてみました。

しかし、ブロックエディタで保存できない問題は解決しませんでした。

3.2. .htaccessを修正しても直らず

サイトへのアクセス制御をしている「.htaccess」がおかしいことも考えられました。

いろんなプラグイン設定やパーマリンク構造の変更などで、自動的に「.htaccess」は書き換えられます。
その中でデータ破損してしまうことがあるようです1

パーマリンクを「基本」にしてから戻すことで、「.htaccess」を正しく書き直せるようです2

ただし、今回は パーマリンクの変更前後で .htaccess の内容を比較してみましたが、全く同じものでした。

3.2. .htaccessを修正しても直らず

.htaccessには問題がなさそうです。

3.3. WAFを無効化しても直らず

アクセスをブロックしてしまう原因としては、「WAF(Web Application Firewall)」があります。

これは、サーバへの不審なアクセスをブロックするセキュリティ機能です。
しかし、たまに 間違えて 自分自身をブロックしてしまうことがあります3

セキュリティ上 WAFを完全に無効化するわけにはいきませんが、一時的に無効化して戻すことで改善するかもしれません。

mixhostでのWAFは、cPanelの「ModSecurity」から管理できます4

3.3. WAFを無効化しても直らず

「無効化」して反映されるのに少し時間がかかります。
5分ほど待ってみました。

しかし、記事の保存はできませんでした。
WAFが原因ではなさそうです。

3.4. REST APIを無効化するとエディタ画面が表示されず

functions.phpに WordPressのREST APIを無効化するコードを入れてみました5

//特定のプラグインを除外してREST APIを無効にする
function deny_restapi_except_plugins_demo( $result, $wp_rest_server, $request ){
    $namespaces = $request->get_route();

    //oembedの除外
    if( strpos( $namespaces, 'oembed/' ) === 1 ){
        return $result;
    }
    //Jetpackの除外
    if( strpos( $namespaces, 'jetpack/' ) === 1 ){
        return $result;
    }
    //Contact Form7の除外
    if( strpos( $namespaces, 'contact-form-7/' ) === 1 ){
        return $result;
    }

    return new WP_Error( 'rest_disabled', __( 'The REST API on this site has been disabled.' ), array( 'status' => rest_authorization_required_code() ) );
}
add_filter( 'rest_pre_dispatch', 'deny_restapi_except_plugins_demo', 10, 3 );

すると、ブロックエディタ自体が真っ白で開かなくなりました。

3.4. REST APIを無効化するとエディタ画面が表示されず

ブロックエディタは、REST APIを利用しているので、当然といえば当然ですね。

4. mixhostからサーバ メンテナンスのメールがあった

そうこうしているうちに、SNS上で同様のエラー報告が見つかりました。
どうも、mixhostサーバを利用している共通点があるようです。

WordPress編集画面で保存すると「更新に失敗しました。 返答が正しい JSON レスポンスではありません。」と表示される

mixhostユーザーに同様の被害が多発してるみたい

https://x.com/ugo_fukugyo/status/1704716806403879191?s=20

私も朝からその状態でミックスホスト、swellユーザーです。

https://x.com/noa_maru_a/status/1704708564047253739?s=20

私もミックスホストで、今日同じエラーが出ています

パーマリンクいじってもなおらず。。。 一時的なものだろうと信じて放置しています・・・

https://x.com/nuuchanmh/status/1704715279790739475?s=20

mixhostからのメールを見てみると、一昨日に一時的にサーバ障害があって、これからサーバメンテナンスの予定がアナウンスされていました。

4. mixhostからサーバ メンテナンスのメールがあった

とりあえず、メンテナンスの完了を待つことにしました。

4.1. メンテナンス完了で復旧できた

すると、無事に元に戻りました。
ちゃんとパーマリンクが有効な状態で記事の保存ができるようになりました。

4.1. メンテナンス完了で復旧できた
こちらもどうぞ。
[WordPress] プラグインの更新をしたら「Briefly unavailable」
[WordPress] プラグインの更新をしたら「Briefly unavailable」
WordPressのプラグイン更新を実行したら、進捗状況の画面ではなく「一時的に利用できない」というエラーが表示されました。そのまま 1分ほどしてサイトを表示し直してみたら、問題なく表示できました。プラグインの更新もちゃんと1つ進んでいました。グレーの画面に焦ったけど、プラグインの更新に時間がかかっただけだね。プラグインの更新をしたらエラー画面WordPressのプラグインの更新を開始したら、 エラー画面が表示されました。Briefly unavailable for sch...

WordPressサイトはどうやってできているの?【3つのログイン】
WordPressサイトはどうやってできているの?【3つのログイン】
WordPressに興味があるのですが、どんなものなのですか?なんとなく、エディタでHTMLを作成するのと、ブログサービスに登録することの中間みたいな印象はあるのですが……。3つのログインページWordPressサイトの成り立ちを知るには、WordPressサイトを管理するための3つのログイン画面を知ることが近道です。レンタルサーバー企業の会員ページ借りたサーバーの管理ページWordPressの管理ページレンタルサーバの契約WordPressサイトを作るには、まずはレンタルサ...

[WordPress]「Briefly unavailable for scheduled maintenance」【自動更新タイミング】
[WordPress]「Briefly unavailable for scheduled maintenance」【自動更新タイミング】
先日、自分のブログを確認していたら、突然 グレーの画面で何も表示されなくなりました(2021-11-02 23.34.33)。Briefly unavailable for scheduled maintenance. Check back in a minute.(定期メンテナンスのために一時的に利用できません。 しばらくしてからもう一度確認してください。)これは、WordPressのメンテナンス中の表示です。私は、プラグインやテーマの自動更新を有効にしているので、たまたま...

(補足)

  1. .htaccessの中身が空になっていました。- ワードプレスで保存すると「返答が正しい JSON レスポンスではありません」となり見出しが自動下書きとなる現象に対処 | ホームページ制作 オフィスオバタ
  2. 変更を保存する際に、.htaccessも設定情報にあわせた内容に書き換わり、投稿の際に上記のエラーが出なくなります。 –「公開(更新)に失敗しました。 返答が正しい JSON レスポンスではありません。」のエラーを修正する方法 – YCOMのホームページの制作・運営に役立つブログ
  3. WAFが影響してサイトの一部のコンテンツが更新できない – WordPressで内容が更新できない!そんなときはWAFを疑おう | しらこのナレッジ
  4. WAF/ModSecurityの有効/無効を切り替える方法 – mixhost ヘルプ&サポート
  5. 参考:WordPressのREST APIを無効化しつつ特定プラグインは動作するようにカスタマイズする方法
QRコードを読み込むと、関連記事を確認できます。

「変更が正しい JSON レスポンスではありません」で記事が保存できない(WordPress、mixhostのサーバ障害)
【スポンサーリンク】
タイトルとURLをコピーしました