# Failed to upgrade to websocket: Unexpected HTTP Response Status Code: 405 Method Not Allowed

**URL:** <https://forum.inductiveautomation.com/t/failed-to-upgrade-to-websocket-unexpected-http-response-status-code-405-method-not-allowed/112835>\
**Category:** Ignition\
**Created:** [December 16, 2025, 7:12am UTC](https://forum.inductiveautomation.com/t/failed-to-upgrade-to-websocket-unexpected-http-response-status-code-405-method-not-allowed/112835 "2025-12-16T07:12:39Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ckotadiya](https://avatars.discourse-cdn.com/v4/letter/c/a698b9/32.png) [@ckotadiya](https://forum.inductiveautomation.com/u/ckotadiya)\
**Post date:** [December 16, 2025, 7:12am UTC](https://forum.inductiveautomation.com/t/failed-to-upgrade-to-websocket-unexpected-http-response-status-code-405-method-not-allowed/112835/1 "2025-12-16T07:12:39Z")

</div>

Hello,

we are facing websocket error as mentioned below. this gateway is hosted in EC2 instance and getting this error.

Due to this, I am unable to perform any action in the designer.

| Message | WebSocket error |
| --- | --- |
| Time | Tue Dec 16 12:07:28pm |
| Severity | ERROR |
| Logger | com.inductiveautomation.ignition.client.gateway\_interface.GatewayConnectionManager |
| Stack Trace | org.eclipse.jetty.websocket.api.exceptions.UpgradeException: org.eclipse.jetty.websocket.core.exception.UpgradeException: Failed to upgrade to websocket: Unexpected HTTP Response Status Code: 405 Method Not Allowed |

```
at org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandler.convertCause(JettyWebSocketFrameHandler.java:442)          
at org.eclipse.jetty.websocket.common.JettyWebSocketFrameHandler.onError(JettyWebSocketFrameHandler.java:240)          
at org.eclipse.jetty.websocket.core.client.CoreClientUpgradeRequest.handleException(CoreClientUpgradeRequest.java:299)          
at org.eclipse.jetty.websocket.core.client.CoreClientUpgradeRequest.onComplete(CoreClientUpgradeRequest.java:287)          
at org.eclipse.jetty.client.transport.ResponseListeners.notifyComplete(ResponseListeners.java:352)          
at org.eclipse.jetty.client.transport.ResponseListeners.notifyComplete(ResponseListeners.java:344)          
at org.eclipse.jetty.client.transport.HttpReceiver.terminateResponse(HttpReceiver.java:439)          
at org.eclipse.jetty.client.transport.HttpReceiver.terminateResponse(HttpReceiver.java:421)          
at org.eclipse.jetty.client.transport.HttpReceiver.lambda$responseSuccess$4(HttpReceiver.java:381)          
at org.eclipse.jetty.util.thread.SerializedInvoker$Link.run(SerializedInvoker.java:268)          
at org.eclipse.jetty.util.thread.SerializedInvoker.run(SerializedInvoker.java:168)          
at org.eclipse.jetty.client.transport.HttpReceiver.responseHeaders(HttpReceiver.java:246)          
at org.eclipse.jetty.client.transport.internal.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:331)           
at org.eclipse.jetty.client.transport.internal.HttpReceiverOverHTTP.parseAndFill(HttpReceiverOverHTTP.java:248) 
at org.eclipse.jetty.client.transport.internal.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:77) 
at org.eclipse.jetty.client.transport.internal.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:97) 
at org.eclipse.jetty.client.transport.internal.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:250) 
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322) 
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99) 
at org.eclipse.jetty.io.ssl.SslConnection$SslEndPoint.onFillable(SslConnection.java:575) 
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:390) 
at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:150) 
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99) 
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53) 
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:478) 
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:441) 
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293) 
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201) 
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:311) 
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979) 
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209) 
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164) 
at java.base/java.lang.Thread.run(Unknown Source) 

```

Caused by: org.eclipse.jetty.websocket.core.exception.UpgradeException: Failed to upgrade to websocket: Unexpected HTTP Response Status Code: 405 Method Not Allowed  
... 30 common frames omitted |

Thanks,  
Chirag

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 16, 2025, 1:03pm UTC](https://forum.inductiveautomation.com/t/failed-to-upgrade-to-websocket-unexpected-http-response-status-code-405-method-not-allowed/112835/2 "2025-12-16T13:03:46Z")

</div>

That invariably comes from a firewall between you and that gateway.
