octobercms/october · error · ApplicationException

Unable to find the specified settings.

Error message

Unable to find the specified settings.

What it means

Settings controller update($author, $plugin, $code) renders a settings form after resolving the requested item through findSettingItem() against SettingsManager registrations. When no plugin or module registered a matching settings item (context author.plugin plus optional code), it throws 'Unable to find the specified settings.' before any model or widget is built.

Source

Thrown at modules/system/controllers/Settings.php:88

    }

    //
    // Generated Form
    //

    /**
     * update action
     */
    public function update($author, $plugin, $code = null)
    {
        SettingsManager::setContext($author.'.'.$plugin, $code);

        $this->vars['parentLink'] = Backend::url('system/settings');
        $this->vars['parentLabel'] = __('Settings');

        try {
            if (!$item = $this->findSettingItem($author, $plugin, $code)) {
                throw new ApplicationException(__('Unable to find the specified settings.'));
            }

            $this->pageTitle = $item->label;
            $this->pageSize = Backend::sizeToPixels($item->size) ?: null;

            if ($item->context == 'mysettings') {
                $this->vars['parentLink'] = Backend::url('system/settings/mysettings');
                $this->vars['parentLabel'] = Lang::get('backend::lang.mysettings.menu_label');
            }

            $model = $this->createModel($item);

            $this->initWidgets($model);
        }
        catch (Exception $ex) {
            $this->handleError($ex);
        }
    }

View on GitHub (pinned to b608633a7e)

Solutions

  1. Verify the plugin is installed and enabled (Settings > System > Plugins)
  2. Check the plugin's registerSettings() declares an item whose context and code match the URL segments exactly
  3. Navigate from the settings index instead of a stale bookmark so the URL is regenerated from registered items

Example fix

// before: nothing registers the 'acme.shop' settings context, URL 404s with the error

// after: in acme/shop/Plugin.php
public function registerSettings()
{
    return [
        'settings' => [
            'label' => 'Shop Settings',
            'description' => 'Manage shop settings',
            'category' => 'Shop',
            'icon' => 'icon-cog',
            'class' => 'Acme\Shop\Models\Settings',
            'order' => 500,
        ],
    ];
}
Defensive patterns

Strategy: validation

Validate before calling

$items = \System\Classes\SettingsManager::instance()->listItems();
// render settings links only for items present in $items;
// never hardcode backend/system/settings/update/... URLs

Prevention

When it happens

Trigger: Requesting backend/system/settings/update/<author>/<plugin>[/<code>] where the providing plugin is not installed or disabled (its registerSettings() items are never registered), or where the code segment does not match any registered item's code (e.g. mysettings items).

Common situations: Bookmarked settings page of a plugin that was later uninstalled or disabled; wrong third segment in the URL; plugin boot failure preventing registration.

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/701fb49520e9a262. Report an issue: GitHub.