バージョン 9 サイトでログイン中に[エラー]というダイアログが表示される

バージョン 8 からバージョン 9 へアップデートしたところ、ログイン中にしばしば[エラー]という青いダイアログがポップアップ表示されるようになりました。

PHP 7.4.x + バージョン 8

PHP 8.0.x + バージョン 9

[エラー]とだけ表示されるケースや、[Undefined]という表示を伴うケースが確認されています。
数秒で消える場合と、ダイアログ右上の[x]ボタンを押すまで消えない場合があります。
以下は[x]ボタンを押すまで消えない場合の例です。

  1. ツールバーの歯車アイコンをクリックする
    コンポーザーが開きます。
    Firefox 開発者ツールのコンソールタブには以下が表示されます。

Error: Syntax error, unrecognized expression: input[name=akID[29][value]]
jQuery 7
handler https://ドメイン/concrete/js/cms.js?ccm_nocache=f8e7dc0c4caeb119bb18402055a4b37f37163025:180
VueJS 12
mounted https://ドメイン名/concrete/js/cms.js?ccm_nocache=f8e7dc0c4caeb119bb18402055a4b37f37163025:180
VueJS 14
https://ドメイン名/news/notice/2022/2022-07-01/ line 2 > injectedScript:4
value https://ドメイン名/concrete/js/cms.js?ccm_nocache=f8e7dc0c4caeb119bb18402055a4b37f37163025:73
https://ドメイン名/news/notice/2022/2022-07-01/ line 2 > injectedScript:3
jQuery 11
https://ドメイン名/news/notice/2022/2022-07-01/ line 2 > injectedScript:2
jQuery 14
openPanelDetail https://ドメイン名/concrete/js/cms.js?ccm_nocache=f8e7dc0c4caeb119bb18402055a4b37f37163025:284
setupPanelDetails https://ドメイン名/concrete/js/cms.js?ccm_nocache=f8e7dc0c4caeb119bb18402055a4b37f37163025:284
jQuery 4
vue.js:6:11762

  1. [ページ名]などを変更し[変更を公開]をクリックする
    [エラー]という青いダイアログがポップアップ表示されます。
    Firefox 開発者ツールのコンソールタブには以下が表示されます。

XHR POST https://ドメイン名/ccm/system/panels/details/page/composer/publish/?ccm_token=1664328724:c4b76eb762f8892a264cd6394425d295&cID=1661
[HTTP/2 500 Internal Server Error 252ms]

  1. ダイアログ右上の[x]ボタンを押す
    ダイアログが消えます。

  2. 再度[変更を公開]をクリックする
    変更が公開されます。

どのような原因が考えられますでしょうか。

Concrete CMS バージョン
9.1.1
9.1.2

PHP バージョン
8.0.x

サーバー
エックスサーバー

横から失礼
この様なエラーでしょうか?
task-activity-error2022-06-13

で、あれば、
私の環境でも発生しています。
MAMP環境で、phpは7.4.xです。

Concreteは、同じくv9.1.1とv9.1.2でも時々起こります。
ページ遷移時とか、タスク実行(投入)時とかです。

はい、こちらのダイアログです。
9.1.2 フルサイトをクリーンインストールした環境でも表示されますが、いずれもすぐに消えました。

やはり!
「エラーは気になりますよね!」
致命的でないにしてもWARNINGでなくErrorですものね。
v8.5.9の時は起こらなかったので、v9の問題でしょうか?

本件ですがコンポーザーの自動保存でも[エラー]という青いダイアログがポップアップ表示されました。
[x]ボタンを押すまで消えないタイプです。
Firefox 開発者ツールのコンソールタブには以下が表示されます。

XHR POST https://ドメイン名/ccm/system/panels/details/page/composer/autosave/?ccm_token=1665561032:aba3a6c23c7ae1af207ab871e9c0507d&cID=2571
[HTTP/2 500 Internal Server Error 97ms]

[管理画面]-[レポート]-[ログ]には以下が表示されます。

Exception Occurred: インストールディレクトリ/concrete/attributes/select/controller.php:250 Trying to access array offset on value of type null (2)

原因を切り分けるため一旦 PHP 7.4.x に戻しました。
[管理画面]-[システムと設定]-[サーバー設定一覧]-[ログ設定]-[コアログレベル]を[デバッグ]に変更すると、[管理画面]-[レポート]-[ログ]は以下のようになりました。

Exception Occurred: インストールディレクトリ/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:79 An exception occurred while executing ‘UPDATE CollectionSearchIndexAttributes SET ak_page_link = ? WHERE cID = ?’ with params [null, 2584]:
SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘ak_page_link’ in ‘field list’ (0)

データベースのことを言っているのかなと application/config/database.php に差分を取り込むなどしてみましたが変化はなく(以下はどちらでも問題ないのでしょうか?)

バージョン 8
‘driver’ => ‘c5_pdo_mysql’,

バージョン 9
‘driver’ => ‘concrete_pdo_mysql’,

不具合で敬遠していたタスク[コンテンツのインデックス再作成]を実行したところ、自動保存時の[エラー]ダイアログについては表示されなくなりました。

続いて PHP 8.0.x に変更すると、自動保存時の[エラー]ダイアログが再び表示されました。
[管理画面]-[レポート]-[ログ]は以下のようになりました。

Exception Occurred: インストールディレクトリ/concrete/attributes/select/controller.php:250 Trying to access array offset on value of type null (2)

この問題は[管理画面]-[ページとテーマ]-[ページタイプ]-[フォームを編集]に追加した[オプションリスト]タイプのカスタム属性で、[「なし」オプションをリストから隠す]が有効になっていると生じるようです。

こんばんは、
私も同様な経過を経て来ました。

v9.を最初からインストールした場合は、‘driver’ => ‘concrete_pdo_mysql’,です。(phpは、8.0、テーマは、Atomic)

v8(8.5.9)からv9(9.1.1➡9.1.2)にバージョンアップした場合は、‘driver’ => ‘c5_pdo_mysql’,のまま動作しています。(phpは7.4.1、テーマは、Stucco)

どちらも、Windows、MAMPの開発・テスト環境ですが、
先日添付したエラーが時々起きています(いました。※)。
(※.現時点では、新規でv9からインストールした環境は動かしていませんが、)

従いまして、phpのバージョンに関係なく、v9の問題の様な気がしています。

@Jun_22 @Jun1chi お世話になります。
確認が遅れてすいません。

こちら、順に確認していきます。

@Jun_22
返信が遅れてしまってすいません。

まず、undefined エラーについてはちょっとわかりかねるのですが、

Exception Occurred: インストールディレクトリ/concrete/attributes/select/controller.php:250 Trying to access array offset on value of type null (2)

これは PHP8 になった時の Concrete CMS の対応漏れだと思われます。
9.1.3 がリリースされましたが、それでも再現するのであれば’、ちょっと具体的な再現手順を導き出して、バグ報告になるかなと思います。

すいません、もうちょっと、具体的なエラーの出し方の手順をご教授願えますか?

PHP 8.0.x 環境に Concrete CMS 9.1.3 を フルサイト(Atomik)でインストールし検証しています。

以下の時、コンポーザーで保存すると[エラー]ダイアログが表示されます。

  1. コンポーザーに[オプションリスト]タイプの属性が含まれている
  2. 1 で何も選択されていない

2 は例えば以下のような場合に生じます。

  • [選択時、すべてのオプションを表示]が有効で[「なし」オプションをリストから隠す]が有効(初期値のないラジオボタン)
  • [複数のオプションを選択可能にする]が有効(チェックボックス)
1 Like

@Jun_22 すいません。

本トピック、は再現する条件が絞られたために、
解決ではないものの、一旦完了して、
以下のスレッドに移るということでしょうか?

はい、本件のうち生じる条件の分かったものについては、適したタイトルでトピックを追加いたしました。
上記は[エラー]というダイアログが右上の[x]ボタンを押すまで消えない方のタイプです。
再現する手順をご報告できるのは現在のところ上記のみです。

[エラー]というダイアログが表示され数秒で消える方のタイプについては、生じる条件を特定できずにおります。
ページ遷移時や編集モード起動時など様々な状況で表示されるのですが、毎回ではありません。
読込中や処理中ではなくエラーですので、環境や設定が適切なら表示されないのだろうとは思うのですが、皆様のお手元ではいかがでしょうか。

1 Like

@Jun_22 ありがとうございます。
では、コンポーザー画面で、突然「undefined」というポップアップが表示されてしまうというエラーは継続ということですね、

ちなみに、このサイトで使用しているテーマはなんでしょうか?

オリジナルであれば、何か使っている CSS フレームワーク (Bootstrap, Tailwind など) などや、Javascript のライブラリなどわかる範囲で教えてもらいたいです。

ちょっと僕の方では、このエラーにまだ出会ったことがないので、再現する条件、原因を知りたいです。

何か確実な再現条件をみつけたりしたら、GitHub にバグ報告しますね。

テーマはバージョン 8 の時に制作したもので、CSS フレームワーク、Javascript ライブラリは使用しておりません。
ページを編集・公開した後の操作で遭遇することが多い印象です。

Concrete CMS 9.1.3 を フルサイト(Atomik)でインストールし、キャッシュを無効化して試しましたところ、以下の操作で再現できました。

  1. [resources(リソース)]ページの[ページ名]を変更・公開する
  2. 直後に子ページの[Resource One]ページへアクセスする
1 Like

@Jun_22 ありがとうございます!僕の方でも再現できました!

GitHub の Issue にバグ報告しました。

すいません、Chrome では再現せず、Firefox のみ再現している様です。

Concrete CMS はオープンソースなので、みなさんのバグ修正のヘルプが必要です。もしくは、他の方に直してもらうのを待ちます。

当方環境でも Chrome では問題を生じないことが確認できました。
ダイアログが消えるまで待てば作業できないということはないのですが、[エラー]と表示されると作業者は不安になるようです。
ご対応いただきありがとうございました。