トップページのみ編集ができなくなりました

急に、トップページのみ編集ができなくなり、困っております。

環境は

バージョン 9.2.0 ロリポップ PHP8.2.3

です。

特に何も特別なことせず、いつもどおり運用していました。急にトップページの中段に配していたページリストブロックのところでエラーが表示され、それより下の部分とページ編集やコンポーザなどのアイコンが非表示となり、編集できなくなりました。

トップページ以外のページは正常に動作し、編集もできました。

ページリストには自作のテンプレートをあてていましたが(今まで普通に動いていた)、デフォルトのものをコピーし、名前を一致させたところ、ページリストブロックを含むトップページすべてが表示され、かつ編集モードにも入れるようになりました。ところが、実際、編集しようとすると、ブロック追加、レイアウト追加まではできますが、ブロックを編集してOKをおすと、下記エラーが出てしまいます。

An exception occurred while executing ‘insert into CollectionVersionBlocks (arHandle, cbRelationID, cbOverrideAreaPermissions, cbIncludeAll, cbOverrideBlockTypeCacheSettings, cbOverrideBlockTypeContainerSettings, cbEnableBlockContainer, isOriginal, cbDisplayOrder, cID, cvID, bID) select arHandle, cbRelationID, cbOverrideAreaPermissions, cbIncludeAll, cbOverrideBlockTypeCacheSettings, cbOverrideBlockTypeContainerSettings, cbEnableBlockContainer, 0, cbDisplayOrder, ?, ?, CollectionVersionBlocks.bID from CollectionVersionBlocks where CollectionVersionBlocks.cID = ? and CollectionVersionBlocks.cvID = ?’ with params [1, 1291, 1, 1290]:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‘1-1291-7402-Main : 246’ for key ‘PRIMARY’

どの種類のブロックでも同様です。

エラーのあと、トップページのすべてのブロックが消えてしまいます。編集をキャンセルでもとにもどしてます。

フルサイトマップで、トップページを複製してみましたが、複製したページでも編集できません。

トップページ以外のページは正常に動作しています。

キャシュのクリアや、エラーになる前のバージョンに戻したり、concreteフォルダを再インストールしたりしてみましたが、解決しません。管理画面のレポートは表示されず、エラー( 1. “Valid form entry category cannot be found. If you have removed or renamed this element you must reinstate it.”)になります。

初心者なので、これ以上自分ではどうにもできない状況です。

申し訳ございませんが、ご教示いただければ幸いです。

よろしくお願いいたします。

そのエラーメッセージだけでは原因の特定はできませんので、もう少し原因を探ったほうがよろしいかと思います。
エラーになる前のバージョンに戻してみた李、複製したページでも試してみたのは素晴らしいです。
テーマが問題かどうかが不明ですので、一度その複製したページのテーマを変更して試してみてください。

hissy様 コメントありがとうございます。著名な方に返信いただき感激です。
書き忘れていましたが、今のテーマはAtomicでエレメンタルに変えてみても改善しませんでした。

ブロックは編集できても、確定を押すと次のエラーが出ます。

An exception occurred while executing ‘insert into CollectionVersionBlocks (arHandle, cbRelationID, cbOverrideAreaPermissions, cbIncludeAll, cbOverrideBlockTypeCacheSettings, cbOverrideBlockTypeContainerSettings, cbEnableBlockContainer, isOriginal, cbDisplayOrder, cID, cvID, bID) select arHandle, cbRelationID, cbOverrideAreaPermissions, cbIncludeAll, cbOverrideBlockTypeCacheSettings, cbOverrideBlockTypeContainerSettings, cbEnableBlockContainer, 0, cbDisplayOrder, ?, ?, CollectionVersionBlocks.bID from CollectionVersionBlocks where CollectionVersionBlocks.cID = ? and CollectionVersionBlocks.cvID = ?’ with params [1, 1277, 1, 1276]:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‘1-1277-7402-Main : 246’ for key ‘PRIMARY’

詳細

~/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php(74): Doctrine\DBAL\Exception\UniqueConstraintViolationException->null
~/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(182): Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException
~/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(159): Doctrine\DBAL\DBALException->wrapException
~/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2222): Doctrine\DBAL\DBALException->driverExceptionDuringQuery
~/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1312): Doctrine\DBAL\Connection->handleExceptionDuringQuery
~/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php(18): Doctrine\DBAL\Driver\PDO\Exception->null
~/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(119): Doctrine\DBAL\Driver\PDO\Exception->new
~/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(117): PDOException->null
~/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(117): PDOStatement->execute
~/concrete/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1304): Doctrine\DBAL\Driver\PDOStatement->execute
~/concrete/src/Page/Cloner.php(626): Doctrine\DBAL\Connection->executeQuery
~/concrete/src/Page/Cloner.php(533): Concrete\Core\Page\Cloner->directCopy
~/concrete/src/Page/Cloner.php(462): Concrete\Core\Page\Cloner->copyBlocks
~/concrete/src/Page/Cloner.php(325): Concrete\Core\Page\Cloner->copyData
~/concrete/src/Page/Collection/Collection.php(1386): Concrete\Core\Page\Cloner->cloneCollectionVersion
~/concrete/src/Page/Collection/Collection.php(408): Concrete\Core\Page\Collection\Collection->cloneVersion
~/concrete/controllers/backend/user_interface/block.php(82): Concrete\Core\Page\Collection\Collection->getVersionToModify
~/concrete/controllers/dialog/block/edit.php(61): Concrete\Controller\Backend\UserInterface\Block->getBlockToEdit
~/concrete/src/Controller/AbstractController.php(318): Concrete\Controller\Dialog\Block\Edit->submit
~/concrete/src/Controller/AbstractController.php(318): null->call_user_func_array
~/concrete/src/Routing/ControllerRouteAction.php(64): Concrete\Core\Controller\AbstractController->runAction
~/concrete/src/Http/RouteDispatcher.php(37): Concrete\Core\Routing\ControllerRouteAction->execute
~/concrete/src/Http/Middleware/DispatcherDelegate.php(39): Concrete\Core\Http\RouteDispatcher->dispatch
~/concrete/src/Http/Middleware/MiddlewareStack.php(86): Concrete\Core\Http\Middleware\DispatcherDelegate->next
~/concrete/src/Http/DefaultDispatcher.php(127): Concrete\Core\Http\Middleware\MiddlewareStack->process
~/concrete/src/Http/DefaultDispatcher.php(60): Concrete\Core\Http\DefaultDispatcher->handleDispatch
~/concrete/src/Http/Middleware/DispatcherDelegate.php(39): Concrete\Core\Http\DefaultDispatcher->dispatch
~/concrete/src/Http/Middleware/FrameOptionsMiddleware.php(39): Concrete\Core\Http\Middleware\DispatcherDelegate->next
~/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\FrameOptionsMiddleware->process
~/concrete/src/Http/Middleware/StrictTransportSecurityMiddleware.php(36): Concrete\Core\Http\Middleware\MiddlewareDelegate->next
~/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\StrictTransportSecurityMiddleware->process
~/concrete/src/Http/Middleware/ContentSecurityPolicyMiddleware.php(36): Concrete\Core\Http\Middleware\MiddlewareDelegate->next
~/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\ContentSecurityPolicyMiddleware->process
~/concrete/src/Http/Middleware/CookieMiddleware.php(35): Concrete\Core\Http\Middleware\MiddlewareDelegate->next
~/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\CookieMiddleware->process
~/concrete/src/Http/Middleware/ApplicationMiddleware.php(29): Concrete\Core\Http\Middleware\MiddlewareDelegate->next
~/concrete/src/Http/Middleware/MiddlewareDelegate.php(50): Concrete\Core\Http\Middleware\ApplicationMiddleware->process
~/concrete/src/Http/Middleware/MiddlewareStack.php(86): Concrete\Core\Http\Middleware\MiddlewareDelegate->next
~/concrete/src/Http/DefaultServer.php(85): Concrete\Core\Http\Middleware\MiddlewareStack->process
~/concrete/src/Foundation/Runtime/Run/DefaultRunner.php(125): Concrete\Core\Http\DefaultServer->handleRequest
~/concrete/src/Foundation/Runtime/DefaultRuntime.php(102): Concrete\Core\Foundation\Runtime\Run\DefaultRunner->run
~/concrete/dispatcher.php(45): Concrete\Core\Foundation\Runtime\DefaultRuntime->run
~/index.php(2): null->require

ページ数は1000を超えてるので、なんとかトップページを復活させたいと考えています。トップページだけの再構築は労力ではないのですが、以前のhissy様がコメントされた記事をみると、トップページの差し替えは難しいようで、どうしていいか悩んでおります。

テーマの問題でないとすると、本来作られるはずのないゴミデータがなんらかの原因でできてしまったようです。バージョンの複製は可能ですか?ツールバーのギアボタンでメニューを開き、バージョンをクリック。最新のバージョンの … ボタンをクリックして、メニューから複製をクリック。

最新のバージョンでできなければ、ひとつずつ遡って試してみてください。

hissy様 本当にご多忙な中アドバイスいただきまして申し訳ございません。ありがとうございます。

バージョンはすでに障害の起こった1ヶ月前くらいまで削除してみましたが、改善しませんでした。
バージョンの複製を今回はじめて行いましたが、エラーが出て複製できません。バージョンの承認、承認取り消し、削除は操作できます。そのような状況です。

トップページになにかの編集を施し、確定を押すと、フリーズします。ブラウザをリロードすると、トップページのすべてのブロックが空になり、白紙になってしまうので、変更を破棄を押して、もとに戻しています。
ただ、いろいろ試してみますと、記事ブロックは設置不可能なんですが、画像ブロックやパンくずは設置できるようです。ただし、1個設置して、追加で設置しようとすると、またすべてのブロックが、消えてしまいます。

とりあえず、トップページと同じ疑似トップページを子ページとして作り直し、トップページになんとか設置した画像にリンクを張って、疑似トップページに誘導しています。

よくよく考えれば、疑似トップページにリダイレクトさせればいいのではと思い、.htaccessを編集していますが、まだうまくいっていません。
RewriteRule . index.php [L]のところを書き換えればいいと思うのですが。

健全な解決法ではないですが、時間は稼げるので。

以上状況です。

複製もできなかったとのことなので、最後の手段です。エラーの原因になっているデータベースのレコードを削除しましょう。それで編集はまたできるようになると思いますが、トップページの一部のデータが消えてしまうと思います。手作業で再入力して復活してください。次のSQL文で削除できます。作業は自己責任でお願いします。実行前にバックアップを取りましょう。

DELETE from `CollectionVersionBlocks` WHERE `cID` = 1 AND `cvID` = 1277 AND `bID` = 7402 AND `arHandle` = "Main";

hissy様 アドバイスありがとうございます!
サーバーや、データベースのバックアップをして、さらに過去記事など十分に読み込んでから、自己責任で取りかかってみます。
結果はまたご報告します。
ご多忙な中、ご教示いただき本当に感謝いたします。

hissy様

解決いたしました。
phpMyAdminで、レコードを削除しました。一つのレコード削除だけではうまくいかなかったので、すでに削除したバージョンに対応するレコードもすべて削除したところ、編集が可能となりました。

ご多忙な中、著名な方が、初心者に丁寧にご教示いただいたことに深く感謝申し上げます。
感謝の意として、マカルーさんのアドオンを一つ購入させていただきました。

ありがとうございました。