1. Home
  2. Tutorials
  3. How to Fix ThinkorSwim Stuck on “Installing updates” (2023)

How to Fix ThinkorSwim Stuck on “Installing updates” (2023)

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.

Windows users: No additional software installation is required. A Java virtual machine is included in your TOS download.

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:

  1. Open Task Manager.
  2. Under Process, look for thinkorswim desktop application and right-click on it.
  3. Click on End Task.

On Mac:

  1. Press Option, Command, and Esc (Escape) altogether to open the Force Quit window.
  2. Select ThinkorSwim.
  3. 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:

  1. Go to Local Disk (C:) > Program Files > thinkorswim.
  2. Within that directory, you should see a folder called USERGUI.
  3. Delete the USERGUI folder.
  4. Restart your computer.
  5. Open thinkorswim.

On Mac:

  1. Go to Applications > thinkorswim.
  2. Find the USERGUI folder and drag it into the Trash icon.
  3. Empty all of the Trash on macOS.
  4. Restart your computer.
  5. 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.

Unlock the Power of ThinkorSwim

Get the latest news and updates on TD Ameritrade, ThinkorSwim indicators, thinkScript tutorials, and trading strategies delivered straight to your inbox every week.

We don’t spam! Unsubscribe at anytime.

7 thoughts on “How to Fix ThinkorSwim Stuck on “Installing updates” (2023)

  1. worked like a charm, thank you very much. for me it was option 2 deleting the usergui folder restart and run TOS

  2. 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)

  3. 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.

    1. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *