octobercms/october · warning · ApplicationException
system::lang.updates.plugin_not_found
system::lang.updates.plugin_not_found
Error message
Plugin not found
What it means
Backend marketplace detail action Market::plugin() (URL backend/system/market/plugin/<slug>) converts the URL slug to a product code via slugToCode(), wraps it in a ProductDetail and queries the marketplace gateway. If the product does not exist ($product->exists() returns false), ApplicationException system::lang.updates.plugin_not_found ('Plugin not found') is thrown, caught by handleError($ex) and rendered as an error page.
Source
Thrown at modules/system/controllers/Market.php:108
}
}
/**
* plugin
*/
public function plugin($urlCode = null, $tab = null)
{
try {
$this->pageTitle = 'system::lang.updates.details_title_plugin';
$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);
if (!$product->exists()) {
throw new ApplicationException(Lang::get('system::lang.updates.plugin_not_found'));
}
// Fetch from server
// if (get('fetch')) {
// $fetchedContent = UpdateManager::instance()->requestPluginContent($code);
// $product->upgradeHtml = array_get($fetchedContent, 'upgrade_guide_html');
// }
$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);
}
}
View on GitHub (pinned to b608633a7e)
Solutions
- Search the plugin again from Settings > System > Updates > Plugins and open the fresh detail link
- Verify the plugin still exists on octobercms.com and copy its exact Author.Plugin code
- If building the URL yourself, make sure the code converts to a valid slug (slugToCode reverses dashes to dots)
Defensive patterns
Strategy: validation
Validate before calling
$product = new \System\Classes\ProductDetail($code);
if (!$product->exists()) {
// do not link/redirect to the marketplace detail page for this code
} Prevention
- Generate marketplace links from current marketplace search results, not stored slugs
- Cache ProductDetail existence checks and expire them so delisted products stop 404ing
- Remember the controller already catches and renders this error via handleError
When it happens
Trigger: Opening backend/system/market/plugin/<author-plugin-slug> for a product the gateway cannot find: plugin removed or renamed on the marketplace, the slug does not map back to a valid Author.Plugin code, or the gateway returned empty details.
Common situations: Stale bookmarks or external links to deleted marketplace plugins; a typo in the plugin code; transient gateway failures.
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.theme_not_found
- Unable to find the specified settings.
- Component not found
- Package [$name] not found
- Plugin [$name] not found
AI-assisted analysis of octobercms/october@b608633a7e (2026-08-21).
Data as JSON: /api/errors/a1b4c0fa41fe8899.
Report an issue: GitHub.