> ## Documentation Index
> Fetch the complete documentation index at: https://docs.germainux.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshoot Synthetic Scenario

> Fix Selenium-based GermainUX RPA Bot scenarios that fail to run on Windows or Microsoft Edge.

Components
[`RPA Bot Recorder`](https://docs.germainux.com/main/germain-ux-rpa-bot-recorder)

Service
`Automation`

Availability
2014.1 or later

> [card] [Problem](#problem)
>
> Why Windows scenarios fail

> [card] [Solution](#solution)
>
> Registry fixes for desktop

> [card] [Problem](#problem-2)
>
> Other scenario failure causes

> [card] [Solution](#solution-2)
>
> Remedy for the failure

> [!NOTE]
>
> This page describes solutions for common GermainUX synthetic-scenario issues involving Windows desktop sessions and exception handling.

## Scenario Blocked by Windows Security or an Inactive Desktop Session

### Problem

A Selenium-based GermainUX RPA Bot scenario fails to run on Windows or Microsoft Edge because:

| Issue | Detail |
| - | - |
| A **Windows Security** dialog appears. | The Engine does not have access to an interactive desktop. |
| The RDP session is minimized, locked, or disconnected. | Browser interactions requiring a visible desktop cannot be completed. |

### Solution

For scenarios that require an interactive Windows desktop:

* Run the GermainUX Engine in the foreground.
* Maintain an active RDP session to the Windows server.
* Ensure that the Engine account has the permissions required to launch and control the browser.
* Configure Windows so the remote desktop is not suppressed when the RDP client is minimized.

> [!WARNING]
>
> Registry changes should be reviewed and performed by an authorized Windows administrator. Back up the applicable registry keys before making changes.

### Configure the RDP Client Registry

On the Windows machine running the RDP client used to maintain the Engine session, configure the following registry locations.

#### 64-Bit Registry Location

```text theme={null}
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Terminal Server Client
```

Create this DWORD value:

| Name | Type | Value |
| - | - | - |
| `RemoteDesktop_SuppressWhenMinimized` | `DWORD (32-bit)` | `2` |

#### 32-Bit Compatibility Registry Location

```text theme={null}
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Terminal Server Client
```

Create the same DWORD value:

| Name | Type | Value |
| - | - | - |
| `RemoteDesktop_SuppressWhenMinimized` | `DWORD (32-bit)` | `2` |

After applying the changes:

| Step | Action |
| - | - |
| 1 | Close and reopen the RDP client. |
| 2 | Reconnect to the Engine server. |
| 3 | Start the GermainUX Engine in the interactive session. |
| 4 | Run the synthetic scenario manually. |
| 5 | Confirm that Edge and the WebDriver can complete the workflow. |

If a Windows Security dialog still appears, confirm that authentication, browser policies, credential access, and the Engine service account are configured correctly.

## Catch a Scenario Failure

### Problem

Java-style `try/catch` exception handling is not supported in MVEL-based synthetic scenarios.

For example, the following pattern cannot be used reliably in an MVEL scenario:

```text theme={null}
try {
    wait.until(
        ExpectedConditions.elementToBeClickable(
            By.partialLinkText("Find Customer")
        )
    );

    wait.until(
        ExpectedConditions.not(
            ExpectedConditions.presenceOfAllElementsLocatedBy(
                By.className("siebui-busy")
            )
        )
    );
} catch (Exception ex) {
    log.info("The synthetic scenario failed.", ex);
}
```

### Solution

In GermainUX versions that support JavaScript-based Selenium scenarios, implement the scenario in JavaScript when structured exception handling is required.

JavaScript scenarios can use `try/catch` to:

* Capture element lookup or timeout failures.
* Add contextual logging.
* Record a custom failure event.
* Take a screenshot.
* Perform cleanup or recovery.
* Rethrow the error so GermainUX records the scenario as failed.

Use these resources:

| Resource | Link |
| - | - |
| Download the complete JavaScript scenario | please [contact us](https://docs.germainux.com/main/support.md). |
| Read the JavaScript scenario guide | please [contact us](https://docs.germainux.com/main/support.md). |

After converting the scenario:

| Step | Action |
| - | - |
| 1 | Run it manually. |
| 2 | Force a known failure condition. |
| 3 | Confirm that the exception is captured and logged. |
| 4 | Verify that GermainUX reports the scenario as failed. |
| 5 | Confirm that the resulting screenshot, video, and diagnostic data are available. |

## Get Help

> [card] [Contact GermainUX Support](https://docs.germainux.com/main/support.md)
>
> The GermainUX team helps you get up and running faster, empower your team, turn data into actionable insights, and optimize performance to deliver measurable business outcomes.

> [card] Can't find what you need?
>
> Search all GermainUX docs with **Ctrl + K**, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.