Gateway Exception : Read Timed Out Caused By SocketTimeoutException

I had an issue this morning where my users were not able to access a particular project, I had other

running in the same gateway that were working just fine.

The error message that every client received when trying to access the project was the following:

image

I re-started the gateway service and this resolved the issue, however, this is very concerning.

Has anyone run into this error before? If so, what does it mean, what causes it, and how can I prevent

this from happening in the future?

It means that some gateway call in the client took too long and got cut off. There are many possibilities for such behavior, but it is typically a database query that is grabbing an unusually large amount of data, or a query that doesn’t have suitable indexing for efficient operation. The latter is a problem that grows worse as the database stores more and more data.

Any gateway that doesn’t have sufficient resources will push clients into these problems as you add projects and clients and otherwise push the load higher. A common mis-configuration (IMNSHO) is to put the database on the same server as Ignition, for anything but toy deployments.

1 Like

The database doesn’t reside on the server but instead I’m utilizing Azure cloud services. Do you have any tips on how I could narrow down the root cause?

Look in in your gateway logs for timeouts, long query warnings, or “clock drift” warnings. The latter are often indicators of insufficient gateway memory (or misconfiguration on older Ignition versions).

1 Like

I’ll start some investigation, thank you for the recommendations, appreciated.

In ignition 8.0.10 version on client side some time because of network fluctuation or internet connection issue system generated error message shows on the user’s screen, it’s ok, but when we get a network or internet connection that time that message box should be removed automatically instead of press OK button on that error message box. Can you please help us how we can show our custom error message box and it should be remove automatically when user got network connection.

We can also use system.util.setReadTimeout(20000) function but how can we identify system called that function so in client window show our custom messagebox.

Can you please help us how to custom error message display when gateway throws network related error?

There’s no customization available for Ignition’s built-in error popup, AFAIK. I recall scripts posted here on the forum to auto-close the popups, but I haven’t used them. You can improve the behavior of scripts with consistent use of jython try … except … clauses, catching errors before they get to the built-in popup. Do note that jython needs two except clauses to catch both jython and java errors, like so: