WordPress「An error occurred, please try again」:プラグインのライセンス確認が失敗する原因と通知の削除

WordPressの「An error occurred, please try again.」通知は、プレミアムプラグインがライセンスサーバーに確認を要求して正常な応答を受け取れなかったときに、管理画面の上部に表示するエラー通知です。この通知が表示されたサーバーで文言からプラグインを特定し、同じプラグインでライセンスサーバーの応答を変えて再現した結果、サーバー復旧後も1時間残る通知は再試行待機の値を削除して解決できました。

Essential Blocks Proはこの通知をすべての管理画面に表示し、ライセンスサーバーが503を返したかHTMLを返したかによって、通知が残る時間が異なります。

WordPressの投稿一覧の上に表示された「An error occurred, please try again.」通知

1️⃣ WordPress「An error occurred」:通知を表示したプラグインを探す

WordPress管理画面 の上部に表示されるためWordPress本体のエラーに見えますが、WordPressのコアファイルにこの文言はありません。文言はプラグインのライセンス確認コードに含まれているため、プラグインフォルダー内で文言を検索すると、通知を表示したプラグインを特定できます。

文言を検索するときは、カンマとピリオドを区別します。ピリオドで区切られた [An error occurred. Please try again.] はWordPressコアの文言で、ダッシュボードの [WordPress イベントとニュース] ウィジェットで都市を検索してイベント情報を取得できなかったときに、画面上部ではなくウィジェット内に表示されます。

WordPressダッシュボードのイベントとニュースウィジェットに表示された「An error occurred. Please try again.」エラー

末尾に [later] が付くコアの文言は、テーマ・プラグインのファイルエディターで保存したファイルがエラーを起こして元に戻すときと、カスタマイザー画面で使われます。コアの文言はWordPressの日本語翻訳ファイルに日本語の文が入っていますが、Essential Blocks Proには日本語の翻訳ファイルがないため、日本語の管理画面でもライセンス通知は英語のまま表示されます。

grep -rl 'An error occurred, please try again' wp-content/plugins --include=*.php
wp-content/plugins/essential-blocks-pro/includes/Deps/WPDeveloper/Licensing/Manager.php

コマンドはWordPressのインストールフォルダーで実行し、結果のパスで wp-content/plugins の次に来るフォルダー名がそのプラグインです。この文言はEssential Blocks Proのほか、Advanced Database Cleaner Proのライセンス確認コードと、TranslatePressのAI APIキー確認コードにも含まれています。

結果が複数ある場合は、管理画面のページソースで通知ボックスのクラス名を確認します。Essential Blocks Proの通知は [essential-blocks-pro-notice] クラスを使っています。

2️⃣ 通知が表示される場合:503・HTML応答とタイムアウト

Essential Blocks Proは管理画面を開くたびに保存されたライセンス情報があるか確認し、なければライセンスサーバーに確認を要求します。下のダイアグラムは、ライセンスサーバーの応答だけを変えながら管理画面を開いて確認した結果です。

🧭 ライセンス確認と管理画面の通知
解説ダイアグラム
📡 サーバー応答
🛠️ サーバー復旧後
🖥️ 管理画面
An error occurred, please try again.
cURL error 28
通知なし
→開くたびに
🧩 プラグインのライセンス確認
🔑 ライセンス情報 3か月📝 保存されたエラー⏳ 再試行待機 1時間
⇄確認リクエスト
✕リクエストなし
☁️ ライセンスサーバー
503
200 · HTML
応答なし 15秒
200 · JSON
ライセンスサーバーが503を返すと、プラグインはエラーを保存して1時間の再試行待機を設定し、すべての管理画面に同じ通知が表示されます。
ライセンスサーバーが正常に戻っても、1時間の待機中は確認要求を送らないため、保存された通知がそのまま残ります。
応答コードは200でも本文がJSONではなくHTMLの場合は同じ通知が保存され、このときは再試行待機は設定されません。
再試行待機がないため次の管理画面で再度確認し、正常な応答が返ると保存された通知は削除されます。
15秒以内に応答がないと、通知の文言はcURLエラーの内容に変わり、1時間の再試行待機が設定されます。
503の場合と同じく1時間の待機中は再確認しないため、cURLエラーの通知が残ります。
正常な応答を受け取ると、ライセンス情報が3か月間保存され、通知は表示されません。
保存されたライセンス情報がある間はライセンスサーバーに再確認しないため、サーバーに障害があっても通知は表示されません。

503のように200以外の応答と、200でも本文がJSONではなくHTMLの応答で、この通知が表示されます。15秒以内に応答がない場合や接続自体が失敗した場合は、WordPressが返したcURLエラーの内容がそのまま通知に表示されるため、この場合は別の文言の通知を目にすることになります。

正常な応答で保存されたライセンス情報は3か月間保持され、その間はライセンスサーバーに障害があっても確認要求を送らないため、通知は表示されません。

3️⃣ サーバー復旧後も残る通知の削除

ライセンスサーバーが正常に戻っても、通知はすぐには消えません。503やタイムアウトで失敗するとプラグインは1時間の再試行待機を設定し、その間は確認要求を送らず、保存された通知を表示し続けます。

wp option list --search='wpdeveloper_sl_failed_http_*'
option_name	option_value
wpdeveloper_sl_failed_http_7838117baf19d8c92e668c95a04a2642	1792071902

値は待機が終わる時刻(UNIX時間)で、オプション名の末尾の文字列はライセンスサーバーのアドレスから作られた値のため、同じプラグインならサイトが違っても同じです。

wp option delete wpdeveloper_sl_failed_http_7838117baf19d8c92e668c95a04a2642
Success: Deleted 'wpdeveloper_sl_failed_http_7838117baf19d8c92e668c95a04a2642' option.

削除後に投稿一覧を開き直すと、プラグインがライセンスサーバーに再確認し、正常な応答が返れば通知は消えます。ライセンスサーバーの障害が続いている間は再び503を受け取って同じ通知と1時間の待機が新たに設定されるため、削除はライセンスサーバーが正常に戻ってから行います。

🔢 FAQ & おすすめコンテンツ

表示されません。通知は管理画面の上部にのみ表示され、ログインしていない訪問者が開くページには表示されません。

表示されます。Essential Blocks Proはライセンスエラー通知を表示する際にユーザー権限を確認しません。プラグインを管理する権限のない投稿者権限で管理画面を開いても、同じ通知が表示されます。

別の文言が表示されます。ライセンスサーバーが期限切れの状態を返すと、通知は [Your Essential Blocks Pro license key expired on …] という文言に変わります。このときは1時間の再試行待機は設定されません。

ℹ️ 提携について
当サイトのコンテンツにはアフィリエイトリンクが含まれています。訪問者がこのリンクを通じて商品やサービスを購入すると、当サイトは販売元から手数料を受け取ります。この過程において、購入者が支払う金額(イベント割引適用で金額が下がります↓)は上昇しません。掲載されている価格・割引・在庫情報は作成時点のものであり、実際とは異なる場合がありますので、ご購入前に販売元にて最終確認をお願いいたします。商品の選定および評価は独自の基準に基づいて行われており、手数料の支払いの有無は紹介順や評価内容に影響を与えません。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

人間であることを証明してください: 3   +   9   =