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

**URL:** <https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228>\
**Category:** Ignition\
**Tags:** vision\
**Created:** [July 8, 2025, 2:05pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228 "2025-07-08T14:05:46Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![Safiullah\_Azimi](https://avatars.discourse-cdn.com/v4/letter/s/c6cbf5/32.png) [@Safiullah\_Azimi](https://forum.inductiveautomation.com/u/Safiullah_Azimi)\
**Post date:** [July 8, 2025, 2:05pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/1 "2025-07-08T14:05:46Z")

</div>

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:

```python
./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:

```python
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)

```

 ![Screenshot from 2025-07-08 15-08-56](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/8/4831ef6a2ce784a4af05e089c5683fa82796759a.png)  
###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!

---

<div class="post-metadata">

**Author:** ![kcollins](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kcollins/32/19646_2.png) [@kcollins](https://forum.inductiveautomation.com/u/kcollins)\
**Post date:** [July 8, 2025, 2:34pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/2 "2025-07-08T14:34:10Z")

</div>

> ```python
> ...
> 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`)

---

<div class="post-metadata">

**Author:** ![Safiullah\_Azimi](https://avatars.discourse-cdn.com/v4/letter/s/c6cbf5/32.png) [@Safiullah\_Azimi](https://forum.inductiveautomation.com/u/Safiullah_Azimi)\
**Post date:** [July 8, 2025, 2:44pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/3 "2025-07-08T14:44:45Z")

</div>

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`:

```python
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):

```python
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

```

---

<div class="post-metadata">

**Author:** ![kcollins](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kcollins/32/19646_2.png) [@kcollins](https://forum.inductiveautomation.com/u/kcollins)\
**Post date:** [July 8, 2025, 2:49pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/4 "2025-07-08T14:49:13Z")

</div>

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:

```python
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:

```python
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)

```

---

<div class="post-metadata">

**Author:** ![Safiullah\_Azimi](https://avatars.discourse-cdn.com/v4/letter/s/c6cbf5/32.png) [@Safiullah\_Azimi](https://forum.inductiveautomation.com/u/Safiullah_Azimi)\
**Post date:** [July 8, 2025, 3:18pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/5 "2025-07-08T15:18:12Z")

</div>

Thanks again for the follow-up.

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

```python
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:

```python
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`:

```python
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!

---

<div class="post-metadata">

**Author:** ![kcollins](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kcollins/32/19646_2.png) [@kcollins](https://forum.inductiveautomation.com/u/kcollins)\
**Post date:** [July 8, 2025, 6:28pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/6 "2025-07-08T18:28:26Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![james.ledbetter](https://avatars.discourse-cdn.com/v4/letter/j/45deac/32.png) [@james.ledbetter](https://forum.inductiveautomation.com/u/james.ledbetter)\
**Post date:** [January 8, 2026, 4:37pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/7 "2026-01-08T16:37:14Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![james.ledbetter](https://avatars.discourse-cdn.com/v4/letter/j/45deac/32.png) [@james.ledbetter](https://forum.inductiveautomation.com/u/james.ledbetter)\
**Post date:** [February 18, 2026, 10:19pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/8 "2026-02-18T22:19:19Z")

</div>

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

```python
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

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [February 18, 2026, 10:59pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/9 "2026-02-18T22:59:19Z")

</div>

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

```python
/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

```

---

<div class="post-metadata">

**Author:** ![james.ledbetter](https://avatars.discourse-cdn.com/v4/letter/j/45deac/32.png) [@james.ledbetter](https://forum.inductiveautomation.com/u/james.ledbetter)\
**Post date:** [February 19, 2026, 2:30pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/10 "2026-02-19T14:30:11Z")

</div>

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

```python
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.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/0/400b3dc9f097eed799679c7e1827b58e2970e539.png)

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 19, 2026, 2:31pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/11 "2026-02-19T14:31:31Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![james.ledbetter](https://avatars.discourse-cdn.com/v4/letter/j/45deac/32.png) [@james.ledbetter](https://forum.inductiveautomation.com/u/james.ledbetter)\
**Post date:** [February 19, 2026, 2:38pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/12 "2026-02-19T14:38:37Z")

</div>

Im running this command line.

```python
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.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 19, 2026, 2:49pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/13 "2026-02-19T14:49:18Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![james.ledbetter](https://avatars.discourse-cdn.com/v4/letter/j/45deac/32.png) [@james.ledbetter](https://forum.inductiveautomation.com/u/james.ledbetter)\
**Post date:** [February 19, 2026, 2:54pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/14 "2026-02-19T14:54:37Z")

</div>

Same output.

I am running

```python
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.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/9/b/9b5d159f4ef7586087cc4138f4ce4c86630b70e1.png)

```python
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:~ $ 

```

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 19, 2026, 3:01pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/15 "2026-02-19T15:01:08Z")

</div>

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:

> [@james.ledbetter](#):
>
> If I use the java in the .ignition folder I get.
> 
> ```python
> bash: /home/iscoadmin/.ignition/cache/resources/runtimes/17.0.17/bin/java: cannot execute binary file: Exec format error
> 
> ```

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

---

<div class="post-metadata">

**Author:** ![jcoffman](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jcoffman/32/6429_2.png) [@jcoffman](https://forum.inductiveautomation.com/u/jcoffman)\
**Post date:** [February 19, 2026, 3:15pm UTC](https://forum.inductiveautomation.com/t/feature-15531-vision-client-on-raspberry-pi-400-bad-request-from-legacyclient-sh/108228/16 "2026-02-19T15:15:50Z")

</div>

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:

```python
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.
