HOST151: キャッシュが共有されて再生されています
この意味
ホスティング側のキャッシュにより、ある人の店舗データが別の人に再表示される可能性があります。
このデバイス上のデータは失われません。ホスティング事業者に、店舗のAPI(/wp-json/と?rest_route=の両方のアドレス)をキャッシュしないよう依頼してください。WCPOSが接続できなかった場合は、その後に再接続してください。
キャッシュ層が、要求元を確認せずに保存済みのREST API応答を配信しています。アプリが異なる認証情報で2つのプローブを送ったところ、どちらにも1つ目のプローブの応答が返されました。実店舗でこの状態が起きると、あるレジ係が別のレジ係のデータを見られるおそれがあります。これはホスティング層の問題です。WordPress自体は常にユーザーごとに応答します。
この問題が起きると、アプリはリクエストごとに一意のキャッシュキーを付けて再試行します。そのキーでキャッシュを通過できると確認できた場合、WCPOSは接続し、そのキーを付けてリクエストを送り続けます。このログ項目は、キャッシュの修正がまだ必要であることを示す警告です。安全な接続を確認できない場合、キャッシュが修正されるまでWCPOSは接続しません。
お客様のデータ
このデバイス上のデータは失われません。安全な接続を確認できない場合、WCPOSはある人のデータを別の人に表示するリスクを避けて接続しません。このデバイスにすでにあるデータはそのまま保持され、接続後に送信されます。
トラブルシューティング
ホスティング事業者またはサイト管理者向け — WCPOSが回避策で接続できた場合でも、ホスティング側でキャッシュを修正する必要があります:
- ページキャッシュから店舗のREST APIパス(/wp-json/と/?rest_route=)を除外してください。LiteSpeedではRESTキャッシュを無効にするか、キャッシュしないルールを追加します。WP EngineではWooCommerceの除外対象に/wp-json/wcposと?rest_route=形式を追加します。Sucuriでは、Cache-Controlを尊重するようキャッシュレベルを設定します。
- ストアの API はすでに Cache-Control: no-store と Vary: Authorization を送信しています — キャッシュ層がそれらを無視しています。ホストにそれらのヘッダーを確認するよう伝えてください。
- キャッシュ設定を変更した後、キャッシュを消去してください。WCPOSが接続できなかった場合は、再接続してください。