In this case, the Perspective node was missing from the Ignition 8.3 (beta / early access) Designer project browser on a physical host. The same 8.3 build showed Perspective normally inside a VM. The Perspective module on the host gateway was activated and starting in Trial mode. The Designer's embedded Chromium engine (JxBrowser 8.5.0) was crashing on launch. Because the VM worked and the host did not, the fault sits in the workstation environment: security software, process-creation policy, or a corrupted per-user cache. The project and gateway configuration are not the cause.
Work through the checks below in order. Each check names the reading to take, what each result means, and where to go next.
Check 1: Perspective module state and gateway sign-in
Prerequisite: gateway web interface access with an administrator account.
- Sign in to the 8.3 gateway web page before you judge what is missing. In 8.3, an unauthenticated session hides most of the gateway navigation. After an install from the zip package, the gateway looked like it was missing whole sections of its menu until the user signed in. This is a change in behavior from 8.1. Confirm the full navigation appears after login.
- Open the module list on the gateway. Confirm Perspective is installed and running, and that its license state is Activated or Trial.
- Launch the Designer against that gateway. Confirm the console shows
Starting module: Perspective, followed byStarting up Perspective module. Mode: Trial(or the licensed mode).
| Reading | Meaning | Next |
|---|---|---|
| Gateway menus sparse, no login | Unauthenticated 8.3 session | Sign in, then repeat step 2 |
| Perspective faulted or absent on gateway | Gateway-side module problem | Fix the module install before any Designer work |
| Module running; Designer log shows Perspective starting; no Perspective node in project browser | Designer-side embedded browser failure | Check 2 |
Check 2: BrowserEngine error in the Designer console
The Perspective Designer renders and edits views inside an embedded Chromium instance supplied by JxBrowser. If that engine does not initialize, the Perspective workspace never registers. The project browser then shows every other resource type but no Perspective node. The Vision module also uses this engine for its Web Browser component. For that reason, the Vision startup log runs the same JxBrowser binary integrity check as Perspective.
- Launch the Designer as a standard user and open its console.
- Do not stop at the first error shown. In this case the first error was unrelated. Read the full console content that follows it.
- Look for this line:
[Designer-Startup] ERROR WebBrowser -- BrowserEngine was not initialized. Web Browser Component can not start!
| Reading | Meaning | Next |
|---|---|---|
BrowserEngine was not initialized present |
Chromium child process failed to start or crashed | Check 3 for detail |
| No browser engine error, Perspective still missing | Different fault path | Capture the full console anyway and go to Check 10 escalation |
Check 3: JxBrowser DEBUG logging through Designer Launcher JVM arguments
The default console shows only that the engine failed, not why. JxBrowser writes its own startup trace when its log level is raised. How much that trace shows depends on JxBrowser's own logging.
- Close every Designer instance.
- In the Designer Launcher, open the settings for the gateway entry and find the JVM Arguments field.
- Add:
-Dignition.client.jxBrowser.logLevel=DEBUG - Relaunch the Designer. Confirm the console now shows DEBUG lines such as
Acquiring an exclusive lock...,Checking binaries integrity in ...\.ignition\cache\resources\jxbrowser\8.5.0...andUsing WIN64 listing.... - Copy the console as text, not screenshots. You need the full sequence to find the exit lines in Check 4.
If you add more than one argument, separate them with a semicolon on a single line. Putting the second argument on a new line in the JVM Arguments field made the Designer fail to launch with an error dialog. Removing the line break fixed it, and so did removing the first argument.
-Dignition.client.jxBrowser.logLevel=DEBUG;-Dignition.chromium.switch.do-not-de-elevate
Check 4: The Chromium exit sequence in the DEBUG log
In this case, every file under %USERPROFILE%\.ignition\cache\resources\jxbrowser\8.5.0 passed the integrity check. That includes libEGL.dll, libGLESv2.dll, vulkan-1.dll, awt_toolkit64.dll, chrome.dll.sig, resources.pak and the locales packs. The binaries on disk were intact, so the failure happened when the Chromium process was launched or while it was running. It was not a missing-file problem. Scroll past the Checked lines to the end of the JxBrowser block:
DEBUG Closing RPC thread...
DEBUG The connection has been terminated.
DEBUG Closing RPC thread... [OK]
DEBUG Chromium process exit code: -2,147,483,645
DEBUG Stopping server...
DEBUG Stopping server... [OK]
| Log line | Mechanism |
|---|---|
The connection has been terminated |
JxBrowser talks to its Chromium child process over IPC (RPC threads). The child died, so the Java side tears down the channel. |
Stopping server... [OK] |
JxBrowser shuts down its engine host. The Designer then logs BrowserEngine was not initialized. |
A connection that is terminated from outside, followed by a crash exit code, points to something external interfering with the Chromium process. The binaries themselves are fine. Continue to Check 5 to rule out elevation, which is the quickest variable to change.
Check 5: Elevation and the do-not-de-elevate switch
Chromium treats an elevated (administrator) parent process differently from a standard one. When the host application runs elevated, the Chromium launch path can try to start its child processes at a lower integrity level. If a policy or shim interferes with that step, the child dies at startup.
- Confirm how the Designer Launcher was started. Run it as a standard user, not with "Run as administrator". In this case both modes produced the same failure, so leave it running as a standard user.
- Add the de-elevation override next to the DEBUG argument, on one line with a semicolon:
-Dignition.client.jxBrowser.logLevel=DEBUG;-Dignition.chromium.switch.do-not-de-elevate - Relaunch the Designer. Confirm it opens at all. A launch error dialog means a line break is in the field. Then re-read the console for
BrowserEngine was not initializedand the exit code. - Check the user and system environment variables for the Windows compatibility setting
ElevateCreateProcess. A compatibility layer that changes how processes are created can break Chromium's child-process launch. Remove it for the test if it is present, and record whether it was set.
| Reading | Meaning | Next |
|---|---|---|
| Engine starts after the switch | Elevation/de-elevation conflict | Keep the switch; go to Check 10 verification |
| Same exit code, same error (as in this case) | Elevation is not the cause | Check 6 |
Check 6: Antivirus and endpoint security interference
Antivirus is the most common reason the JxBrowser engine crashes. TeamDev's JxBrowser troubleshooting guide for frequently encountered issues lists it first. Endpoint products inject DLLs into new processes and hook process creation. Chromium's sandbox and code-integrity checks react badly to both. A VM that works next to a host that fails usually means the host carries an endpoint agent or policy that the VM does not.
- Prerequisite: coordinate with IT. On managed machines you cannot usually change security policy yourself.
- Ask IT to check the security console for blocks or detections against the Designer's Java process, the Chromium executable under the JxBrowser cache, and anything under
%LOCALAPPDATA%\JxBrowseror%LOCALAPPDATA%\Temp. - Have AV disabled, then relaunch the Designer with DEBUG logging still on. Compare the exit sequence with the previous run.
- If disabling alone does not change the result, ask IT to add exclusions for the Ignition cache and JxBrowser paths and reboot. Many endpoint agents leave their drivers and injected hooks loaded when protection is only switched off. A disabled product can still be inside the Chromium process until the next restart or a full uninstall.
- Ask IT which features beyond signature scanning are active: application control, exploit protection, behavior monitoring. These can block or crash a child process without writing an AV detection event.
In this case, IT first reported no logged block. That alone is not a reason to rule the product out. AV was later identified as a culprit, but the Designer still failed with AV disabled. That combination means a second environmental factor is involved. It can also mean the disabled agent is still resident. Continue to Check 7 with AV still disabled.
Check 7: Purging the Ignition JxBrowser cache
The Designer extracts the JxBrowser runtime into the per-user Ignition cache. If a security product quarantined, locked or partially rewrote files there during an earlier failed launch, the cache can stay damaged even after the product is disabled. Warnings about DLL files in the console are a reason to purge it.
Prerequisites: AV still disabled, every Designer and Designer Launcher window closed, and the local gateway service stopped if the gateway runs on the same machine.
- Open Task Manager. Confirm no Java or Chromium processes from a previous Designer session are still running. End any leftovers.
- From an elevated PowerShell prompt, delete the whole cache directory:
Remove-Item -Recurse -Force "$env:USERPROFILE\.ignition\cache" - Confirm the directory is gone:
The expected result isTest-Path "$env:USERPROFILE\.ignition\cache"False. - If deletion fails with "in use" errors, reboot the workstation first, then repeat step 2 before launching anything Ignition-related. In this case, forced deletion from elevated Command Prompt and PowerShell both failed while a process held the files. Partial deletion is not acceptable. A cache that is left half-deleted keeps the Perspective failure in place.
- Relaunch the Designer. Confirm the console shows a fresh extraction and integrity check under
jxbrowser\8.5.0, then read the exit sequence again.
| Reading | Meaning | Next |
|---|---|---|
Engine starts; no BrowserEngine error |
Cache corruption from earlier interference | Check 10 verification |
| Same crash exit code | Runtime interference, not the cache | Check 8 |
Check 8: JxBrowser-UserData folder in the Temp directory
A healthy JxBrowser startup creates a Chromium profile directory in the user's Temp folder, named with a GUID suffix, for example JxBrowser-UserData-1a76bb6d-0fa8-4b4d-ad3a-63be0cd9674a. The directory appears while the Designer is launching and the engine is starting.
- Launch the Designer and wait for the Perspective module startup line in the console.
- Check for the profile folder:
Get-ChildItem "$env:LOCALAPPDATA\Temp" -Filter "JxBrowser-UserData-*" -Directory - If none exists, create a test folder manually in
%LOCALAPPDATA%\Tempas the same Windows user. The name does not matter. This tests only whether the user has write rights there.
| Reading | Meaning | Next |
|---|---|---|
| Profile folder present | Chromium got far enough to initialize its profile; the crash is later in startup | Check 9 |
| No profile folder; manual folder creation fails | User rights or folder redirection on Temp | Have IT fix Temp permissions, relaunch |
| No profile folder; manual creation succeeds (this case) | The Chromium process dies before it writes its profile, or a policy restricts what the launched child may do | Check 9, then escalate a security/permissions review to IT |
A missing profile folder when the user can write to Temp points to the child process being blocked or crashing very early. Because of the timing, security policy and process-creation restrictions are more likely causes than file permissions.
Check 9: Chromium crash dumps in WinDbg
When the Chromium child crashes, it writes minidumps to:
%LOCALAPPDATA%\JxBrowser\8.5.0\CrashReports
- Copy the newest
.dmpfiles out of that folder, sorted by timestamp to match your last launch. - Open each dump in WinDbg and run:
!analyze -v k lm - Record the faulting symbol, the call stack, and the full loaded-module list.
In this case the analysis reported chrome!CrashForExceptionInNonABICompliantCodeRange. Chromium on 64-bit Windows registers this handler for exceptions raised inside dynamically generated code, such as JIT output. That code has no standard unwind data, so Chromium converts any exception there into an intentional crash. The symbol tells you where Chromium caught the exception, not what caused it. Several different root causes produce the same symbol.
The lm output is the most useful part of the dump. Compare it against a dump or module list from the working VM, if you can collect one. Look for DLLs that do not belong to Windows or JxBrowser, especially security, monitoring, screen-capture or overlay products. A third-party module injected into the Chromium process is the usual explanation when disabling AV does not fix the crash: the agent's hooks are still loaded.
| Dump reading | Next |
|---|---|
| Third-party security or hooking DLL in the module list | Have IT exclude the Designer and JxBrowser paths for that product, or remove it for a test and reboot |
| Only Windows and Chromium modules loaded | Escalate with the package in the next section |
Reinstall path, escalation package, and final Designer verification
Reinstalling Ignition rarely fixes this failure. The engine crash comes from the workstation environment, not the gateway install. If you do reinstall to rule it out, switch installer types: use the zip package if you used the executable, or the reverse. After a zip install, sign in to the gateway before you judge whether pages are missing (Check 1). Uninstalling and reinstalling everything again, after the cache purge and Temp checks have failed, does not add information.
If the crash persists after Checks 5 through 9, collect the following and send it to Inductive Automation support. They can forward JxBrowser-level crashes to TeamDev, the JxBrowser vendor.
- The full Designer console as text from a launch with
-Dignition.client.jxBrowser.logLevel=DEBUG, including theChromium process exit codeline. - The matching dumps from
%LOCALAPPDATA%\JxBrowser\8.5.0\CrashReports, plus your WinDbg!analyze -vandlmoutput. - The exact Ignition 8.3 build, the Windows version and build, the endpoint security products installed (and whether each was disabled or uninstalled during the test), and whether
ElevateCreateProcesswas set. - The fact that the same build works in a VM on the same network, and whether a
JxBrowser-UserData-*folder appears in Temp.
When a branch resolves the crash, verify it in this order:
- Close all Designers. Remove
-Dignition.chromium.switch.do-not-de-elevatefrom the JVM Arguments unless Check 5 proved you need it. Then remove the DEBUG argument so later logs stay readable. - Relaunch the Designer as a standard user. Confirm the console shows
Starting up Perspective moduleand has noBrowserEngine was not initializedline. - Confirm a
JxBrowser-UserData-*folder exists in%LOCALAPPDATA%\Tempwhile the Designer is running, and that no new dump appeared inCrashReports. - Re-enable AV with the agreed exclusions in place, reboot, and repeat steps 2 and 3.
- Open the project and confirm the Perspective node appears in the project browser. Open an existing view and confirm it renders in the workspace editor.
FAQ
Can I get Perspective back in the Ignition 8.3 Designer by running the Designer Launcher as administrator?
No. Running as administrator produced the same JxBrowser failure as running as a standard user, so launch as a standard user. If you want to test elevation specifically, add -Dignition.chromium.switch.do-not-de-elevate to the JVM Arguments on the same line as any other argument, separated by a semicolon.
Does disabling antivirus fix the "BrowserEngine was not initialized" error?
Sometimes, but not always. Many endpoint agents keep their drivers and injected DLLs loaded while protection is only disabled. If the Chromium exit code -2,147,483,645 persists, have IT add exclusions and reboot, purge %USERPROFILE%\.ignition\cache, and check the loaded modules in the crash dumps under %LOCALAPPDATA%\JxBrowser\8.5.0\CrashReports.
Can I delete the .ignition cache folder safely?
Yes. The Designer rebuilds it on the next launch, including the JxBrowser 8.5.0 runtime under resources\jxbrowser. Close all Designers first, stop a local gateway, delete from an elevated prompt, and reboot if files are reported as in use. A partial delete leaves the failure in place.