octobercms/october · warning · ApplicationException
system::lang.updates.theme_not_found
system::lang.updates.theme_not_found
Error message
Theme not found
What it means
Backend marketplace detail action Market::theme() (URL backend/system/market/theme/<slug>) is the theme counterpart of plugin(): slugToCode() derives the product code, ProductDetail($code, true) queries the marketplace with the theme flag, and when the product does not exist it throws system::lang.updates.theme_not_found ('Theme not found'), caught by handleError($ex).
Source
Thrown at modules/system/controllers/Market.php:142
}
}
/**
* theme
*/
public function theme($urlCode = null, $tab = null)
{
try {
$this->pageTitle = 'system::lang.updates.details_title_theme';
$this->pageSize = 950;
$this->addJs('/modules/system/assets/js/pages/market.details.js');
$this->addCss('/modules/system/assets/css/pages/market.css');
$code = $this->slugToCode($urlCode);
$product = new ProductDetail($code, true);
if (!$product->exists()) {
throw new ApplicationException(Lang::get('system::lang.updates.theme_not_found'));
}
$this->vars['projectDetails'] = UpdateManager::instance()->getProjectDetails();
$this->vars['activeTab'] = $tab ?: 'readme';
$this->vars['urlCode'] = $urlCode;
$this->vars['product'] = $product;
}
catch (Exception $ex) {
$this->handleError($ex);
}
}
/**
* onBrowseProject
*/
public function onBrowseProject()
{
$project = UpdateManager::instance()->requestBrowseProject();View on GitHub (pinned to b608633a7e)
Solutions
- Search the theme again from the Updates > Themes browser and use the regenerated link
- Confirm the theme still exists on octobercms.com and match its exact Author.Theme code
- Check that your code builds the slug from the current Author.Theme identifier
Defensive patterns
Strategy: validation
Validate before calling
$product = new \System\Classes\ProductDetail($code, true);
if (!$product->exists()) {
// do not link/redirect to the theme detail page for this code
} Prevention
- Build theme detail URLs from fresh marketplace data
- Treat the controller's handleError rendering as the last line of defense, not the plan
- Validate the slug maps back to Author.Theme before issuing redirects
When it happens
Trigger: Opening backend/system/market/theme/<author-theme-slug> for a theme the gateway cannot find: theme removed/renamed on the marketplace, malformed slug that does not map back to Author.Theme, or empty gateway details.
Common situations: Old bookmarks to delisted themes; typos in the theme code; building theme detail URLs from stale data.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- system::lang.updates.plugin_not_found
- Values not found for the selected row.
- cms::lang.theme.edit.not_found
- cms::lang.theme.edit.not_set
- Cannot delete the active theme, try making another theme act
AI-assisted analysis of octobercms/october@b608633a7e (2026-08-21).
Data as JSON: /api/errors/7c5a0123c7166523.
Report an issue: GitHub.