iOS and desktop Safari go into loop about websocket

I am working on a project (mostly on the desktop with Firefox as my browser) using VueJS as the front-end.

Recently I upgraded to METEOR@2.0 and suddenly the website no longer works on iOS (14.4) or Safari on Catalina (14.0.3). The site goes into a loop with

WebSocket connection to 'wss://<FQDN>/sockjs/387/efyjn0xv/websocket' failed: Unexpected response code: 400

My dev environment is being reverse proxied through nginx. Running directly on localhost:3000 does not have that problem. Here is my nginx block that proxies

    location / {
        proxy_http_version 1.1;
        proxy_read_timeout 36000s;
        proxy_send_timeout 36000s;
        proxy_set_header Upgrade $http_upgrade; # allow websockets
        proxy_set_header X-Forwarded-For $remote_addr; # preserve client IP
        proxy_set_header Host $host;
        # this setting allows the browser to cache the application in a way compatible with Meteor
        # on every applicaiton update the name of CSS and JS file is different, so they can be cache infinitely (here: 30 days)
        # the root path (/) MUST NOT be cached
        if ($uri != '/') {
            expires 30d;

I looked through the forum and found a very similar issue from 2017.

Has anybody seen anything similar and knows what’s going on?