V8.3.1 JXBrowserUtil - Failed to extract Chromium binaries

Version: v8.3.1
GUI Module: Vision

We just migrated from v7.9.21 to v8.1.48 to v8.3.1 on our DEV server and then backed that up and restored it to our QAS server and started seeing this error. There is no web browser module installed. I think we used to have it installed at some point, but it is no longer installed on either of these servers. Vision client seems to run fine, but this adds noise to the logs and I am not sure if it will cause other issues at some point.

10:36:19.865 [ProjectDownloader] ERROR designer.JXBrowserUtil -- Failed to start Browser Engine with options
 com.teamdev.jxbrowser.engine.EngineOptions:
  autoplayEnabled: false
  chromiumDir: C:\Users\autbasic\.ignition\cache\resources\jxbrowser\8.12.1
  chromiumSwitches: []
  diskCacheSize: <unknown>
  fileAccessFromFilesAllowed: false
  isGpuDisabled: false
  isIncognitoEnabled:true
  language:en-us
  passwordStore: <unknown>
  remoteDebugginPort: 9222
  renderingMode: OFF_SCREEN
  isSandboxDisabled: false
  secureOriginWhitelist: []
  isTouchMenuEnabled: false
  userAgent: <unknown user agent value>
  userDataDir:C:\Temp\JxBrowser-UserData-d1c1ec44-867b-47e5-a41a-85b973531355
  webSecurityDisabled: false
.
com.teamdev.jxbrowser.engine.ChromiumBinariesDeliveryException: Failed to extract Chromium binaries into C:\Users\autbasic\.ignition\cache\resources\jxbrowser\8.12.1
	at com.teamdev.jxbrowser.internal.OfficialDelivery.deliverTo(OfficialDelivery.java:56)
	at com.teamdev.jxbrowser.engine.ChromiumBinaries.lambda$deliverTo$0(ChromiumBinaries.java:166)
	at com.teamdev.jxbrowser.engine.ChromiumBinaries.trySynchronized(ChromiumBinaries.java:196)
	at com.teamdev.jxbrowser.engine.ChromiumBinaries.deliverTo(ChromiumBinaries.java:156)
	at com.teamdev.jxbrowser.engine.ChromiumBinaries.deliverTo(ChromiumBinaries.java:109)
	at com.teamdev.jxbrowser.engine.internal.EngineImpl.newInstance(EngineImpl.java:153)
	at com.teamdev.jxbrowser.engine.Engine.newInstance(Engine.java:163)
	at com.inductiveautomation.ignition.client.util.JxBrowserUtil.lambda$getOrCreateEngine$2(JxBrowserUtil.java:352)
	at com.inductiveautomation.ignition.client.util.JxBrowserUtil.runResourceLockedAction(JxBrowserUtil.java:567)
	at com.inductiveautomation.ignition.client.util.JxBrowserUtil.getOrCreateEngine(JxBrowserUtil.java:352)
	at com.inductiveautomation.ignition.client.util.JxBrowserUtil.getOrCreateEngine(JxBrowserUtil.java:431)
	at com.inductiveautomation.webbrowser.BrowserInstanceManager.startup(BrowserInstanceManager.java:36)
	at com.inductiveautomation.factorypmi.application.FPMIApp.createApp(FPMIApp.java:336)
	at com.inductiveautomation.factorypmi.application.runtime.ClientPanel.startupApp(ClientPanel.java:893)
	at com.inductiveautomation.factorypmi.application.runtime.ClientPanel.startupAppSafe(ClientPanel.java:844)
	at com.inductiveautomation.factorypmi.application.runtime.ClientPanel.onProjectDownloadFinished(ClientPanel.java:853)
	at com.inductiveautomation.factorypmi.application.runtime.DownloadProjectPane.lambda$new$0(DownloadProjectPane.java:73)
	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.complete(Unknown Source)
	at com.inductiveautomation.factorypmi.application.runtime.DownloadProjectPane$DownloadProject.run(DownloadProjectPane.java:112)
	at com.inductiveautomation.ignition.client.launch.AbstractStepRunner.run(AbstractStepRunner.java:33)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: chromium-win32.7z
	at com.teamdev.jxbrowser.internal.OfficialDelivery.deliverTo(OfficialDelivery.java:54)
	... 23 common frames omitted
10:36:19.865 [ProjectDownloader] ERROR WebBrowser -- BrowserEngine was not initialized. Web Browser Component can not start!
10:36:20.130 [AWT-EventQueue-0] INFO vision.App -- Starting Up...
10:36:26.100 [EDT-Watchdog-1] INFO edt-watchdog -- Non-responsive UI thread detected. Stack saved at 'C:\Users\autbasic\.ignition\cache\gwqaignition.myjmawireless.com_443\C2\NonResponsiveEdt-2025-12-03_103626.json'

The web browser module has been rolled into the Vision module and a separate license is no longer needed. You are seeing the "graceful" fallback that allows Vision to run even on platforms where JxBrowser is unsupported.

Prior to this change, any user that needed Vision on platforms (RPi in particular) where JxBrowser is unsupported would have to entirely exclude the Web Browser module from the gateway. Since this change, the Web Browser component can be used conditionally even when troublesome client platforms are present.

You can simply ignore this client-side-only log message.

1 Like

@pturmel, thanks for the reply.

I am running these vision clients on Windows 10, which I would assume is supported?

X86 or ARM? If the latter, no. IIRC.

If the former, look for AV interference. (Try deleting caches and starting again.)

But:

I believe IA has dropped 32-bit support.

We don't bundle/ship the 32-bit Windows JxBrowser. It's surprising you can even get Windows 10 to report 32 bit - I thought all Windows past 7 was 64-bit only...

It is Windows x86_64. Not sure why it seems to be trying to use a 32-bit version.

I will try deleting the cache as @pturmel mentioned.

Maybe some leftover Windows Compatibility mode settings trying to "help" java.exe?

Consider not using Windows? Cough

Hahaha...not use Windows, that is a good one!
'Fraid that is next to impossible thanks to equipment driver support from vendors :frowning:

I run Windows in VMs for engineering and maintenance tasks. I strongly recommend not using Windows on production systems, including plant floor HMIs. Adherence among my clients is mixed, but growing.

It looks like JxB automatically attempts to extract both win32 and win64 libs, not really sure why.

Potentially, you could try adding a system property to the Vision client launcher;
I think the syntax would be -Dignition.chromium.switch.jxbrowser.chromium.binaries.verification.disabled

Like this, but a different switch: