[Feature-15531] Vision Client on Raspberry Pi – 400 Bad Request from legacyClient.sh

Hi everyone,

I’m trying to run an Ignition Vision Client on a Raspberry Pi 5 running Ubuntu 24.04 LTS Desktop. The Ignition Gateway is installed locally on the same Pi and is running fine (confirmed via browser access to http://127.0.0.1:8088).

I’m using the legacyClient.sh script to launch the Vision Client with the following command:

./legacyClient.sh address=http://127.0.0.1:8088 scope=C project=PLC_Teststand windowmode=W

The bootstrap process starts, downloads the launchclient.jar, and initializes the JVM, but then fails with the following error:

sudo ./legacyClient.sh address=http://127.0.0.1:8088 scope=c project=PLC_Teststand windowmode=F
[sudo] password for scada: 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 6684k  100 6684k    0     0   123M      0 --:--:-- --:--:-- --:--:--  125M
Initialization performed successfully
JVM-wide ObjectInputFilter set up successfully
Platform serialFilter has 88 pattern(s)
Starting Bootstrap Loader v3.0
Connect Step [attempt 1] connecting to: http://127.0.0.1:8088...
Downloading manifest at http://127.0.0.1:8088/system/launchmf/C?os=linux
Connect attempt 1 for address http://127.0.0.1:8088 failed.
com.inductiveautomation.ignition.client.launch.steps.HttpResponseException: 400: Bad Request
	at com.inductiveautomation.ignition.client.launch.steps.ConnectStep.downloadManifest(ConnectStep.java:192)
	at com.inductiveautomation.ignition.client.launch.steps.ConnectStep.downloadManifest(ConnectStep.java:116)
	at com.inductiveautomation.ignition.client.launch.steps.ConnectStep.run(ConnectStep.java:58)
	at com.inductiveautomation.ignition.client.launch.AbstractStepRunner.run(AbstractStepRunner.java:33)
	at java.base/java.lang.Thread.run(Thread.java:829)
com.inductiveautomation.ignition.client.launch.steps.HttpResponseException: 400: Bad Request
	at com.inductiveautomation.ignition.client.launch.steps.ConnectStep.downloadManifest(ConnectStep.java:192)
	at com.inductiveautomation.ignition.client.launch.steps.ConnectStep.downloadManifest(ConnectStep.java:116)
	at com.inductiveautomation.ignition.client.launch.steps.ConnectStep.run(ConnectStep.java:58)
	at com.inductiveautomation.ignition.client.launch.AbstractStepRunner.run(AbstractStepRunner.java:33)
	at java.base/java.lang.Thread.run(Thread.java:829)


###What I’ve checked so far:

  • The Gateway is accessible in the browser on the Pi at http://127.0.0.1:8088
  • The project PLC_Teststand exists and launches fine from another (x86) client
  • The command works on an x86_64 machine, so the arguments are correct
  • The system is running in Trial Mode
  • Using BellSoft Liberica JDK 11 for ARM

What I suspect:

  • This could be architecture-related (ARM vs x86)
  • It might relate to how the legacy launcher handles the launchmf call or project name
  • Possibly the os=linux parameter or a missing header is causing the 400

My Questions:

  1. Is launching Vision Clients via legacyClient.sh officially supported on ARM (e.g. Raspberry Pi)?
  2. Are there any known limitations or fixes for this?
  3. Are there other relevant loggers I should enable to trace this (e.g. for the launchmf handler)?
  • So far I tried setting gateway.FederationRoutes to DEBUG – but I didn’t see anything related to this 400 error.

Thanks in advance for any suggestions!

...
Downloading manifest at http://127.0.0.1:8088/system/launchmf/C?os=linux
...

I believe it is getting a 400 here due to arch not being supplied. As of 8.1.47, arch is a required parameter. That said, the launchclient.jar that the legacy script downloads from the gateway should have the corresponding logic to provide that arch argument with the manifest download (based ultimately on the os.arch system property set by the JVM).

Can you provide some additional details?

  • What version of Ignition are you using
  • You mention Raspberry Pi 5 running Ubuntu 24.04, I'm assuming architecture is aarch64? (please provide output of uname -a)
  • What version of Java are you using (where you're launching legacyClient.sh, perhaps just the response from java --version)

Thanks for the quick reply!

Here are the details you asked for:

System Details

  • Ignition Version: 8.1.48
  • Platform: Raspberry Pi 5
  • OS: Ubuntu 24.04 LTS 64-bit
  • Architecture: Output of uname -a:
Linux scada-desktop 6.8.0-1030-raspi #34-Ubuntu SMP PREEMPT_DYNAMIC Mon Jun 23 05:50:33 UTC 2025 aarch64 aarch64 aarch64 GNU/Linux
  • Java Version (Liberica JDK 11):
scada@scada-desktop:~/Downloads$ java --version
openjdk version "11.0.27" 2025-04-15 LTS
OpenJDK Runtime Environment (build 11.0.27+9-LTS)
OpenJDK 64-Bit Server VM (build 11.0.27+9-LTS, mixed mode)
scada@scada-desktop:~/Downloads$ echo $JAVA_HOME
/usr/lib/jvm/bellsoft-java11-aarch64

You'll need to use Java 17 for Ignition 8.1.33+. Let's try that first...

You could probably try this temporarily using the one shipped with Ignition if it is installed on the same device:

export IGNITION_INSTALL_LOCATION="/usr/local/bin/ignition"
export JAVA_HOME="${IGNITION_INSTALL_LOCATION}/lib/runtime/jre-aarch64"
export PATH="${JAVA_HOME}/bin:$PATH"
java --version

... which should then emit:

openjdk 17.0.14 2025-01-21 LTS
OpenJDK Runtime Environment Zulu17.56+16-SA (build 17.0.14+7-LTS)
OpenJDK 64-Bit Server VM Zulu17.56+16-SA (build 17.0.14+7-LTS, mixed mode)

Thanks again for the follow-up.

I’ve now switched to Java 17 using the runtime provided by Ignition itself:

export IGNITION_INSTALL_LOCATION=/usr/local/bin/ignition
export JAVA_HOME="${IGNITION_INSTALL_LOCATION}/lib/runtime/jre-aarch64"
export PATH="${JAVA_HOME}/bin:$PATH"

Output from java --version confirms it's active:

openjdk 17.0.14 2025-01-21 LTS
OpenJDK Runtime Environment Zulu17.56+16-SA (build 17.0.14+7-LTS)
OpenJDK 64-Bit Server VM Zulu17.56+16-SA (build 17.0.14+7-LTS, mixed mode)

However, I still get the same 400 error when launching the Vision Client via legacyClient.sh:

Starting Bootstrap Loader v3.0
Connect Step [attempt 1] connecting to: http://127.0.0.1:8088...
Downloading manifest at http://127.0.0.1:8088/system/launchmf/C?os=linux
Connect attempt 1 for address http://127.0.0.1:8088 failed.
com.inductiveautomation.ignition.client.launch.steps.HttpResponseException: 400: Bad Request

Thanks again for the help!

It doesn't look like aarch64 is a supported architecture for the launch manifest for 8.1.x, unfortunately. The only workaround that might work at this time is to use Raspberry Pi OS (32-bit) on your Pi 5 (Ubuntu doesn't offer a 32-bit variant).

The good news is that I was able to mock this up (via tigervnc-standalone-server package inside a Docker container) on aarch64 under our 8.3 dev branch--so once 8.3.0 is released, it might work. We don't formally support launching Vision/Designer on linux/arm or linux/arm64 though.

Is this still the case now that 8.3 is production? We have 60 or so Raspberry Pi devices running vision apps. I recently updated one of our gateways from 8.1.32 to 8.1.51 and now getting this 400 Bad Request error. I have tried running the same app from an 8.3.2 gateway as well, but in this case after launching the JVM is just quits. No error, just back to desktop.

I know its not officially supported but we have a small fleet of these at our sites that we would like to continue to use.

Can you enlighten me on how you got this working on 8.3? I am still struggling with this. I have a fresh 8.3 gateway in docker and have just a simple vision app with a clock.

Here is my log below. The launcher opens briefly and then just closes. No errors. I am using Azul Java

Initialization performed successfully
JVM-wide ObjectInputFilter set up successfully
Platform serialFilter has 88 pattern(s)
Starting Bootstrap Loader v3.0
Connect Step [attempt 1] connecting to: http://10.0.20.90:9088...
Downloading manifest at http://10.0.20.90:9088/system/launchmf/C?os=linux&arch=aarch64
...connect successful
Successfully downloaded launch manifest:
<?xml version="1.0" encoding="UTF-8"?>
<launch scope="C" framework="7" jreVersion="17.0.17" useCondensedDialogFont="false">
        <module name="" build="2026012009">
                <jar name="jetty-io-12.0.27.jar" crc="C29E307" length="335521"/>
                <jar name="kotlin-stdlib-jdk7-1.9.20.jar" crc="ECC5F52E" length="966"/>
                <jar name="synthetica-addons-3.4.1.jar" crc="677F89ED" length="266776"/>
                <jar name="batik-ext-1.19.jar" crc="7A9979FF" length="10357"/>
                <jar name="timingframework-1.0.jar" crc="7832C4C0" length="102616"/>
                <jar name="bcutil-jdk18on-1.78.1.jar" crc="D7BED591" length="705135"/>
                <jar name="commons-collections4-4.4.jar" crc="6847F0D3" length="751914"/>
                <jar name="common.jar" crc="F9134F1F" length="7205410"/>
                <jar name="client-api-8.3.3.jar" crc="BCC0F25D" length="3095610"/>
                <jar name="failureaccess-1.0.1.jar" crc="1699CE08" length="4617"/>
                <jar name="rsyntaxtextarea-3.3.4.jar" crc="C16D3799" length="1297525"/>
                <jar name="batik-constants-1.19.jar" crc="F1EC9B4A" length="8553"/>
                <jar name="jetty-websocket-jetty-common-12.0.27.jar" crc="9A2EF1A4" length="31511"/>
                <jar name="commons-lang3-3.11.jar" crc="4FD4C07C" length="577742"/>
                <jar name="jxbrowser-swing-8.12.1.jar" crc="E25A1940" length="194615"/>
                <jar name="active-query-builder-8.3.3.jar" crc="94139561" length="2672306"/>
                <jar name="guava-32.0.1-jre.jar" crc="8295BD16" length="3037368"/>
                <jar name="swingx-0.0.3-ia.jar" crc="65E602E1" length="1512564"/>
                <jar name="cron4j-2.2.5.jar" crc="FFAC5F7B" length="36227"/>
                <jar name="kotlin-stdlib-1.9.20.jar" crc="19DA5584" length="1718949"/>
                <jar name="curvesapi-1.06.jar" crc="D1B9BE33" length="111875"/>
                <jar name="imageio-metadata-3.8.3.jar" crc="9B8D2C7D" length="81865"/>
                <jar name="metrics-healthchecks-4.2.25.jar" crc="59ECE4E1" length="23525"/>
                <jar name="poi-4.1.2.jar" crc="FE74921A" length="2915337"/>
                <jar name="jide-components-3.7.14.jar" crc="2FA7D2F1" length="411872"/>
                <jar name="jydocking-3.4.1.jar" crc="5EC6B4CE" length="281641"/>
                <jar name="commons-text-1.10.0.jar" crc="3B85FAEA" length="238400"/>
                <jar name="jgrapht-core-1.4.0.jar" crc="AB8E765E" length="1091677"/>
                <jar name="forms-1.0.7.jar" crc="5E8CB029" length="86828"/>
                <jar name="gson-2.8.9.jar" crc="75439134" length="258075"/>
                <jar name="jetty-websocket-jetty-api-12.0.27.jar" crc="9DCF70F0" length="28931"/>
                <jar name="ia-gson-2.10.1.jar" crc="41B7FC23" length="306440"/>
                <jar name="jsr305-3.0.2.jar" crc="204031EF" length="19936"/>
                <jar name="batik-swing-1.19.jar" crc="4387C9D9" length="191926"/>
                <jar name="kotlinx-coroutines-core-jvm-1.5.2.jar" crc="1FB63442" length="1481065"/>
                <jar name="batik-script-1.19.jar" crc="C167A15E" length="24758"/>
                <jar name="imageio-core-3.8.3.jar" crc="68C6211F" length="92987"/>
                <jar name="kotlin-stdlib-jdk8-1.9.20.jar" crc="B6C1829C" length="972"/>
                <jar name="miglayout-core-11.1.jar" crc="C191716B" length="106832"/>
                <jar name="jSerialComm-2.11.0.jar" crc="D8B74273" length="903271"/>
                <jar name="jytable-3.4.1.jar" crc="AEC20C93" length="168130"/>
                <jar name="miglayout-swing-11.1.jar" crc="CB206AC3" length="23041"/>
                <jar name="batik-bridge-1.19.jar" crc="9583EA66" length="705148"/>
                <jar name="imageio-tiff-3.8.3.jar" crc="FAD0BDDA" length="113412"/>
                <jar name="kotlinx-coroutines-swing-1.5.2.jar" crc="DDF67DE4" length="9331"/>
                <jar name="batik-awt-util-1.19.jar" crc="F7EDECFD" length="424545"/>
                <jar name="jetty-util-12.0.27.jar" crc="FF5D7042" length="695343"/>
                <jar name="commons-math3-3.6.1.jar" crc="5D5A24E1" length="2213560"/>
                <jar name="client-bootstrap-8.3.3.jar" crc="21763B0B" length="3997489"/>
                <jar name="common-io-3.8.3.jar" crc="53A1F0AD" length="89993"/>
                <jar name="java-cup-10k.jar" crc="3FCB2D3D" length="84156"/>
                <jar name="metrics-core-4.2.25.jar" crc="BF68B56E" length="130851"/>
                <jar name="batik-i18n-1.19.jar" crc="B04C8451" length="11541"/>
                <jar name="logback-core-1.3.14.jar" crc="1CFBD738" length="579673"/>
                <jar name="SparseBitSet-1.2.jar" crc="C73970F8" length="24510"/>
                <jar name="jetty-websocket-core-client-12.0.27.jar" crc="BE3D7B5F" length="24642"/>
                <jar name="commons-codec-1.18.0.jar" crc="1A07FA7F" length="373045"/>
                <jar name="log4j-over-slf4j-2.0.12.jar" crc="CB2F60FA" length="26532"/>
                <jar name="synthetica-3.4.2-beta1.jar" crc="4E398ECC" length="621708"/>
                <jar name="commons-logging-1.2.jar" crc="3621FD43" length="61829"/>
                <jar name="security-8.3.3.jar" crc="DEABC743" length="18759"/>
                <jar name="protobuf-java-util-3.25.8.jar" crc="31374E5B" length="73138"/>
                <jar name="jose4j-0.9.6.jar" crc="28D7DDFA" length="299502"/>
                <jar name="batik-css-1.19.jar" crc="3E8FB7A9" length="330795"/>
                <jar name="jython-ia-2.7.3.5.jar" crc="88F66FF4" length="37687735"/>
                <jar name="commons-compress-1.27.1.jar" crc="32D6FE4B" length="1087319"/>
                <jar name="xmlgraphics-commons-2.11.jar" crc="9EC6AFE4" length="686441"/>
                <jar name="jxbrowser-8.12.1.jar" crc="C1234210" length="14205414"/>
                <jar name="bcprov-jdk18on-1.78.1.jar" crc="6A23F166" length="8324412"/>
                <jar name="poi-ooxml-4.1.2.jar" crc="60FDFCC" length="1888231"/>
                <jar name="core-java6-3.2.1.4.jar" crc="B87C35C4" length="543804"/>
                <jar name="jfreechart-min-1.0.0.jar" crc="DC0AEE96" length="1636824"/>
                <jar name="poi-ooxml-schemas-4.1.2.jar" crc="E061E5A" length="7912488"/>
                <jar name="checker-qual-3.33.0.jar" crc="6A175450" length="223979"/>
                <jar name="httpcore-4.4.13.jar" crc="2FCEAFE7" length="328593"/>
                <jar name="httpclient-4.5.13.jar" crc="EC26836C" length="780321"/>
                <jar name="jetty-client-12.0.27.jar" crc="B128C454" length="355146"/>
                <jar name="jide-grids-3.7.14.jar" crc="B01A8885" length="2422892"/>
                <jar name="batik-svggen-1.19.jar" crc="B21617F6" length="227569"/>
                <jar name="batik-util-1.19.jar" crc="5031ECD1" length="127350"/>
                <jar name="jyiconfonts-3.4.1.jar" crc="17C9D3E3" length="1141225"/>
                <jar name="batik-gvt-1.19.jar" crc="FE2E1A4B" length="192194"/>
                <jar name="ignition-laf-3.1.0-beta13.jar" crc="EF05BC26" length="406791"/>
                <jar name="jheaps-0.11.jar" crc="67F79D2" length="133503"/>
                <jar name="jetty-websocket-core-common-12.0.27.jar" crc="A77B4964" length="191727"/>
                <jar name="batik-xml-1.19.jar" crc="FA3EE955" length="33966"/>
                <jar name="imageio-jpeg-3.8.3.jar" crc="609C3CC8" length="92263"/>
                <jar name="jul-to-slf4j-2.0.12.jar" crc="79270A70" length="6350"/>
                <jar name="barcode4j-2.1.jar" crc="B907C79" length="274404"/>
                <jar name="batik-dom-1.19.jar" crc="9E9B97D1" length="184144"/>
                <jar name="common-lang-3.8.3.jar" crc="89DBCA67" length="119561"/>
                <jar name="annotations-13.0.jar" crc="E6DD8E33" length="17536"/>
                <jar name="xml-apis-1.3.04.jar" crc="9F219AB6" length="194354"/>
                <jar name="jide-common-3.7.14.jar" crc="F16C0FCF" length="1709491"/>
                <jar name="listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" crc="F36D4890" length="2199"/>
                <jar name="batik-parser-1.19.jar" crc="BFFC6EED" length="76925"/>
                <jar name="slf4j-api-2.0.12.jar" crc="920B60CF" length="68115"/>
                <jar name="xml-apis-ext-1.3.04.jar" crc="87389C28" length="85686"/>
                <jar name="bcpkix-jdk18on-1.78.1.jar" crc="A449A1D2" length="1125173"/>
                <jar name="jide-plaf-9-0.0.1.jar" crc="83F57046" length="195573"/>
                <jar name="jetty-http-12.0.27.jar" crc="592240F4" length="437870"/>
                <jar name="jetty-alpn-client-12.0.27.jar" crc="3E294887" length="7170"/>
                <jar name="commons-io-2.18.0.jar" crc="3AD689FF" length="538910"/>
                <jar name="imageio-batik-3.8.3.jar" crc="81082F3F" length="22007"/>
                <jar name="j2objc-annotations-2.8.jar" crc="E930F306" length="9301"/>
                <jar name="imageio-bmp-3.8.3.jar" crc="C55924A0" length="69515"/>
                <jar name="protobuf-java-3.25.8.jar" crc="1E02551A" length="1876626"/>
                <jar name="batik-transcoder-1.19.jar" crc="627AB238" length="129356"/>
                <jar name="jetty-websocket-jetty-client-12.0.27.jar" crc="67EFA0A4" length="21587"/>
                <jar name="error_prone_annotations-2.18.0.jar" crc="AAEFE1A3" length="16017"/>
                <jar name="xmlbeans-3.1.0.jar" crc="87DB6FAA" length="2579738"/>
                <jar name="commons-cli-1.7.0.jar" crc="108FF54F" length="72739"/>
                <jar name="jywidgets-3.4.1.jar" crc="4C211D0A" length="494288"/>
                <jar name="common-image-3.8.3.jar" crc="559BE622" length="85550"/>
                <jar name="batik-svg-dom-1.19.jar" crc="41A512FD" length="230611"/>
                <jar name="logback-classic-1.3.14.jar" crc="93789935" length="277829"/>
                <jar name="batik-anim-1.19.jar" crc="A3752A6A" length="486122"/>
                <jar name="launchclient.jar" crc="91736AAA" length="6858818"/>
        </module>
        <module name="com.inductiveautomation.connectors.kafka" build="2026012009">
                <jar name="__683566209__kafka-common-1.3.3.jar" crc="D26BD8A9" length="68322"/>
                <jar name="__683566209__zstd-jni-1.5.6-4.jar" crc="2D90D879" length="6706411"/>
                <jar name="__683566209__snappy-java-1.1.10.5.jar" crc="AF7EF55E" length="2318373"/>
                <jar name="__683566209__kafka-clients-3.9.1.jar" crc="4DE1A8D" length="9215194"/>
                <jar name="__683566209__lz4-java-1.8.0.jar" crc="C1A1BB99" length="695978"/>
        </module>
        <module name="com.inductiveautomation.alarm-notification" build="2026012009">
                <jar name="__2522843272__alarm-notification-client-7.3.3.jar" crc="9C646B74" length="56884"/>
                <jar name="__2522843272__alarm-notification-common-7.3.3.jar" crc="D6528DAD" length="28361"/>
        </module>
        <module name="com.inductiveautomation.webdev" build="2026012009">
                <jar name="__2955099271__webdev-common-6.3.3.jar" crc="B7ED9A0C" length="13906"/>
        </module>
        <module name="com.inductiveautomation.sfc" build="2026012009">
                <jar name="__2028557504__sfc-common-6.3.3.jar" crc="44221239" length="297210"/>
                <jar name="__2028557504__sfc-client-6.3.3.jar" crc="6C889E37" length="146142"/>
        </module>
        <module name="com.inductiveautomation.opcua" build="2026012009">
                <jar name="__1295492569__opc-ua-common-10.3.3.jar" crc="EED6EFAE" length="3839"/>
                <jar name="__1295492569__opc-ua-client-10.3.3.jar" crc="E8EF100B" length="6440"/>
        </module>
        <module name="com.inductiveautomation.eam" build="2026012009">
                <jar name="__1620401577__eam-client-5.3.3.jar" crc="B824296A" length="8960"/>
                <jar name="__1620401577__eam-common-5.3.3.jar" crc="4E9F8DDC" length="34220"/>
        </module>
        <module name="com.inductiveautomation.sqlbridge" build="2026012009">
                <jar name="__1928955139__sql-bridge-common-11.3.3.jar" crc="7C028093" length="139204"/>
        </module>
        <module name="com.inductiveautomation.opcua.drivers.dnp3" build="2026012009">
                <jar name="__645450523__dnp3-client-5.3.3.jar" crc="975A7C47" length="2035"/>
                <jar name="__645450523__dnp3-common-5.3.3.jar" crc="3143F2F5" length="6346"/>
        </module>
        <module name="com.inductiveautomation.historian" build="2026012009">
                <jar name="__2382809821__historian-common-1.3.3.jar" crc="C74E5519" length="698551"/>
                <jar name="__2382809821__historian-client-1.3.3.jar" crc="BA3163C4" length="6326"/>
        </module>
        <module name="com.inductiveautomation.eventstream" build="2026012009">
                <jar name="__3185129061__event-stream-common-1.3.3.jar" crc="20199F82" length="94172"/>
        </module>
        <module name="com.inductiveautomation.vision" build="2026012009">
                <jar name="__2016890685__vision-client-12.3.3.jar" crc="B280D6C0" length="3342482"/>
                <jar name="__2016890685__vision-common-12.3.3.jar" crc="7FCF9D8B" length="19854"/>
        </module>
        <module name="com.inductiveautomation.reporting" build="2026012009">
                <jar name="__1435362133__reporting-client-7.3.3.jar" crc="DD590A77" length="2786587"/>
                <jar name="__1435362133__batik-gvt-1.19.jar" crc="FE2E1A4B" length="192194"/>
                <jar name="__1435362133__icepdf-viewer-6.3.2.jar" crc="9D046453" length="1232244"/>
                <jar name="__1435362133__xmlgraphics-commons-2.11.jar" crc="9EC6AFE4" length="686441"/>
                <jar name="__1435362133__batik-i18n-1.19.jar" crc="B04C8451" length="11541"/>
                <jar name="__1435362133__batik-shared-resources-1.19.jar" crc="40808C65" length="6685"/>
                <jar name="__1435362133__icepdf-core-6.3.2.jar" crc="C56894E2" length="1440836"/>
                <jar name="__1435362133__commons-logging-1.3.0.jar" crc="EE8DCB07" length="70816"/>
                <jar name="__1435362133__commons-io-2.17.0.jar" crc="C3CEF0C8" length="515978"/>
                <jar name="__1435362133__batik-util-1.19.jar" crc="5031ECD1" length="127350"/>
                <jar name="__1435362133__reporting-common-7.3.3.jar" crc="8101162A" length="3739596"/>
                <jar name="__1435362133__batik-constants-1.19.jar" crc="F1EC9B4A" length="8553"/>
                <jar name="__1435362133__batik-awt-util-1.19.jar" crc="F7EDECFD" length="424545"/>
        </module>
        <thirdPartyModules md5="122f84f7d061dde839ca59e39437d2ef"/>
        <connect usessl="false" port="8088"/>
</launch>
Claiming id in /home/iscoadmin/.ignition/cache/gw10.0.20.90_9088...
... obtaining lock
... lock obtained.
... claimed id 0
Calculated necessary downloads:
<?xml version="1.0" encoding="UTF-8"?>
<launch scope="C" framework="7" jreVersion="17.0.17" useCondensedDialogFont="false">
        <module name="" build="2026012009">
        </module>
        <module name="com.inductiveautomation.connectors.kafka" build="2026012009">
        </module>
        <module name="com.inductiveautomation.alarm-notification" build="2026012009">
        </module>
        <module name="com.inductiveautomation.webdev" build="2026012009">
        </module>
        <module name="com.inductiveautomation.sfc" build="2026012009">
        </module>
        <module name="com.inductiveautomation.opcua" build="2026012009">
        </module>
        <module name="com.inductiveautomation.eam" build="2026012009">
        </module>
        <module name="com.inductiveautomation.sqlbridge" build="2026012009">
        </module>
        <module name="com.inductiveautomation.opcua.drivers.dnp3" build="2026012009">
        </module>
        <module name="com.inductiveautomation.historian" build="2026012009">
        </module>
        <module name="com.inductiveautomation.eventstream" build="2026012009">
        </module>
        <module name="com.inductiveautomation.vision" build="2026012009">
        </module>
        <module name="com.inductiveautomation.reporting" build="2026012009">
        </module>
        <thirdPartyModules md5="null"/>
        <connect usessl="false" port="8088"/>
</launch>
Third party Python modules downloaded.
Downloading "http://10.0.20.90:9088/data/gateway/translations"...
Connect successful.
Starting download of 116 bytes
Download successful
Downloading the required Runtime for this gateways' clients.
Connect successful.
Descrambling runtime bytes.
Updated gateway info from target gateway
Existing launchclient.jar can be used.
Releasing Client Cache Lock: 0
Running: nohup /home/iscoadmin/.ignition/cache/resources/runtimes/17.0.17/bin/java -cp /home/iscoadmin/.ignition/cache/launchclient_2D200F2E.jar --add-opens=java.desktop/javax.swing.tree=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf=ALL
-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.synth=ALL-UNNAMED --add-opens=java.desktop/javax
.swing.plaf.basic=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-exports=java.desktop/sun.swing.table=ALL-UNNAMED --add-exports=java.desktop/sun.awt.image=ALL-UNNAMED --add-exports=ja
va.desktop/sun.print=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.swing.plaf.synth=ALL-UNNAMED --add-exports=java.desktop/sun.swing=ALL-UNNAMED --add-exports=java.base/sun.security.action=ALL-UNNAMED
 --add-exports=java.desktop/sun.awt.shell=ALL-UNNAMED -Dia.retarget.token=2D200F2E -Dignition.retarget.token=2D200F2E -Djavaws.sr.runtimeOverride=true -Djavaws.sr.scope=C -Dignition.launchts=1771452860271 -Djavaws.sr.platform.plugins= -Djavaws.
sr.platform.edition= -Dignition.scope=C -Xms64M -Djavaws.sr.memory.init=64M -Dignition.project=Clock -Dignition.memory.init=64M -Dignition.screen=0 -Dignition.plugins= -Djavaws.sr.main=com.inductiveautomation.factorypmi.application.runtime.Clie
ntLaunchHook -Djavaws.sr.gateway.addr.0=http://10.0.20.90:9088 -Dignition.gateway.addr.0=http://10.0.20.90:9088 -Djavaws.sr.launchts=1771452860271 -Dignition.main=com.inductiveautomation.factorypmi.application.runtime.ClientLaunchHook -Djavaws.
sr.screen=0 -Xmx256M -Dignition.edition= -Dignition.memory.max=256M -Djavaws.sr.memory.max=256M -Djavaws.sr.project=Clock com.inductiveautomation.ignition.client.launch.BootstrapSwingFS &
Launched JVM.

Thanks

What errors do you get if you run that command line invocation manually in a (foreground) terminal?

/home/iscoadmin/.ignition/cache/resources/runtimes/17.0.17/bin/java -cp /home/iscoadmin/.ignition/cache/launchclient_2D200F2E.jar --add-opens=java.desktop/javax.swing.tree=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf=ALL
-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.synth=ALL-UNNAMED --add-opens=java.desktop/javax
.swing.plaf.basic=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-exports=java.desktop/sun.swing.table=ALL-UNNAMED --add-exports=java.desktop/sun.awt.image=ALL-UNNAMED --add-exports=ja
va.desktop/sun.print=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.swing.plaf.synth=ALL-UNNAMED --add-exports=java.desktop/sun.swing=ALL-UNNAMED --add-exports=java.base/sun.security.action=ALL-UNNAMED
 --add-exports=java.desktop/sun.awt.shell=ALL-UNNAMED -Dia.retarget.token=2D200F2E -Dignition.retarget.token=2D200F2E -Djavaws.sr.runtimeOverride=true -Djavaws.sr.scope=C -Dignition.launchts=1771452860271 -Djavaws.sr.platform.plugins= -Djavaws.
sr.platform.edition= -Dignition.scope=C -Xms64M -Djavaws.sr.memory.init=64M -Dignition.project=Clock -Dignition.memory.init=64M -Dignition.screen=0 -Dignition.plugins= -Djavaws.sr.main=com.inductiveautomation.factorypmi.application.runtime.Clie
ntLaunchHook -Djavaws.sr.gateway.addr.0=http://10.0.20.90:9088 -Dignition.gateway.addr.0=http://10.0.20.90:9088 -Djavaws.sr.launchts=1771452860271 -Dignition.main=com.inductiveautomation.factorypmi.application.runtime.ClientLaunchHook -Djavaws.
sr.screen=0 -Xmx256M -Dignition.edition= -Dignition.memory.max=256M -Djavaws.sr.memory.max=256M -Djavaws.sr.project=Clock com.inductiveautomation.ignition.client.launch.BootstrapSwingFS

If I use the java in the .ignition folder I get.

bash: /home/iscoadmin/.ignition/cache/resources/runtimes/17.0.17/bin/java: cannot execute binary file: Exec format error

However, if I use the java installed on the system it launches but immediately closes.

Launch again with the system Java. Don't include nohup at the start or & at the end of the command.

1 Like

Im running this command line.

java -cp /home/iscoadmin/.ignition/cache/launchclient_2D200F2E.jar --add-opens=java.desktop/javax.swing.tree=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf=ALL-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.synth=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-exports=java.desktop/sun.swing.table=ALL-UNNAMED --add-exports=java.desktop/sun.awt.image=ALL-UNNAMED --add-exports=java.desktop/sun.print=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.swing.plaf.synth=ALL-UNNAMED --add-exports=java.desktop/sun.swing=ALL-UNNAMED --add-exports=java.base/sun.security.action=ALL-UNNAMED --add-exports=java.desktop/sun.awt.shell=ALL-UNNAMED -Dia.retarget.token=2D200F2E -Dignition.retarget.token=2D200F2E -Djavaws.sr.runtimeOverride=true -Djavaws.sr.scope=C -Dignition.launchts=1771452860271 -Djavaws.sr.platform.plugins= -Djavaws.sr.platform.edition= -Dignition.scope=C -Xms64M -Djavaws.sr.memory.init=64M -Dignition.project=Clock -Dignition.memory.init=64M -Dignition.screen=0 -Dignition.plugins= -Djavaws.sr.main=com.inductiveautomation.factorypmi.application.runtime.ClientLaunchHook -Djavaws.sr.gateway.addr.0=http://10.0.20.90:9088 -Dignition.gateway.addr.0=http://10.0.20.90:9088 -Djavaws.sr.launchts=1771452860271 -Dignition.main=com.inductiveautomation.factorypmi.application.runtime.ClientLaunchHook -Djavaws.sr.screen=0 -Xmx256M -Dignition.edition= -Dignition.memory.max=256M -Djavaws.sr.memory.max=256M -Djavaws.sr.project=Clock com.inductiveautomation.ignition.client.launch.BootstrapSwingF

When it runs, it runs the launchclient, downloads, extracts, and then closes. The output in the terminal is what I put in the screenshot. I am not running the nohup….. & directly. That is just the output I get from the command line above.

What happens if you delete that /home/iscoadmin/.ignition/cache/resources/runtimes directory and launch again?

Same output.

I am running

iscoadmin@ISCO-JB5-BUILD2:~ $ java --version
openjdk 17.0.18 2026-01-20 LTS
OpenJDK Runtime Environment Zulu17.64+17-CA (build 17.0.18+8-LTS)
OpenJDK 64-Bit Server VM Zulu17.64+17-CA (build 17.0.18+8-LTS, mixed mode, sharing)

Just to see the whole thing… My command and then the terminal output is below. I do get the screenshot as well, it just closes instead of running the project. I have tried on a couple of different gateways, different projects, rebuilt my client.

iscoadmin@ISCO-JB5-BUILD2:~ $ java -cp /home/iscoadmin/.ignition/cache/launchclient_2D200F2E.jar --add-opens=java.desktop/javax.swing.tree=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf=ALL-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.synth=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-exports=java.desktop/sun.swing.table=ALL-UNNAMED --add-exports=java.desktop/sun.awt.image=ALL-UNNAMED --add-exports=java.desktop/sun.print=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.swing.plaf.synth=ALL-UNNAMED --add-exports=java.desktop/sun.swing=ALL-UNNAMED --add-exports=java.base/sun.security.action=ALL-UNNAMED --add-exports=java.desktop/sun.awt.shell=ALL-UNNAMED -Dia.retarget.token=2D200F2E -Dignition.retarget.token=2D200F2E -Djavaws.sr.runtimeOverride=true -Djavaws.sr.scope=C -Dignition.launchts=1771452860271 -Djavaws.sr.platform.plugins= -Djavaws.sr.platform.edition= -Dignition.scope=C -Xms64M -Djavaws.sr.memory.init=64M -Dignition.project=Clock -Dignition.memory.init=64M -Dignition.screen=0 -Dignition.plugins= -Djavaws.sr.main=com.inductiveautomation.factorypmi.application.runtime.ClientLaunchHook -Djavaws.sr.gateway.addr.0=http://10.0.20.90:9088 -Dignition.gateway.addr.0=http://10.0.20.90:9088 -Djavaws.sr.launchts=1771452860271 -Dignition.main=com.inductiveautomation.factorypmi.application.runtime.ClientLaunchHook -Djavaws.sr.screen=0 -Xmx256M -Dignition.edition= -Dignition.memory.max=256M -Djavaws.sr.memory.max=256M -Djavaws.sr.project=Clock com.inductiveautomation.ignition.client.launch.BootstrapSwingFS

Initialization performed successfully
JVM-wide ObjectInputFilter set up successfully
Platform serialFilter has 88 pattern(s)
Starting Bootstrap Loader v3.0
Connect Step [attempt 1] connecting to: http://10.0.20.90:9088...
Downloading manifest at http://10.0.20.90:9088/system/launchmf/C?os=linux&arch=aarch64
...connect successful
Successfully downloaded launch manifest:
<?xml version="1.0" encoding="UTF-8"?>
<launch scope="C" framework="7" jreVersion="17.0.17" useCondensedDialogFont="false">
	<module name="" build="2026012009">
		<jar name="jetty-io-12.0.27.jar" crc="C29E307" length="335521"/>
		<jar name="kotlin-stdlib-jdk7-1.9.20.jar" crc="ECC5F52E" length="966"/>
		<jar name="synthetica-addons-3.4.1.jar" crc="677F89ED" length="266776"/>
		<jar name="batik-ext-1.19.jar" crc="7A9979FF" length="10357"/>
		<jar name="timingframework-1.0.jar" crc="7832C4C0" length="102616"/>
		<jar name="bcutil-jdk18on-1.78.1.jar" crc="D7BED591" length="705135"/>
		<jar name="commons-collections4-4.4.jar" crc="6847F0D3" length="751914"/>
		<jar name="common.jar" crc="F9134F1F" length="7205410"/>
		<jar name="client-api-8.3.3.jar" crc="BCC0F25D" length="3095610"/>
		<jar name="failureaccess-1.0.1.jar" crc="1699CE08" length="4617"/>
		<jar name="rsyntaxtextarea-3.3.4.jar" crc="C16D3799" length="1297525"/>
		<jar name="batik-constants-1.19.jar" crc="F1EC9B4A" length="8553"/>
		<jar name="jetty-websocket-jetty-common-12.0.27.jar" crc="9A2EF1A4" length="31511"/>
		<jar name="commons-lang3-3.11.jar" crc="4FD4C07C" length="577742"/>
		<jar name="jxbrowser-swing-8.12.1.jar" crc="E25A1940" length="194615"/>
		<jar name="active-query-builder-8.3.3.jar" crc="94139561" length="2672306"/>
		<jar name="guava-32.0.1-jre.jar" crc="8295BD16" length="3037368"/>
		<jar name="swingx-0.0.3-ia.jar" crc="65E602E1" length="1512564"/>
		<jar name="cron4j-2.2.5.jar" crc="FFAC5F7B" length="36227"/>
		<jar name="kotlin-stdlib-1.9.20.jar" crc="19DA5584" length="1718949"/>
		<jar name="curvesapi-1.06.jar" crc="D1B9BE33" length="111875"/>
		<jar name="imageio-metadata-3.8.3.jar" crc="9B8D2C7D" length="81865"/>
		<jar name="metrics-healthchecks-4.2.25.jar" crc="59ECE4E1" length="23525"/>
		<jar name="poi-4.1.2.jar" crc="FE74921A" length="2915337"/>
		<jar name="jide-components-3.7.14.jar" crc="2FA7D2F1" length="411872"/>
		<jar name="jydocking-3.4.1.jar" crc="5EC6B4CE" length="281641"/>
		<jar name="commons-text-1.10.0.jar" crc="3B85FAEA" length="238400"/>
		<jar name="jgrapht-core-1.4.0.jar" crc="AB8E765E" length="1091677"/>
		<jar name="forms-1.0.7.jar" crc="5E8CB029" length="86828"/>
		<jar name="gson-2.8.9.jar" crc="75439134" length="258075"/>
		<jar name="jetty-websocket-jetty-api-12.0.27.jar" crc="9DCF70F0" length="28931"/>
		<jar name="ia-gson-2.10.1.jar" crc="41B7FC23" length="306440"/>
		<jar name="jsr305-3.0.2.jar" crc="204031EF" length="19936"/>
		<jar name="batik-swing-1.19.jar" crc="4387C9D9" length="191926"/>
		<jar name="kotlinx-coroutines-core-jvm-1.5.2.jar" crc="1FB63442" length="1481065"/>
		<jar name="batik-script-1.19.jar" crc="C167A15E" length="24758"/>
		<jar name="imageio-core-3.8.3.jar" crc="68C6211F" length="92987"/>
		<jar name="kotlin-stdlib-jdk8-1.9.20.jar" crc="B6C1829C" length="972"/>
		<jar name="miglayout-core-11.1.jar" crc="C191716B" length="106832"/>
		<jar name="jSerialComm-2.11.0.jar" crc="D8B74273" length="903271"/>
		<jar name="jytable-3.4.1.jar" crc="AEC20C93" length="168130"/>
		<jar name="miglayout-swing-11.1.jar" crc="CB206AC3" length="23041"/>
		<jar name="batik-bridge-1.19.jar" crc="9583EA66" length="705148"/>
		<jar name="imageio-tiff-3.8.3.jar" crc="FAD0BDDA" length="113412"/>
		<jar name="kotlinx-coroutines-swing-1.5.2.jar" crc="DDF67DE4" length="9331"/>
		<jar name="batik-awt-util-1.19.jar" crc="F7EDECFD" length="424545"/>
		<jar name="jetty-util-12.0.27.jar" crc="FF5D7042" length="695343"/>
		<jar name="commons-math3-3.6.1.jar" crc="5D5A24E1" length="2213560"/>
		<jar name="client-bootstrap-8.3.3.jar" crc="21763B0B" length="3997489"/>
		<jar name="common-io-3.8.3.jar" crc="53A1F0AD" length="89993"/>
		<jar name="java-cup-10k.jar" crc="3FCB2D3D" length="84156"/>
		<jar name="metrics-core-4.2.25.jar" crc="BF68B56E" length="130851"/>
		<jar name="batik-i18n-1.19.jar" crc="B04C8451" length="11541"/>
		<jar name="logback-core-1.3.14.jar" crc="1CFBD738" length="579673"/>
		<jar name="SparseBitSet-1.2.jar" crc="C73970F8" length="24510"/>
		<jar name="jetty-websocket-core-client-12.0.27.jar" crc="BE3D7B5F" length="24642"/>
		<jar name="commons-codec-1.18.0.jar" crc="1A07FA7F" length="373045"/>
		<jar name="log4j-over-slf4j-2.0.12.jar" crc="CB2F60FA" length="26532"/>
		<jar name="synthetica-3.4.2-beta1.jar" crc="4E398ECC" length="621708"/>
		<jar name="commons-logging-1.2.jar" crc="3621FD43" length="61829"/>
		<jar name="security-8.3.3.jar" crc="DEABC743" length="18759"/>
		<jar name="protobuf-java-util-3.25.8.jar" crc="31374E5B" length="73138"/>
		<jar name="jose4j-0.9.6.jar" crc="28D7DDFA" length="299502"/>
		<jar name="batik-css-1.19.jar" crc="3E8FB7A9" length="330795"/>
		<jar name="jython-ia-2.7.3.5.jar" crc="88F66FF4" length="37687735"/>
		<jar name="commons-compress-1.27.1.jar" crc="32D6FE4B" length="1087319"/>
		<jar name="xmlgraphics-commons-2.11.jar" crc="9EC6AFE4" length="686441"/>
		<jar name="jxbrowser-8.12.1.jar" crc="C1234210" length="14205414"/>
		<jar name="bcprov-jdk18on-1.78.1.jar" crc="6A23F166" length="8324412"/>
		<jar name="poi-ooxml-4.1.2.jar" crc="60FDFCC" length="1888231"/>
		<jar name="core-java6-3.2.1.4.jar" crc="B87C35C4" length="543804"/>
		<jar name="jfreechart-min-1.0.0.jar" crc="DC0AEE96" length="1636824"/>
		<jar name="poi-ooxml-schemas-4.1.2.jar" crc="E061E5A" length="7912488"/>
		<jar name="checker-qual-3.33.0.jar" crc="6A175450" length="223979"/>
		<jar name="httpcore-4.4.13.jar" crc="2FCEAFE7" length="328593"/>
		<jar name="httpclient-4.5.13.jar" crc="EC26836C" length="780321"/>
		<jar name="jetty-client-12.0.27.jar" crc="B128C454" length="355146"/>
		<jar name="jide-grids-3.7.14.jar" crc="B01A8885" length="2422892"/>
		<jar name="batik-svggen-1.19.jar" crc="B21617F6" length="227569"/>
		<jar name="batik-util-1.19.jar" crc="5031ECD1" length="127350"/>
		<jar name="jyiconfonts-3.4.1.jar" crc="17C9D3E3" length="1141225"/>
		<jar name="batik-gvt-1.19.jar" crc="FE2E1A4B" length="192194"/>
		<jar name="ignition-laf-3.1.0-beta13.jar" crc="EF05BC26" length="406791"/>
		<jar name="jheaps-0.11.jar" crc="67F79D2" length="133503"/>
		<jar name="jetty-websocket-core-common-12.0.27.jar" crc="A77B4964" length="191727"/>
		<jar name="batik-xml-1.19.jar" crc="FA3EE955" length="33966"/>
		<jar name="imageio-jpeg-3.8.3.jar" crc="609C3CC8" length="92263"/>
		<jar name="jul-to-slf4j-2.0.12.jar" crc="79270A70" length="6350"/>
		<jar name="barcode4j-2.1.jar" crc="B907C79" length="274404"/>
		<jar name="batik-dom-1.19.jar" crc="9E9B97D1" length="184144"/>
		<jar name="common-lang-3.8.3.jar" crc="89DBCA67" length="119561"/>
		<jar name="annotations-13.0.jar" crc="E6DD8E33" length="17536"/>
		<jar name="xml-apis-1.3.04.jar" crc="9F219AB6" length="194354"/>
		<jar name="jide-common-3.7.14.jar" crc="F16C0FCF" length="1709491"/>
		<jar name="listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" crc="F36D4890" length="2199"/>
		<jar name="batik-parser-1.19.jar" crc="BFFC6EED" length="76925"/>
		<jar name="slf4j-api-2.0.12.jar" crc="920B60CF" length="68115"/>
		<jar name="xml-apis-ext-1.3.04.jar" crc="87389C28" length="85686"/>
		<jar name="bcpkix-jdk18on-1.78.1.jar" crc="A449A1D2" length="1125173"/>
		<jar name="jide-plaf-9-0.0.1.jar" crc="83F57046" length="195573"/>
		<jar name="jetty-http-12.0.27.jar" crc="592240F4" length="437870"/>
		<jar name="jetty-alpn-client-12.0.27.jar" crc="3E294887" length="7170"/>
		<jar name="commons-io-2.18.0.jar" crc="3AD689FF" length="538910"/>
		<jar name="imageio-batik-3.8.3.jar" crc="81082F3F" length="22007"/>
		<jar name="j2objc-annotations-2.8.jar" crc="E930F306" length="9301"/>
		<jar name="imageio-bmp-3.8.3.jar" crc="C55924A0" length="69515"/>
		<jar name="protobuf-java-3.25.8.jar" crc="1E02551A" length="1876626"/>
		<jar name="batik-transcoder-1.19.jar" crc="627AB238" length="129356"/>
		<jar name="jetty-websocket-jetty-client-12.0.27.jar" crc="67EFA0A4" length="21587"/>
		<jar name="error_prone_annotations-2.18.0.jar" crc="AAEFE1A3" length="16017"/>
		<jar name="xmlbeans-3.1.0.jar" crc="87DB6FAA" length="2579738"/>
		<jar name="commons-cli-1.7.0.jar" crc="108FF54F" length="72739"/>
		<jar name="jywidgets-3.4.1.jar" crc="4C211D0A" length="494288"/>
		<jar name="common-image-3.8.3.jar" crc="559BE622" length="85550"/>
		<jar name="batik-svg-dom-1.19.jar" crc="41A512FD" length="230611"/>
		<jar name="logback-classic-1.3.14.jar" crc="93789935" length="277829"/>
		<jar name="batik-anim-1.19.jar" crc="A3752A6A" length="486122"/>
		<jar name="launchclient.jar" crc="91736AAA" length="6858818"/>
	</module>
	<module name="com.inductiveautomation.connectors.kafka" build="2026012009">
		<jar name="__683566209__kafka-common-1.3.3.jar" crc="D26BD8A9" length="68322"/>
		<jar name="__683566209__zstd-jni-1.5.6-4.jar" crc="2D90D879" length="6706411"/>
		<jar name="__683566209__snappy-java-1.1.10.5.jar" crc="AF7EF55E" length="2318373"/>
		<jar name="__683566209__kafka-clients-3.9.1.jar" crc="4DE1A8D" length="9215194"/>
		<jar name="__683566209__lz4-java-1.8.0.jar" crc="C1A1BB99" length="695978"/>
	</module>
	<module name="com.inductiveautomation.alarm-notification" build="2026012009">
		<jar name="__2522843272__alarm-notification-client-7.3.3.jar" crc="9C646B74" length="56884"/>
		<jar name="__2522843272__alarm-notification-common-7.3.3.jar" crc="D6528DAD" length="28361"/>
	</module>
	<module name="com.inductiveautomation.webdev" build="2026012009">
		<jar name="__2955099271__webdev-common-6.3.3.jar" crc="B7ED9A0C" length="13906"/>
	</module>
	<module name="com.inductiveautomation.sfc" build="2026012009">
		<jar name="__2028557504__sfc-common-6.3.3.jar" crc="44221239" length="297210"/>
		<jar name="__2028557504__sfc-client-6.3.3.jar" crc="6C889E37" length="146142"/>
	</module>
	<module name="com.inductiveautomation.opcua" build="2026012009">
		<jar name="__1295492569__opc-ua-common-10.3.3.jar" crc="EED6EFAE" length="3839"/>
		<jar name="__1295492569__opc-ua-client-10.3.3.jar" crc="E8EF100B" length="6440"/>
	</module>
	<module name="com.inductiveautomation.eam" build="2026012009">
		<jar name="__1620401577__eam-client-5.3.3.jar" crc="B824296A" length="8960"/>
		<jar name="__1620401577__eam-common-5.3.3.jar" crc="4E9F8DDC" length="34220"/>
	</module>
	<module name="com.inductiveautomation.sqlbridge" build="2026012009">
		<jar name="__1928955139__sql-bridge-common-11.3.3.jar" crc="7C028093" length="139204"/>
	</module>
	<module name="com.inductiveautomation.opcua.drivers.dnp3" build="2026012009">
		<jar name="__645450523__dnp3-client-5.3.3.jar" crc="975A7C47" length="2035"/>
		<jar name="__645450523__dnp3-common-5.3.3.jar" crc="3143F2F5" length="6346"/>
	</module>
	<module name="com.inductiveautomation.historian" build="2026012009">
		<jar name="__2382809821__historian-common-1.3.3.jar" crc="C74E5519" length="698551"/>
		<jar name="__2382809821__historian-client-1.3.3.jar" crc="BA3163C4" length="6326"/>
	</module>
	<module name="com.inductiveautomation.eventstream" build="2026012009">
		<jar name="__3185129061__event-stream-common-1.3.3.jar" crc="20199F82" length="94172"/>
	</module>
	<module name="com.inductiveautomation.vision" build="2026012009">
		<jar name="__2016890685__vision-client-12.3.3.jar" crc="B280D6C0" length="3342482"/>
		<jar name="__2016890685__vision-common-12.3.3.jar" crc="7FCF9D8B" length="19854"/>
	</module>
	<module name="com.inductiveautomation.reporting" build="2026012009">
		<jar name="__1435362133__reporting-client-7.3.3.jar" crc="DD590A77" length="2786587"/>
		<jar name="__1435362133__batik-gvt-1.19.jar" crc="FE2E1A4B" length="192194"/>
		<jar name="__1435362133__icepdf-viewer-6.3.2.jar" crc="9D046453" length="1232244"/>
		<jar name="__1435362133__xmlgraphics-commons-2.11.jar" crc="9EC6AFE4" length="686441"/>
		<jar name="__1435362133__batik-i18n-1.19.jar" crc="B04C8451" length="11541"/>
		<jar name="__1435362133__batik-shared-resources-1.19.jar" crc="40808C65" length="6685"/>
		<jar name="__1435362133__icepdf-core-6.3.2.jar" crc="C56894E2" length="1440836"/>
		<jar name="__1435362133__commons-logging-1.3.0.jar" crc="EE8DCB07" length="70816"/>
		<jar name="__1435362133__commons-io-2.17.0.jar" crc="C3CEF0C8" length="515978"/>
		<jar name="__1435362133__batik-util-1.19.jar" crc="5031ECD1" length="127350"/>
		<jar name="__1435362133__reporting-common-7.3.3.jar" crc="8101162A" length="3739596"/>
		<jar name="__1435362133__batik-constants-1.19.jar" crc="F1EC9B4A" length="8553"/>
		<jar name="__1435362133__batik-awt-util-1.19.jar" crc="F7EDECFD" length="424545"/>
	</module>
	<thirdPartyModules md5="122f84f7d061dde839ca59e39437d2ef"/>
	<connect usessl="false" port="8088"/>
</launch>
Claiming id in /home/iscoadmin/.ignition/cache/gw10.0.20.90_9088...
... obtaining lock
... lock obtained.
... claimed id 0
Calculated necessary downloads:
<?xml version="1.0" encoding="UTF-8"?>
<launch scope="C" framework="7" jreVersion="17.0.17" useCondensedDialogFont="false">
	<module name="" build="2026012009">
	</module>
	<module name="com.inductiveautomation.connectors.kafka" build="2026012009">
	</module>
	<module name="com.inductiveautomation.alarm-notification" build="2026012009">
	</module>
	<module name="com.inductiveautomation.webdev" build="2026012009">
	</module>
	<module name="com.inductiveautomation.sfc" build="2026012009">
	</module>
	<module name="com.inductiveautomation.opcua" build="2026012009">
	</module>
	<module name="com.inductiveautomation.eam" build="2026012009">
	</module>
	<module name="com.inductiveautomation.sqlbridge" build="2026012009">
	</module>
	<module name="com.inductiveautomation.opcua.drivers.dnp3" build="2026012009">
	</module>
	<module name="com.inductiveautomation.historian" build="2026012009">
	</module>
	<module name="com.inductiveautomation.eventstream" build="2026012009">
	</module>
	<module name="com.inductiveautomation.vision" build="2026012009">
	</module>
	<module name="com.inductiveautomation.reporting" build="2026012009">
	</module>
	<thirdPartyModules md5="null"/>
	<connect usessl="false" port="8088"/>
</launch>
Third party Python modules downloaded.
Downloading "http://10.0.20.90:9088/data/gateway/translations"...
Connect successful.
Starting download of 116 bytes
Download successful
Downloading the required Runtime for this gateways' clients.
Connect successful.
Descrambling runtime bytes.
Updated gateway info from target gateway
Existing launchclient.jar can be used.
Releasing Client Cache Lock: 0
Running: nohup /home/iscoadmin/.ignition/cache/resources/runtimes/17.0.17/bin/java -cp /home/iscoadmin/.ignition/cache/launchclient_2949E9EB.jar --add-opens=java.desktop/javax.swing.tree=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf=ALL-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.synth=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-exports=java.desktop/sun.swing.table=ALL-UNNAMED --add-exports=java.desktop/sun.awt.image=ALL-UNNAMED --add-exports=java.desktop/sun.print=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.swing.plaf.synth=ALL-UNNAMED --add-exports=java.desktop/sun.swing=ALL-UNNAMED --add-exports=java.base/sun.security.action=ALL-UNNAMED --add-exports=java.desktop/sun.awt.shell=ALL-UNNAMED -Dignition.retarget.token=2949E9EB -Dia.retarget.token=2949E9EB -Djavaws.sr.runtimeOverride=true -Djavaws.sr.launchts=1771512601578 -Djavaws.sr.scope=C -Djavaws.sr.platform.edition= -Djavaws.sr.platform.plugins= -Dignition.scope=C -Xms64M -Djavaws.sr.memory.init=64M -Dignition.project=Clock -Dignition.memory.init=64M -Dignition.screen=0 -Dignition.plugins= -Djavaws.sr.main=com.inductiveautomation.factorypmi.application.runtime.ClientLaunchHook -Djavaws.sr.gateway.addr.0=http://10.0.20.90:9088 -Dignition.gateway.addr.0=http://10.0.20.90:9088 -Dignition.main=com.inductiveautomation.factorypmi.application.runtime.ClientLaunchHook -Djavaws.sr.screen=0 -Dignition.launchts=1771512601578 -Xmx256M -Dignition.edition= -Dignition.memory.max=256M -Djavaws.sr.memory.max=256M -Djavaws.sr.project=Clock com.inductiveautomation.ignition.client.launch.BootstrapSwingFS &
Launched JVM.
iscoadmin@ISCO-JB5-BUILD2:~ $ 

Yeah, I think it's closing because it's deciding to download the matching runtime from the Gateway and then relaunch using that, and that one isn't compatible with your system for whatever reason:

@jcoffman you know what's going on here?

I'm guessing it's because we don't actually have an aarch64 runtime available, but the launch manifest is requesting one and you're getting the x64 runtime instead.

yeah this shell script is a sort of “do-it-yourself” jump start. it could probably use some updates. however if you have a local version of java which works fine add -Dignition.runtimeOverride=true to the command like so:

java -cp /home/iscoadmin/.ignition/cache/launchclient_2D200F2E.jar \
--add-opens=java.desktop/javax.swing.tree=ALL-UNNAMED \
--add-opens=java.desktop/javax.swing.plaf=ALL-UNNAMED \
--add-opens=java.desktop/java.awt.event=ALL-UNNAMED \
--add-opens=java.desktop/javax.swing=ALL-UNNAMED \
--add-opens=java.base/java.lang=ALL-UNNAMED \
--add-opens=java.desktop/javax.swing.plaf.synth=ALL-UNNAMED \
--add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED \
--add-opens=java.desktop/java.awt=ALL-UNNAMED \
--add-opens=java.base/java.util=ALL-UNNAMED \
--add-exports=java.desktop/sun.swing.table=ALL-UNNAMED \
--add-exports=java.desktop/sun.awt.image=ALL-UNNAMED \
--add-exports=java.desktop/sun.print=ALL-UNNAMED \
--add-exports=java.desktop/sun.awt=ALL-UNNAMED \
--add-exports=java.desktop/sun.swing.plaf.synth=ALL-UNNAMED \
--add-exports=java.desktop/sun.swing=ALL-UNNAMED \
--add-exports=java.base/sun.security.action=ALL-UNNAMED \
--add-exports=java.desktop/sun.awt.shell=ALL-UNNAMED \
-Dia.retarget.token=2D200F2E \
-Dignition.retarget.token=2D200F2E \
-Djavaws.sr.runtimeOverride=true \
-Djavaws.sr.scope=C \
-Dignition.launchts=1771452860271 \
-Djavaws.sr.platform.plugins= \
-Djavaws.sr.platform.edition= \
-Dignition.scope=C \
-Xms64M \
-Djavaws.sr.memory.init=64M \
-Dignition.project=Clock \
-Dignition.memory.init=64M \
-Dignition.screen=0 \
-Dignition.plugins= \
-Djavaws.sr.main=com.inductiveautomation.factorypmi.application.runtime.ClientLaunchHook \
-Djavaws.sr.gateway.addr.0=http://10.0.20.90:9088 \
-Dignition.gateway.addr.0=http://10.0.20.90:9088 \
-Djavaws.sr.launchts=1771452860271 \
-Dignition.main=com.inductiveautomation.factorypmi.application.runtime.ClientLaunchHook \
-Djavaws.sr.screen=0 \
-Xmx256M \
-Dignition.edition= \
-Dignition.memory.max=256M \
-Djavaws.sr.memory.max=256M \
-Djavaws.sr.project=Clock \
-Dignition.runtimeOverride=true \
com.inductiveautomation.ignition.client.launch.BootstrapSwingFS

Ideally, you can just add this directly to your launchclient.sh.
This script was originally designed for old linux x86 systems, not aarch64, we still technically do not have direct support for aarch64 clients directly, but there is a ticket to do this, ill add this thread to the interested parties.

2 Likes