# \[SOLVED\] Docker Mattermost / NGINX Websocket Error 400

**URL:** <https://forum.mattermost.com/t/solved-docker-mattermost-nginx-websocket-error-400/3136>\
**Category:** Troubleshooting\
**Created:** [April 10, 2017, 9:48am UTC](https://forum.mattermost.com/t/solved-docker-mattermost-nginx-websocket-error-400/3136 "2017-04-10T09:48:45Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![BobTB](https://avatars.discourse-cdn.com/v4/letter/b/45deac/32.png) [@BobTB](https://forum.mattermost.com/u/BobTB)\
**Post date:** [April 10, 2017, 9:48am UTC](https://forum.mattermost.com/t/solved-docker-mattermost-nginx-websocket-error-400/3136/1 "2017-04-10T09:48:45Z")

</div>

I have a docker mattermost running and it works perfectly when opened directly through server IP and Docker mapped port (192.168.0.5:33000) Everything works great.

The problem is when I try to make it work through NGINX proxy. The website itself works, I can login and go into channels and everything, but when typing a message I get:

WebSocket connection to ‘wss://chat.spntt.com/api/v3/users/websocket’ failed: Error during WebSocket handshake: Unexpected response code: 400, and I get the “Please check connection, Mattermost unreachable, if issue persists, ask administrator to check WebSocket port.”

And this repeats for every message typed in chat. I tried adding additional nginx rules as below but is still does not work.

location /api/v3/ {  
proxy\_pass [http://192.168.0.5:33000](http://192.168.0.5:33000);  
proxy\_http\_version 1.1;  
proxy\_set\_header Upgrade $http\_upgrade;  
proxy\_set\_header Connection “upgrade”;  
proxy\_set\_header Host $host;  
}

---

<div class="post-metadata">

**Author:** ![BobTB](https://avatars.discourse-cdn.com/v4/letter/b/45deac/32.png) [@BobTB](https://forum.mattermost.com/u/BobTB)\
**Post date:** [April 10, 2017, 11:24pm UTC](https://forum.mattermost.com/t/solved-docker-mattermost-nginx-websocket-error-400/3136/2 "2017-04-10T23:24:07Z")

</div>

Fixed by adding ^~

location ^~ /api/v3/ {  
proxy\_pass [http://192.168.0.5:33000](http://192.168.0.5:33000);  
proxy\_http\_version 1.1;  
proxy\_set\_header Upgrade $http\_upgrade;  
proxy\_set\_header Connection “upgrade”;  
proxy\_set\_header Host $host;  
}

---

<div class="post-metadata">

**Author:** ![lindy](https://avatars.discourse-cdn.com/v4/letter/l/3ab097/32.png) [@lindy](https://forum.mattermost.com/u/lindy)\
**Post date:** [April 17, 2017, 9:12am UTC](https://forum.mattermost.com/t/solved-docker-mattermost-nginx-websocket-error-400/3136/3 "2017-04-17T09:12:12Z")

</div>

Glad to hear your issue is resolved @BobTB!

---

<div class="post-metadata">

**Author:** ![salvuccicarlos](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mattermost.com/salvuccicarlos/32/6103_2.png) [@salvuccicarlos](https://forum.mattermost.com/u/salvuccicarlos)\
**Post date:** [November 24, 2022, 5:31pm UTC](https://forum.mattermost.com/t/solved-docker-mattermost-nginx-websocket-error-400/3136/4 "2022-11-24T17:31:37Z")

</div>

Hi @BobTB is this configuration working? I’ve added to my main server NGINX file and the websocket connection keeps failing.

Maybe you could help me: [WebSocket not working on Server behind reverse proxy](https://forum.mattermost.com/t/websocket-not-working-on-server-behind-reverse-proxy/14506)

---

<div class="post-metadata">

**Author:** ![agriesser](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mattermost.com/agriesser/32/5644_2.png) [@agriesser](https://forum.mattermost.com/u/agriesser)\
**Post date:** [November 26, 2022, 11:44am UTC](https://forum.mattermost.com/t/solved-docker-mattermost-nginx-websocket-error-400/3136/5 "2022-11-26T11:44:12Z")

</div>

The above mentioned configuration also is missing the websocket specific locations. Please check out the official documentation on how to set up the nginx proxy:

[https://docs.mattermost.com/install/config-proxy-nginx.html](https://docs.mattermost.com/install/config-proxy-nginx.html)
