octobercms/october · warning · ApplicationException

The combiner file ':name' is not found.

Error message

The combiner file ':name' is not found.

What it means

SystemController::combine($name) serves combined JS/CSS from URLs like /combine/{cacheId}-{suffix}. The handler first checks that the name contains a '-' separator (strpos); without a dash there is no cache id to look up, so it throws an ApplicationException naming the malformed file. In production this surfaces as a 404; with debug mode on you get the full error instead. It is essentially a URL-format guard for CombineAssets::getContents($cacheId).

Source

Thrown at modules/system/classes/SystemController.php:29

 * SystemController is the master controller for system related routing.
 * It is currently only responsible for serving up the asset combiner contents.
 *
 * @see System\Classes\CombineAssets Asset combiner class
 * @package october\system
 * @author Alexey Bobkov, Samuel Georges
 */
class SystemController extends ControllerBase
{
    /**
     * combine JavaScript and StyleSheet asset files
     * @param string $name Combined file code
     * @return string Combined content.
     */
    public function combine($name)
    {
        try {
            if (!strpos($name, '-')) {
                throw new ApplicationException(__("The combiner file ':name' is not found.", ['name' => $name]));
            }

            $parts = explode('-', $name);

            $cacheId = $parts[0];

            $combiner = CombineAssets::instance();

            return $combiner->getContents($cacheId);
        }
        catch (Exception $ex) {
            if (System::checkDebugMode()) {
                return Response::make(e($ex->getMessage()), 404);
            }
            else {
                return Response::make('/* '.e(Lang::get('system::lang.page.custom_error.help')).' */', 404);
            }
        }

View on GitHub (pinned to b608633a7e)

Solutions

  1. Hard-refresh and purge CDN/page caches so pages emit the current combine URLs generated by CombineAssets
  2. Check webserver rewrite rules and config/cms.php asset settings for anything mangling the combined asset URL
  3. Regenerate combined assets (`php artisan october:util compile assets`) so fresh cache ids are in use
  4. Ignore if isolated: single malformed probe requests are harmless 404s; investigate only if real pages reference the bad URL
Defensive patterns

Strategy: fallback

Validate before calling

// If you invoke the combiner yourself, validate the token shape first
if (!str_contains($name, '-')) {
    abort(404, 'Malformed combine asset token');
}
return \System\Classes\CombineAssets::instance()->getContents(explode('-', $name)[0]);

Try / catch

try {
    return $combiner->getContents($cacheId);
} catch (\October\Rain\Exception\ApplicationException $ex) {
    // unknown/malformed combine id — regenerate assets and serve a clean 404
    abort(404);
}

Prevention

When it happens

Trigger: An HTTP request to the combine route whose segment has no dash: /combine/abc123 instead of /combine/abc123-file.js. Caused by hand-edited or truncated asset URLs, rewritten URLs stripping the suffix, or stale/cached HTML referencing a different combine URL scheme.

Common situations: CDN or browser cache serving markup from an older release with a different combine URL format; a misconfigured rewrite rule trimming the suffix; scrapers/bots probing /combine/*; a base-url change leaving relative asset URLs mangled.

Related errors


AI-assisted analysis of octobercms/october@b608633a7e (2026-08-21). Data as JSON: /api/errors/8db00ff24f1fbcff. Report an issue: GitHub.