Summary
I receive the “Please check connection, Mattermost unreachable.” error, but only IOS devices.
This is very similar to a few similar topics. Such as [SOLVED] Mattermost websocket error, but I’ve tried similar fixes and nothing seems to work.
I have a windows setup, using iis, arr, I have feeling it’s to do with the reverse proxy, but I can’t nail down what it is.
I’ve tried setting the cors to * and our domain ie chat.foremostgolf.com
I’ve tried setting the HTTP_SEC_WEBSOCKET_EXTENSIONS value.
I have the latest version of mattermost installed. Mattermost Version: 5.18.0.
The system works perfectly on desktop and android.
I have the following settings.
"ServiceSettings": {
"SiteURL": "https://chat.foremostgolf.com",
"WebsocketURL": "",
"LicenseFileLocation": "",
"ListenAddress": ":8065",
"Forward80To443": true,
"TrustedProxyIPHeader": [
"X-Forwarded-For",
"X-Real-IP"
],
"AllowCorsFrom": "*",
}
And
</serverVariables>
</rule>
</rules>
<rewriteMaps>
<rewriteMap name="HTTP_SEC_WEBSOCKET_EXTENSIONS">
<add key="" value="" />
</rewriteMap>
</rewriteMaps>
<outboundRules>
<rule name="ReverseProxyOutboundRule2" preCondition="NeedsRestoringAcceptEncoding">
<match filterByTags="A, Form, Img" pattern="^http(s)?://192.168.1.33:8065/(.*)" />
<action type="Rewrite" value="http{R:1}://chat.foremostgolf.com/{R:2}" />
</rule>
<rule name="Content-Security-Policy">
<match serverVariable="RESPONSE_Content-Security-Policy" pattern=".*" />
<action type="Rewrite" />
</rule>
<rule name="X-Frame-Options">
<match serverVariable="RESPONSE_X-Frame-Options" pattern=".*" />
<action type="Rewrite" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
<preCondition name="NeedsRestoringAcceptEncoding">
<tracing>
<traceFailedRequests>
<remove path="*" />
<add path="*">
<traceAreas>
<add provider="WWW Server" areas="Rewrite" verbosity="Verbose" />
</traceAreas>
<failureDefinitions timeTaken="00:00:00" statusCodes="101" verbosity="Error" />
</add>
</traceFailedRequests>
</tracing>
<security>
<requestFiltering allowDoubleEscaping="true" />
</security>
</system.webServer>