It seems that two regressions coincided in 2.15.0:
Twig filter safehtml. Developers have tightened the types – the HtmlTransformer::filter() method now strictly accepts a string. And do null values actually occur in templates (for example, if there's no custom HTML in the settings)? On some servers, this results in a clean TypeError, even before the page is rendered. This is fixed by adding a nullable type (?string) or a preliminary check in the filter – apparently, a test was missed.
Modified rule in .htaccess. The new RewriteCond combination public/%{REQUEST_URI} -f doesn't work on shared hosting where RewriteBase / and the domain space are handled differently: static requests (/css/app.css, /js/app.js) are bypassed, end up in index.php, and return a 404 error. Therefore, the updater interface loaded without styles/scripts, which looked like a "dead" screen.
I fixed issues on my hosting but some people could face real problems even updationg to 2.15.0 , from working 2.14.0