@james I have some news
The update refreshed the server to 2.9.0 in /app/code, but the prebuilt frontend in the persistent volume /app/data/twenty-front was never re-synced — it still held the original 0.14.0 front from install (files dated from install day; index.html still pointing to the old bundle index-CGzHeZZA.js).
That stale bundle queries GaugeChartConfiguration, a type removed server-side in 2.3. So a 2.8.0-era front was served against a 2.9.0 schema → Unknown type "GaugeChartConfiguration" → blank page on load.
Confirmed: the string is present in /app/data/twenty-front/assets/ but absent from the fresh package front in /app/code/packages/twenty-server/dist/front.orig/assets/ (different hashes).
Fix: copied assets/, images/, manifest.json, index.html from dist/front.orig/ → /app/data/twenty-front/ (keeping the .env symlink), then restarted. App works.
Hope this helps