8.1.17 Designer unstable

My designer is having frequent connection lost to gateway errors.

Running in a docker container.

Version: 8.1.17 (b2022051210)

License: licensed

Uptime: 17 days

Gateway server:
i7-5960X, 8 core, 16 thread, 32GB RAM

Dev PC (Designer):
i9-9900K, 8 core, 16 thread, 16GB RAM

This is a new blank gateway, no upgrade from 79 or GWBK restore. I’m doing the most basic of tasks, added DB connection, connected to an AB CPX, added 3 tags, historize and chart them. On day 1 of the install, the designer exhibited the behaviour about 25 minutes in, I restarted the designer and circa 25 mins later, same thing. Today I returned to add some more and after about 2 minutes it’s doing it.

Today I spun up a new container with 8.1.18-RC1, and the designer for it is not exhibiting the behaviour. It’s been running for half an hour now with no issues.

Here’s the designer output console of 18 RC1:

22:47:04.377 [Designer-Startup] INFO designer.main - Downloading... [+0]
22:47:05.654 [Designer-Startup] INFO designer.main - Cleanup... [+1277]
22:47:05.659 [Designer-Startup] INFO designer.main - Initializing UI... [+1282]
22:47:05.716 [Designer-Startup] INFO tags.manager.gwinterface - Tag poll rate changed to 250 ms
22:47:05.716 [DesignerExecEngine-1] INFO tags.subscriptions - Changing connected quality to 'Good'
22:47:09.014 [Designer-Startup] INFO designer.main - Starting module: Vision [+4637]
22:47:11.291 [Designer-Startup] INFO designer.main - Starting module: Perspective [+6914]
22:47:12.667 [Designer-Startup] INFO Perspective.Designer - Starting up Perspective module.  Mode: Trial
22:47:14.109 [AWT-EventQueue-0] INFO Perspective.SessionProps - Session props debug url: http://localhost:9222/devtools/inspector.html?ws=localhost:9222/devtools/page/00C5DFA975033CB0082796CA3CD20642
22:47:14.548 [Designer-Startup] INFO designer.main - Starting module: Symbol Factory [+10171]
22:47:14.551 [Designer-Startup] INFO designer.main - Starting module: WebDev [+10174]
22:47:14.562 [Designer-Startup] INFO designer.main - Starting module: Alarm Notification [+10185]
22:47:14.676 [Designer-Startup] INFO designer.main - Starting module: SFC [+10299]
22:47:15.261 [Designer-Startup] INFO designer.main - Starting module: OPC-UA [+10884]
22:47:15.262 [Designer-Startup] INFO designer.main - Starting module: Enterprise Administration [+10885]
22:47:15.268 [Designer-Startup] INFO designer.main - Starting module: SQL Bridge [+10891]
22:47:15.448 [Designer-Startup] INFO designer.main - Starting module: DNP3 Driver [+11071]
22:47:15.449 [Designer-Startup] INFO designer.main - Starting module: Serial Support Client [+11072]
22:47:15.451 [Designer-Startup] INFO designer.main - Starting module: Reporting [+11074]
22:47:15.474 [Designer-Startup] INFO reporting.Designer - Starting up Reporting Module. Mode: Trial
22:47:15.784 [Designer-Startup] INFO designer.main - Starting module: Web Browser [+11406]
22:47:16.099 [Designer-Startup] INFO designer.main - Initializing Scripting... [+11722]
22:47:16.157 [Designer-Startup] INFO designer.main - Initializing UI... [+11780]

And 17 LTS during connection loss:

23:33:51.831 [GatewayConnection-1] INFO tags.subscriptions - Changing connected quality to 'Bad_GatewayCommOff'
23:33:51.831 [GatewayConnection-1] INFO Scripting.ScriptManager.PageSys - Resuming scripts...
23:33:53.847 [GatewayConnection-1] WARN com.inductiveautomation.ignition.client.gateway_interface.GatewayConnectionManager - Connection to Gateway lost, due to exception.
com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Connection refused: connect
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:351)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:543)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:357)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.ping(GatewayInterface.java:1002)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.ping(GatewayInterface.java:987)
	at com.inductiveautomation.ignition.client.gateway_interface.AbstractGatewayConnection.fishForAliveServer(AbstractGatewayConnection.java:692)
	at com.inductiveautomation.ignition.client.gateway_interface.AbstractGatewayConnection$GatewayReconnectTask.run(AbstractGatewayConnection.java:1047)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection refused: connect
	at java.base/java.net.PlainSocketImpl.waitForConnect(Native Method)
	at java.base/java.net.PlainSocketImpl.socketConnect(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.connect(Unknown Source)
	at java.base/java.net.Socket.connect(Unknown Source)
	at java.base/sun.net.NetworkClient.doConnect(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.<init>(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.New(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.New(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:410)
	... 11 common frames omitted
23:33:53.854 [Tags-TreeLoader-1] ERROR com.inductiveautomation.ignition.designer.tags.tree.node.TagProviderSource - Error loading tags underneath [default]
com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Connection refused: connect
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:351)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:543)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:283)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:278)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:945)
	at com.inductiveautomation.ignition.client.tags.impl.GatewayTagInterface$GatewayProviderProxy.browseAsync(GatewayTagInterface.java:318)
	at com.inductiveautomation.ignition.client.tags.impl.ClientTagManagerImpl.browseAsync(ClientTagManagerImpl.java:168)
	at com.inductiveautomation.ignition.designer.tags.tree.node.TagProviderSource.browse$suspendImpl(TagFrameNodes.kt:223)
	at com.inductiveautomation.ignition.designer.tags.tree.node.TagProviderSource.browse(TagFrameNodes.kt)
	at com.inductiveautomation.ignition.designer.tags.tree.node.NoUdtTagSource.browse(TagFrameNodes.kt:208)
	at com.inductiveautomation.ignition.designer.tags.tree.node.AbstractTagTreeNode$executeChildrenBrowse$1.invokeSuspend(TagFrameNodes.kt:276)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
	at com.inductiveautomation.ignition.designer.tags.tree.node.AbstractTagTreeNode.executeChildrenBrowse(TagFrameNodes.kt:275)
	at com.inductiveautomation.ignition.client.tags.tree.node.AbstractBrowseNode$Loader.doRun(AbstractBrowseNode.java:539)
	at com.inductiveautomation.ignition.client.tags.tree.node.AbstractBrowseNode$Loader.run(AbstractBrowseNode.java:583)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection refused: connect
	at java.base/java.net.PlainSocketImpl.waitForConnect(Native Method)
	at java.base/java.net.PlainSocketImpl.socketConnect(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.connect(Unknown Source)
	at java.base/java.net.Socket.connect(Unknown Source)
	at java.base/sun.net.NetworkClient.doConnect(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.<init>(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.New(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.New(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:410)
	... 25 common frames omitted
23:33:53.866 [GatewayConnection-1] INFO tags.subscriptions - Changing connected quality to 'Bad_Stale'
23:33:53.866 [GatewayConnection-1] INFO Scripting.ScriptManager.PageSys - Pausing scripts...
23:33:53.875 [GatewayConnection-1] INFO com.inductiveautomation.ignition.client.gateway_interface.GatewayConnectionManager - Updated login state. Logged in? true, Username: admin, Roles: [Administrator], Security Zones: null
23:33:54.890 [GatewayConnection-1] INFO tags.subscriptions - Changing connected quality to 'Bad_GatewayCommOff'
23:33:54.890 [GatewayConnection-1] INFO Scripting.ScriptManager.PageSys - Resuming scripts...
23:33:56.907 [GatewayConnection-1] WARN com.inductiveautomation.ignition.client.gateway_interface.GatewayConnectionManager - Connection to Gateway lost, due to exception.
com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Connection refused: connect
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:351)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:543)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:357)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.ping(GatewayInterface.java:1002)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.ping(GatewayInterface.java:987)
	at com.inductiveautomation.ignition.client.gateway_interface.AbstractGatewayConnection.fishForAliveServer(AbstractGatewayConnection.java:692)
	at com.inductiveautomation.ignition.client.gateway_interface.AbstractGatewayConnection$GatewayReconnectTask.run(AbstractGatewayConnection.java:1047)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection refused: connect
	at java.base/java.net.PlainSocketImpl.waitForConnect(Native Method)
	at java.base/java.net.PlainSocketImpl.socketConnect(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.connect(Unknown Source)
	at java.base/java.net.Socket.connect(Unknown Source)
	at java.base/sun.net.NetworkClient.doConnect(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.<init>(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.New(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.New(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:410)
	... 11 common frames omitted
23:33:56.909 [Tags-TreeLoader-1] ERROR com.inductiveautomation.ignition.designer.tags.tree.node.TagProviderSource - Error loading tags underneath [default]
com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Connection refused: connect
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:351)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:543)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:283)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:278)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:945)
	at com.inductiveautomation.ignition.client.tags.impl.GatewayTagInterface$GatewayProviderProxy.browseAsync(GatewayTagInterface.java:318)
	at com.inductiveautomation.ignition.client.tags.impl.ClientTagManagerImpl.browseAsync(ClientTagManagerImpl.java:168)
	at com.inductiveautomation.ignition.designer.tags.tree.node.TagProviderSource.browse$suspendImpl(TagFrameNodes.kt:223)
	at com.inductiveautomation.ignition.designer.tags.tree.node.TagProviderSource.browse(TagFrameNodes.kt)
	at com.inductiveautomation.ignition.designer.tags.tree.node.NoUdtTagSource.browse(TagFrameNodes.kt:208)
	at com.inductiveautomation.ignition.designer.tags.tree.node.AbstractTagTreeNode$executeChildrenBrowse$1.invokeSuspend(TagFrameNodes.kt:276)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
	at com.inductiveautomation.ignition.designer.tags.tree.node.AbstractTagTreeNode.executeChildrenBrowse(TagFrameNodes.kt:275)
	at com.inductiveautomation.ignition.client.tags.tree.node.AbstractBrowseNode$Loader.doRun(AbstractBrowseNode.java:539)
	at com.inductiveautomation.ignition.client.tags.tree.node.AbstractBrowseNode$Loader.run(AbstractBrowseNode.java:583)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection refused: connect
	at java.base/java.net.PlainSocketImpl.waitForConnect(Native Method)
	at java.base/java.net.PlainSocketImpl.socketConnect(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.connect(Unknown Source)
	at java.base/java.net.Socket.connect(Unknown Source)
	at java.base/sun.net.NetworkClient.doConnect(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.<init>(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.New(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.New(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:410)
	... 25 common frames omitted
23:33:56.918 [GatewayConnection-1] INFO tags.subscriptions - Changing connected quality to 'Bad_Stale'
23:33:56.918 [GatewayConnection-1] INFO Scripting.ScriptManager.PageSys - Pausing scripts...
23:33:56.931 [GatewayConnection-1] INFO com.inductiveautomation.ignition.client.gateway_interface.GatewayConnectionManager - Updated login state. Logged in? true, Username: admin, Roles: [Administrator], Security Zones: null
23:33:57.945 [GatewayConnection-1] INFO tags.subscriptions - Changing connected quality to 'Bad_GatewayCommOff'
23:33:57.945 [GatewayConnection-1] INFO Scripting.ScriptManager.PageSys - Resuming scripts...
23:33:59.959 [GatewayConnection-1] WARN com.inductiveautomation.ignition.client.gateway_interface.GatewayConnectionManager - Connection to Gateway lost, due to exception.
com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Connection refused: connect
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:351)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:543)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:357)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.ping(GatewayInterface.java:1002)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.ping(GatewayInterface.java:987)
	at com.inductiveautomation.ignition.client.gateway_interface.AbstractGatewayConnection.fishForAliveServer(AbstractGatewayConnection.java:692)
	at com.inductiveautomation.ignition.client.gateway_interface.AbstractGatewayConnection$GatewayReconnectTask.run(AbstractGatewayConnection.java:1047)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection refused: connect
	at java.base/java.net.PlainSocketImpl.waitForConnect(Native Method)
	at java.base/java.net.PlainSocketImpl.socketConnect(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.connect(Unknown Source)
	at java.base/java.net.Socket.connect(Unknown Source)
	at java.base/sun.net.NetworkClient.doConnect(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.<init>(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.New(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.New(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:410)
	... 11 common frames omitted
23:33:59.969 [Tags-TreeLoader-1] ERROR com.inductiveautomation.ignition.designer.tags.tree.node.TagProviderSource - Error loading tags underneath [default]
com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Connection refused: connect
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:351)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:543)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:283)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:278)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.invoke(GatewayInterface.java:945)
	at com.inductiveautomation.ignition.client.tags.impl.GatewayTagInterface$GatewayProviderProxy.browseAsync(GatewayTagInterface.java:318)
	at com.inductiveautomation.ignition.client.tags.impl.ClientTagManagerImpl.browseAsync(ClientTagManagerImpl.java:168)
	at com.inductiveautomation.ignition.designer.tags.tree.node.TagProviderSource.browse$suspendImpl(TagFrameNodes.kt:223)
	at com.inductiveautomation.ignition.designer.tags.tree.node.TagProviderSource.browse(TagFrameNodes.kt)
	at com.inductiveautomation.ignition.designer.tags.tree.node.NoUdtTagSource.browse(TagFrameNodes.kt:208)
	at com.inductiveautomation.ignition.designer.tags.tree.node.AbstractTagTreeNode$executeChildrenBrowse$1.invokeSuspend(TagFrameNodes.kt:276)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
	at com.inductiveautomation.ignition.designer.tags.tree.node.AbstractTagTreeNode.executeChildrenBrowse(TagFrameNodes.kt:275)
	at com.inductiveautomation.ignition.client.tags.tree.node.AbstractBrowseNode$Loader.doRun(AbstractBrowseNode.java:539)
	at com.inductiveautomation.ignition.client.tags.tree.node.AbstractBrowseNode$Loader.run(AbstractBrowseNode.java:583)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection refused: connect
	at java.base/java.net.PlainSocketImpl.waitForConnect(Native Method)
	at java.base/java.net.PlainSocketImpl.socketConnect(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
	at java.base/java.net.AbstractPlainSocketImpl.connect(Unknown Source)
	at java.base/java.net.Socket.connect(Unknown Source)
	at java.base/sun.net.NetworkClient.doConnect(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.openServer(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.<init>(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.New(Unknown Source)
	at java.base/sun.net.www.http.HttpClient.New(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.getResponse(GatewayInterface.java:410)
	... 25 common frames omitted
23:33:59.970 [GatewayConnection-1] INFO tags.subscriptions - Changing connected quality to 'Bad_Stale'
23:33:59.970 [GatewayConnection-1] INFO Scripting.ScriptManager.PageSys - Pausing scripts...
23:34:01.986 [GatewayConnection-1] ERROR com.inductiveautomation.ignition.client.gateway_interface.GatewayConnectionManager - Unable to get designer auth strategy

Here’s the error message during connection loss:

ExecutionException: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Connection refused: connect
	caused by GatewayException: Connection refused: connect
	caused by ConnectException: Connection refused: connect

Ignition v8.1.17 (b2022051210)
Java: Azul Systems, Inc. 11.0.15

Gateway and dev PC are on same GB LAN.

When is 8.1.18 LTS due for final release?

This afternoon some time if nothing goes wrong.

3 Likes

Out of curiosity, how are you addressing the remote server? Is it by IPv4 directly or via DNS name?

I have same issue if i access remote server via DNS name, if i put ip address IPV4 it will work.

I’ll add some additional context for my inquiry. First off, I don’t think the failure described is related to Ignition itself. I’ve seen this behavior in the past, though my configuration is slightly different. I’ll describe it in the event it is of any interest. I’m on macOS, leveraging Docker Desktop. I’ve got a bridged docker network called proxy against which I run an instance of Traefik (connected to Docker socket in read-only mode) publishing ports 80/443/1883. I then spool up containers against that proxy using something like below:

CONTAINER_NAME=ia-ignition; docker run -d --rm --name ${CONTAINER_NAME} \
  -l traefik.enable=true \
  -l traefik.http.routers.${CONTAINER_NAME}.entrypoints=web \
  -l traefik.http.routers.${CONTAINER_NAME}.rule=Host\(\`${CONTAINER_NAME}.vcap.me\`\) \
  -l traefik.http.services.${CONTAINER_NAME}.loadbalancer.server.port=8088 \
  --network proxy --env-file ~/Docker/basic.env \
  inductiveautomation/ignition:8.1.18 \
  -a "${CONTAINER_NAME}.vcap.me" \
  -h 80 \
  -s 443 \
  -m 1024

As you might be able to see above, this just launches an ephemeral Ignition gateway that I can quickly do simple mockups and testing against (I don’t have a volume attached to it, and with --rm, it is gone when the container is stopped/shutdown). The other bits of interest are the container labels here that are picked up by Traefik that allow me to just connect to http://ia-ignition.vcap.me on my local machine–no fiddling about with port numbers or anything. It works quite nicely–I use the same proxy Docker network for some of my Compose stacks as well to add name-based access via automatic route creation from the labels.

I mention all of this because I’ve seen the periodic Connection Refused and reconnect behavior in the past. It was fixed at some point–though I’m not sure if it was from updating Traefik or from updating Docker Engine itself (via Docker Desktop updates). I’ve not seen it for quite some time.

@Matrix_Engineering, what do you get from docker version? For example, this is what I get from my local setup, indicating a pretty up-to-date (only one behind) Docker Engine version of 20.10.16:

Also, because it took me way to long to discover this shortcut, I’ll share the wonder of using Ctrl-R to step back through your command history for only the commands containing the search text, inline… It is how I recall that long command I listed above. Sure, I could make an alias for it, but I frequently customize the invocation based on my needs–it is nice to be able to search backward (and forward if you pass by it with Ctrl-S). Nice thing is that this also works in both bash and zsh… Happy Friday!

Yep… DNS… I’ll try IPv4, thanks