Do not break Symfony Expression Language in case no user agent is provided. Some requests might ommit the user agent header. The default configuration for tracking pageviews would result in an error raised from Symfony Expression Language.
This got fixed as the existence is checked first, before comparing against agents that should not be tracked.
The raised error looks like this on my own website:
Core: Exception handler (WEB): Uncaught TYPO3 Exception: Argument 2 passed to SymfonyComponentExpressionLanguageNodeBinaryNode::evaluateMatches() must be of the type string, null given, called in vendor/symfony/expression-language/Node/BinaryNode.php on line 167 | TypeError thrown in file vendor/symfony/expression-language/Node/BinaryNode.php in line 176. Requested URL: https://daniel-siepmann.localhost/