TYPO3 Exception 1316104317

#1316104317 TYPO3\CMS\Extbase\Mvc\Exception 
The default controller for extension "..." and plugin "..." can not be determined.`
Copied!

If this happens for your own extensions:

Basic requirements

This basically means that you need to define a controller in your ext_localconf.php. Usually the first entry is taken as default controller/action. Here's an example:

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
  //assuming your extension is in typo3conf/ext/your_ext folder
  'YourExt',

  // Plugin name
  'Pi1',

  // An array of controller-action combinations. The first one found is the default one.
  [
    \YourVendor\YourExt\Controller\YourController::class => 'index,new,create,edit,update'
  ],

  // An array of non-cacheable controller-action-combinations (they must already be enabled)
  [
    \YourVendor\YourExt\Controller\YourController::class => 'new,create,edit,update'
  ],
);
Copied!

Situation: Adding your plugin via TypoScript

This error can appear if you got your TypoScript wrong. Make sure that you write your settings with the first letter in uppercase and double-check your ext_localconf.php.

lib.test = USER_INT
lib.test {
  # Calling the extbase bootstrapper
  userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run

  # Upper camel case!
  extensionName = YourExt
  vendorName = YourVendor

  # As you set it in \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin
  pluginName = Pi1
}
Copied!

Situation: Adding the Plugin via FlexForm Plugin

Extbase has the possibility to override internal configuration from FlexForms. This error might appear if you change a plugin from different types.

Try deleting the plugin instance and add a new one, or clear tt_content.pi_flexform field for current plugin, to avoid wrong switchableControllerActions from FlexForm.

If this still isn't resolved, or happens for 3rd party extensions:

Broken routing configuration:

If you got this error for e.g. EXT:news which probably shouldn't be badly configured, it can be a broken routing configuration. So check your site yaml (includes) for

routeEnhancers:
  News:
    type: Extbase
    extension: News
Copied!

And replace the lines following that with a default solution from the docs.

Bad redirects:

If you have a httpd redirect, custom early middleware redirect, or a TYPO3 redirect configured for the URL, even a simple one like redirecting /paths to variants with trailing slash /paths/ then this can happen, too. Although that is more common with POST scenarios. Removing that redirect could resolve that problem.