# \[SOLVED\] The famous "Failed to upgrade websocket connection"

**URL:** <https://forum.mattermost.com/t/solved-the-famous-failed-to-upgrade-websocket-connection/3261>\
**Category:** Installation\
**Created:** [May 15, 2017, 4:05pm UTC](https://forum.mattermost.com/t/solved-the-famous-failed-to-upgrade-websocket-connection/3261 "2017-05-15T16:05:25Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![elhostis](https://avatars.discourse-cdn.com/v4/letter/e/43a26b/32.png) [@elhostis](https://forum.mattermost.com/u/elhostis)\
**Post date:** [May 15, 2017, 4:05pm UTC](https://forum.mattermost.com/t/solved-the-famous-failed-to-upgrade-websocket-connection/3261/1 "2017-05-15T16:05:25Z")

</div>

Hello,

My company is testing mattermost but I have trouble with websocket.

The error is well known :

`[2017/05/15 17:53:25 CEST] [EROR] /api/v3/users/websocket:connect code=500 rid=u877fuhbmifg9btbcg3ca199xr uid=wgnz56hijffzmf4uw19qkymsno ip=192.44.77.211, 10.0.4.107 Failed to upgrade websocket connection [details:]`

I have read many documents about this error, but I didn’t find any solution.

My config is :

- Mattermost 3.8.2 on debian 8
- MariaDB
- Nginx 1.12

Here is my nginx conf.

```
upstream mattermost {
  server 127.0.0.1:8065;
}

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

server {
  listen *:80;
  server_name mattermost.example.net;

  location ~ /api/v[0-9]+/(users/)?websocket$ {
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    client_max_body_size 50M;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Frame-Options SAMEORIGIN;
    proxy_buffers 256 16k;
    proxy_buffer_size 16k;
    proxy_read_timeout 600s;
    proxy_pass http://mattermost;
  }

  location / {
    client_max_body_size 50M;
    proxy_set_header Connection "";
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Frame-Options SAMEORIGIN;
    proxy_buffers 256 16k;
    proxy_buffer_size 16k;
    proxy_read_timeout 600s;
    proxy_cache mattermost_cache;
    proxy_cache_revalidate on;
    proxy_cache_min_uses 2;
    proxy_cache_use_stale timeout;
    proxy_cache_lock on;
    proxy_pass http://mattermost;
  }
}

```

Can I have any help ?

Thanks.

Eric

---

<div class="post-metadata">

**Author:** ![elhostis](https://avatars.discourse-cdn.com/v4/letter/e/43a26b/32.png) [@elhostis](https://forum.mattermost.com/u/elhostis)\
**Post date:** [May 16, 2017, 11:34am UTC](https://forum.mattermost.com/t/solved-the-famous-failed-to-upgrade-websocket-connection/3261/2 "2017-05-16T11:34:22Z")

</div>

I have found the problem.  
I’m hosting mattermost on AWS with ELB & EC2. But ELB does not support websocket.

The solution is to enable ProxyProtocle on ELB.  
More info here : [https://www.built.io/blog/websockets-on-aws-s-elb](https://www.built.io/blog/websockets-on-aws-s-elb)

Eric

---

<div class="post-metadata">

**Author:** ![lindy65](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mattermost.com/lindy65/32/1811_2.png) [@lindy65](https://forum.mattermost.com/u/lindy65)\
**Post date:** [May 18, 2017, 8:43am UTC](https://forum.mattermost.com/t/solved-the-famous-failed-to-upgrade-websocket-connection/3261/3 "2017-05-18T08:43:33Z")

</div>

Hi @elhostis,

Thank you for your question and for posting the solution for others! Appreciated 🙂

FYI, Mattermost v3.9.0 shipped on May 16th if you’d like to upgrade to the [latest version](https://about.mattermost.com/download/).

---

<div class="post-metadata">

**Author:** ![TheMapSmith](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mattermost.com/themapsmith/32/391_2.png) [@TheMapSmith](https://forum.mattermost.com/u/TheMapSmith)\
**Post date:** [May 26, 2017, 8:02pm UTC](https://forum.mattermost.com/t/solved-the-famous-failed-to-upgrade-websocket-connection/3261/4 "2017-05-26T20:02:27Z")

</div>

I have the same error with Mattermost 3.8.2 on Google Cloud Platform when connecting with either the 2016 or 2017 Mattermost Android apps. Do you have any tips for resolving the issue on another platform?

```auto
[2017/05/26 19:56:36 UTC] [EROR] websocket connect err: websocket: could not find connection header with token 'upgrade'
[2017/05/26 19:56:36 UTC] [EROR] /api/v4/websocket:connect code=500 rid=mpb68nbs3tyeupuzf9i9mikttr uid=rduuu9qdibgqi8yr5hbqnyc5sh ip=204.115.121.51 Failed to upgrade websocket connection [details:]

```

---

<div class="post-metadata">

**Author:** ![elhostis](https://avatars.discourse-cdn.com/v4/letter/e/43a26b/32.png) [@elhostis](https://forum.mattermost.com/u/elhostis)\
**Post date:** [May 29, 2017, 12:05pm UTC](https://forum.mattermost.com/t/solved-the-famous-failed-to-upgrade-websocket-connection/3261/5 "2017-05-29T12:05:40Z")

</div>

Hi,

Can I see your webserver conf ?

Eric
