メインコンテンツにスキップ
バージョン: 2.x

HOST151: 共有キャッシュによる応答の再利用

このエラーの意味​

ホスティング環境のキャッシュが、あるユーザーの店舗データを別のユーザーに返す可能性があります。

このデバイスのデータは失われていません。店舗の API(/wp-json/ と ?rest_route= の両方のアドレス)をキャッシュしないよう、ホスティング事業者に依頼してください。WCPOS が接続できなかった場合は、その後に再接続してください。

キャッシュ層が、リクエスト元を確認せずに保存済みの REST API 応答を返しています。アプリが異なる認証情報で確認リクエストを送ったところ、どちらにも最初のリクエストへの応答が返されました。稼働中の店舗では、あるレジ係に別のレジ係のデータが見える可能性があります。これはホスティング層の問題です。WordPress 自体は常にユーザーごとに応答します。

この場合、アプリはリクエストごとに一意のキャッシュキーを付けて再試行します。そのキーでキャッシュを回避できると確認できれば、WCPOS は接続し、以降もキーを送信します。その場合、このログはキャッシュの修正が引き続き必要であることを示す警告です。安全な接続を確認できない場合は、キャッシュが修正されるまで WCPOS は接続しません。

データへの影響​

このデバイスのデータは失われていません。安全な接続を確認できない場合、あるユーザーのデータを別のユーザーに表示する危険を避けるため、WCPOS は接続しません。デバイスに保存済みのデータはそのまま残り、接続後に送信されます。

対処方法​

ホスティング事業者またはサイト管理者の方へ — WCPOS がキャッシュを回避して接続できた場合でも、ホスティング環境側でキャッシュを修正する必要があります。

  1. 店舗の REST API パス(/wp-json/ および /?rest_route=)をページキャッシュから除外してください。LiteSpeed では REST キャッシュを無効にするか、キャッシュしないルールを追加します。WP Engine では WooCommerce の除外対象に /wp-json/wcpos と ?rest_route= 形式を追加します。Sucuri では Cache-Control に従うキャッシュレベルに設定します。
  2. 店舗の API はすでに Cache-Control: no-store と Vary: Authorization を送信していますが、キャッシュ層がこれらを無視しています。ホスティング事業者にこれらのヘッダーを確認してもらってください。
  3. キャッシュ設定を変更したら、キャッシュを消去してください。WCPOS が接続できなかった場合は、再接続してください。

詳細​

コード
HOST151 (CACHE_SHARED_REPLAY)
重大度
error
導入バージョン
WCPOS 1.10.0