I need help debugging "Combiner" errors

I have upgraded to the latest OctoberCMS version 3.6.9. I have installed the CMS fresh app in a test environment and confirmed that rich text editors are working on the backend admin area. But in our project, they are all broken. I am troubleshooting, and am perplexed by the behavior.

When I run any backend page with a rich text editor on it, I get a series of 404s in the Network tab:
/combiner/xxxxx where xxxxx is a cacheid. It goes look for the item in the (file?) cache and cannot find it - it is not there (I look for a folder starging with the first two letters of the id). I have cleared and rebuilt the cache several times by clearing out the /storage/framework/combiner/assets folder. I also get this javascript error after the 404s:

october-min.js?v6c666f5b:1 Uncaught Error: Module namespace is not registered: backend.vuecomponents.richeditordocumentconnector.formwidget

Whatever is building the cache and whatever is deciding where to look for it are not working correctly together. Iā€™m not sure how it decides the cache ID to look for when combining assets.

Any help from people familiar with this would be amazing. Thanks!

Hey @ccamarillo

This is usually a permission problem. Even though the network tab says 404 for the combiner, right click on the link and click ā€œOpen in new tabā€ ā€“ hopefully it should show you the underlying error message.

Hey @daft !

Hereā€™s the underlying error that is sending us to a 404.

ApplicationException: The combiner file ā€˜7cce7949e979145042d962e00018ef9aā€™ is not found. in /var/www/html/modules/system/classes/CombineAssets.php:229 Stack trace: #0 /var/www/html/modules/system/classes/SystemController.php(38): System\Classes\CombineAssets->getContents() #1 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): System\Classes\SystemController->combine() #2 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\Routing\Controller->callAction() #3 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(259): Illuminate\Routing\ControllerDispatcher->dispatch() #4 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\Routing\Route->runController() #5 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(798): Illuminate\Routing\Route->run() #6 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Routing\Router->Illuminate\Routing{closure}() #7 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #8 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(797): Illuminate\Pipeline\Pipeline->then() #9 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(776): Illuminate\Routing\Router->runRouteWithinStack() #10 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(740): Illuminate\Routing\Router->runRoute() #11 /var/www/html/vendor/october/rain/src/Router/CoreRouter.php(32): Illuminate\Routing\Router->dispatchToRoute() #12 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190): October\Rain\Router\CoreRouter->dispatch() #13 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http{closure}() #14 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #15 /var/www/html/vendor/october/rain/src/Foundation/Http/Middleware/CheckForMaintenanceMode.php(23): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle() #16 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): October\Rain\Foundation\Http\Middleware\CheckForMaintenanceMode->handle() #17 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}() #18 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\Pipeline\Pipeline->then() #19 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter() #20 /var/www/html/index.php(42): Illuminate\Foundation\Http\Kernel->handle() #21 {main}

We are going to roll back to the previous version the OCMS for now, as this was a little finicky installation for me and we got something wrong. There were some plugin files that we overwritten in an attempt to customize some things. I went through every file change made by OCMS during the upgrade and I tweaked some changes to preserve my changesā€¦ not a great technique in hindsight. We also switched environments at the same time and it is just too many variables. So weā€™re going to take a step back and I will be in touch when we upgrade again. Thanks!

1 Like

Hey again @ccamarillo

Thanks for sharing the error. This gives some more information about whatā€™s going on. The combiner happens in two requests:

  1. when the page loads (200), it sets up the combiner files and stores the key in cache
  2. when the asset is loaded (404), the cache key was not found

So from (1) to (2) the cache is lost somewhere. This can happen particularly if you are changing the cache drivers inside your plugins.

Does rolling back fix the issue? That would be interesting since nothing has changed in this area between the current and previous version.

Take a look at the config/multisite.php file and enable the system combiner here.

'system_asset_combiner' => true,

This enables unique combiner cache keys for each site, and we added this feature based on your feedback. It should help remove the need to modify the cache drivers, which I think was needed since the multisite feature wasnā€™t available.

I hope this helps.

Yes, rolling back did fix the errors. However I donā€™t think it has anything to do with the OCMS code - I think I botched the upgradeā€¦ A topic for another day, but weā€™ve been touching the module files in an attempt to extend/customize certain parts of the application. I screwed something up in my attempt to preserve those changes upon upgrade. We also changed environments at the same time as the upgrade so weā€™re going to do the environment changes first then try the upgrade again. OR, there is an issue in a plugin causing us the problems. Iā€™ll let you know how it goes! @daft

1 Like