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
- Hard-refresh and purge CDN/page caches so pages emit the current combine URLs generated by CombineAssets
- Check webserver rewrite rules and config/cms.php asset settings for anything mangling the combined asset URL
- Regenerate combined assets (`php artisan october:util compile assets`) so fresh cache ids are in use
- 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
- Purge CDN and page caches on every deploy that changes asset URLs
- Never hand-write /combine/ URLs in templates
- Monitor 404s on /combine/* to catch stale-URL rollouts early
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
- The resizer file ':name' is not found.
- system::lang.server.response_not_found
- system::lang.server.response_empty
- The combiner file ':name' is not found.
- Plugin configuration file plugin.yaml is not found for the p
AI-assisted analysis of octobercms/october@b608633a7e (2026-08-21).
Data as JSON: /api/errors/8db00ff24f1fbcff.
Report an issue: GitHub.