---
title: "Important: The persons action context never fails on the site or the language"
manual: "Academic Profiles"
version: "main"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-persons:important-ace-748-academic-persons@main"
source: "Changelog/2.4/Important-PluginControllerActionContextSiteAndLanguage.rst"
rendered: "2026-10-15T10:24:29+00:00"
---

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

## Description {#description}

`getSite()` and `getLanguage()` of
`\FGTCLB\AcademicPersons\Domain\Model\Dto\PluginControllerActionContext`,
which the persons plugins hand to their events, 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. 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. The interface
`\FGTCLB\AcademicPersons\Domain\Model\Dto\PluginControllerActionContextInterface`
now states this.

## Impact {#impact}

An event listener of a persons event that reads the site or the language from
the context gets `null` instead of an exception when the request carries
something else under that name. The page title of a profile, which reads the
language from the context, then uses the language of the logged-in backend
user, or English without one, as it already did for a request without a
language. A plugin rendered on a page of a site is not affected.
