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

  1. Search the plugin again from Settings > System > Updates > Plugins and open the fresh detail link
  2. Verify the plugin still exists on octobercms.com and copy its exact Author.Plugin code
  3. 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

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


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