---
title: "Important: The plugin action context never fails on the site or the language"
manual: "Academic Base"
version: "main"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-base:important-ace-748-academic-base@main"
source: "Changelog/2.4/Important-PluginControllerActionContextSiteAndLanguage.rst"
rendered: "2026-10-17T08:47:46+00:00"
---

# Important: The plugin action context never fails on the site or the language {#important-ace-748-academic-base}

## Description {#description}

`getSite()` and `getLanguage()` of
`\FGTCLB\AcademicBase\Domain\Model\Dto\PluginControllerActionContext`
returned whatever the request carried under the attributes `site` and
`language`. A value of another kind made them fail with a `\TypeError`,
although both are declared to return `null` when the value is missing.
This included the `NullSite` the backend stores for page 0 and for a
page outside any site, which implements `SiteInterface` but is no
`Site`.

Both getters now return `null` for such a value, as
`getExtbaseRequestParameters()` already did for the `extbase`
attribute. A request that carries a site and a language, or none, gives the
same result as before.

`getApplicationType()` is unchanged and still throws TYPO3's
`\RuntimeException` with code 1606222812 for a request that carries no
application type, and its `\LogicException` with code 1678875015 for a
type that is neither frontend nor backend. Every request the frontend or the
backend handled carries a type the getter resolves. The interface
`\FGTCLB\AcademicBase\Domain\Model\Dto\PluginControllerActionContextInterface`
now states this.

## Impact {#impact}

An event listener reading the site or the language from the context of an
academic plugin gets `null` instead of an exception when the request
carries something else under that name. A plugin rendered on a page of a site
is not affected.
