blocks – Panelizer content missing on module update

I’m in the process of migrating a client’s Drupal 8 installation to the preferred composer structure (outside of docroot), but having a single issue causing a full stop. They use Panelizer for most pages, and most layouts are Flexible (flexible_layout). The issue is that anything that uses the Flexible layout seems unable to see any blocks. Other layouts are fine. The Flexible layout itself seems intact, all rows/regions are where they should be and labeled properly, just missing the blocks. The blocks are still there, as reverting the change fixes the problem.

Current (working) setup.

  • Drupal 8.9.7
  • Panelizer 8.x-4.1
  • Panels 8.x-4.3
  • Ctools 8.x-3.0
  • Composer inside docroot, but not for modules, only core.

Steps I’ve tried:

  • Migrate composer to outside docroot, use composer for all modules,
    pinned at current versions.
  • Migrate composer as above, also update Drupal to 8.9.11 (before 12
    came out).
  • Migrate composer as above, let all modules update as needed, also update Drupal to 8.9.11 (before 12 came out).
  • Only update panelizer/panels/ctools. Tried going up one release each,
    and going fully current.

Every step always ends up with the empty Content page for a Flexible layout. Everything else all seems to work fine. Reverting any step gets it working fine again.
When the Content page is empty, the front end of the node is blank except for anything not part of the panelized page (header/footer/template renderings/etc).
I think this is specifically in panelizer, but can’t be sure. It also happens when just doing the composer migration and keeping the versions the same…

Question: Does anybody know what could cause the disappearing blocks?

I have no contact with the original developers, and am not very familiar with the inner workings of Drupal.