Is your ThinkorSwim screen stuck at “Installing updates…”?
The message occurs when you try to launch the program on your desktop.
This problem can happen on both Windows and macOS.
In this guide, you’ll learn how to fix a stuck ThinkorSwim update.
ThinkorSwim Minimum System Requirements
First, ensure your computer meets the minimum system requirements for ThinkorSwim.
MAC users: Your computer needs to run OS X 10.11 or later.
LINUX users: thinkorswim requires Zulu OpenJDK 11.
UNIX users: Java 11 must be installed.
Force Quit ThinkorSwim
Start by closing the ThinkorSwim window on your computer.
On Windows:
- Open Task Manager.
- Under Process, look for thinkorswim desktop application and right-click on it.
- Click on End Task.
On Mac:
- Press Option, Command, and Esc (Escape) altogether to open the Force Quit window.
- Select ThinkorSwim.
- Select Force Quit.
Restart your computer and then run the update again.
Delete USERGUI folder in ThinkorSwim directory
If closing ThinkorSwim and restarting your computer doesn’t solve this problem, the last resort is to delete the USERGUI folder within the ThinkorSwim directory.
A TD Ameritrade customer support member suggested this method.
On Windows:
- Go to Local Disk (C:) > Program Files > thinkorswim.
- Within that directory, you should see a folder called USERGUI.
- Delete the USERGUI folder.
- Restart your computer.
- Open thinkorswim.
On Mac:
- Go to Applications > thinkorswim.
- Find the USERGUI folder and drag it into the Trash icon.
- Empty all of the Trash on macOS.
- Restart your computer.
- Launch thinkorswim.
Deleting the USERGUI folder will not cause any data loss. Your ThinkorSwim data will remain the same, including charts, custom scripts, and everything else.
Final Words
ThinkorSwim updates are usually applied over the weekend.
For some users, they may encounter this problem on a Monday morning.
Once the updates have been installed, the software will automatically restart, and you will be able to use it as usual.
It’s very rare for ThinkorSwim to get stuck while updating its software. But if it does, now you know how to troubleshoot it.
worked like a charm, thank you very much. for me it was option 2 deleting the usergui folder restart and run TOS
Thank you , it did fix it by deleting usergui , didn’t have to restart computer thanks again
Yep worked for me as well…Thanks to all of you…
Not working for me. Since their last maintenance (Fri night) it doesn’t work for me…
04.11.23 08:15:40:943 suit INFO: [UpdateManager-96875] isUptodate exception:java.net.ConnectException: Connection refused: connect
04.11.23 08:15:40:945 suit INFO: [UpdateManager-96875] isModuleUptodate error: java.net.ConnectException: Connection refused: connect
04.11.23 08:15:40:945 suit INFO: [UpdateManager-96875] suit: Problem when connecting to https://198.200.170.198
04.11.23 08:15:40:945 suit INFO: [AWT-EventQueue-0] UpdaterFrameManager: Problem when connecting to https://198.200.170.198
04.11.23 08:15:40:945 suit INFO: [UpdateManager-96875] suit: 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.SocksSocketImpl.connect(Unknown Source)
at java.base/java.net.Socket.connect(Unknown Source)
at java.base/sun.security.ssl.SSLSocketImpl.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.protocol.https.HttpsClient.(Unknown Source)
at java.base/sun.net.www.protocol.https.HttpsClient.New(Unknown Source)
at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.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.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.base/java.net.HttpURLConnection.getResponseCode(Unknown Source)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)
at com.devexperts.jnlp.updater.HttpResponse.(HttpResponse.java:26)
at com.devexperts.jnlp.updater.HttpRequest.doRequest(HttpRequest.java:84)
at com.devexperts.jnlp.updater.HttpRequest.doGetRequest(HttpRequest.java:65)
at com.devexperts.jnlp.utils.Utils.getVersion(Utils.java:209)
at com.devexperts.jnlp.updater.ModuleManager.isUptodate(ModuleManager.java:404)
at com.devexperts.jnlp.UpdateManager.isModuleUptodate(UpdateManager.java:155)
at com.devexperts.jnlp.UpdateManager.main(UpdateManager.java:430)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at com.devexperts.jnlp.Launcher.run(Launcher.java:32)
at java.base/java.lang.Thread.run(Unknown Source)
04.11.23 08:15:40:949 suit INFO: [UpdateManager-96875] AppInfo: nativeLauncherName=thinkorswim.exe
04.11.23 08:15:40:949 suit INFO: [UpdateManager-96875] AppInfo: nativeLauncherName=thinkorswim.exe
04.11.23 08:15:40:949 suit INFO: [UpdateManager-96875] Ignored legacy VM option: XX:MaxPermSize
04.11.23 08:15:40:949 suit INFO: [UpdateManager-96875] isUptodate:
04.11.23 08:15:41:018 suit INFO: [AWT-EventQueue-0] UpdaterFrameManager: 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.SocksSocketImpl.connect(Unknown Source)
at java.base/java.net.Socket.connect(Unknown Source)
at java.base/sun.security.ssl.SSLSocketImpl.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.protocol.https.HttpsClient.(Unknown Source)
at java.base/sun.net.www.protocol.https.HttpsClient.New(Unknown Source)
at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.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.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.base/java.net.HttpURLConnection.getResponseCode(Unknown Source)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)
at com.devexperts.jnlp.updater.HttpResponse.(HttpResponse.java:26)
at com.devexperts.jnlp.updater.HttpRequest.doRequest(HttpRequest.java:84)
at com.devexperts.jnlp.updater.HttpRequest.doGetRequest(HttpRequest.java:65)
at com.devexperts.jnlp.utils.Utils.getVersion(Utils.java:209)
at com.devexperts.jnlp.updater.ModuleManager.isUptodate(ModuleManager.java:404)
at com.devexperts.jnlp.UpdateManager.isModuleUptodate(UpdateManager.java:155)
at com.devexperts.jnlp.UpdateManager.main(UpdateManager.java:430)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at com.devexperts.jnlp.Launcher.run(Launcher.java:32)
at java.base/java.lang.Thread.run(Unknown Source)
04.11.23 08:15:41:023 suit INFO: [AWT-EventQueue-0] UpdaterFrameManager: 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.SocksSocketImpl.connect(Unknown Source)
at java.base/java.net.Socket.connect(Unknown Source)
at java.base/sun.security.ssl.SSLSocketImpl.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.protocol.https.HttpsClient.(Unknown Source)
at java.base/sun.net.www.protocol.https.HttpsClient.New(Unknown Source)
at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.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.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.base/java.net.HttpURLConnection.getResponseCode(Unknown Source)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)
at com.devexperts.jnlp.updater.HttpResponse.(HttpResponse.java:26)
at com.devexperts.jnlp.updater.HttpRequest.doRequest(HttpRequest.java:84)
at com.devexperts.jnlp.updater.HttpRequest.doGetRequest(HttpRequest.java:65)
at com.devexperts.jnlp.utils.Utils.getVersion(Utils.java:209)
at com.devexperts.jnlp.updater.ModuleManager.isUptodate(ModuleManager.java:404)
at com.devexperts.jnlp.UpdateManager.isModuleUptodate(UpdateManager.java:155)
at com.devexperts.jnlp.UpdateManager.main(UpdateManager.java:430)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at com.devexperts.jnlp.Launcher.run(Launcher.java:32)
at java.base/java.lang.Thread.run(Unknown Source)
Thank you , it also fixed it by deleting usergui , didn’t have to restart computer thanks again
So I deleted the usergui folder and it didn’t work, I even tried a different internet connection because it had the error can’t connect to a local IP, so something with the application proxy.
What did work was running as Admin by pressing windows Key, then find thinkorswim, right click and run as admin.
The download error went away and it actually started downloading, it did take a while since I did delete the usergui it had to replace all those files so.
Might be related to windows firewall updates in latest windows 10.
I was going to post the same thing as Marty. Go to the icon, right click, and run as admistrator. For some reason, this works.
Might be that the updates require admin privileges – not sure – but whatever it is, this worked for me.
I tried everything and nothing…any other ideas? TIA
Any idea for Linux, specifically an Ubuntu 20.04 LTS distro?
The fact this STILL happens in 2024 with one of the biggest broker on the planet, wow, I am speechless. I’m on the Mac so instead of messing with Java (JAVA!? WTF!? STILL!? IN 2024!?) I tried their browser version via a 30-day Guest Pass. My initial impression: Jesus!? What is this!? An app from the 90s!? OMG! This is horrendous! How can people like this? Is this a stripped down version? I tried TradingView and Webull (both desktop apps) and with all honesty I don’t understand why ppl still use thinkorswim in the 21st century. Now I don’t even need to install thinkorswim desktop because I know I won’t be using that ugliness from the 90s. Ugh… (…sorry thinkorswim fans)