# Interactive Action (Webhook) crashes Player — NullReferenceException in GetActions() before action-type dispatch — CMS 4.4.4 / Windows Player 4 R407.2

**URL:** https://community.xibo.org.uk/t/interactive-action-webhook-crashes-player-nullreferenceexception-in-getactions-before-action-type-dispatch-cms-4-4-4-windows-player-4-r407-2/38159
**Category:** Xibo Player for Windows
**Created:** [June 28, 2026, 11:26pm UTC](https://community.xibo.org.uk/t/interactive-action-webhook-crashes-player-nullreferenceexception-in-getactions-before-action-type-dispatch-cms-4-4-4-windows-player-4-r407-2/38159 "2026-06-28T23:26:13Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![maa2026](https://community.xibo.org.uk/letter_avatar_proxy/v4/letter/m/4bbf92/32.png) [@maa2026](https://community.xibo.org.uk/u/maa2026)
#### Post date: [June 28, 2026, 11:26pm UTC](https://community.xibo.org.uk/t/interactive-action-webhook-crashes-player-nullreferenceexception-in-getactions-before-action-type-dispatch-cms-4-4-4-windows-player-4-r407-2/38159/1 "2026-06-28T23:26:13Z")

</div>

# Interactive Action (Webhook) crashes Player — `NullReferenceException` in `GetActions()` before action-type dispatch — CMS 4.4.4 / Windows Player 4 R407.2

## Environment

- **CMS:** 4.4.4

- **Windows Player:** 4 R407.2

- **Display:** single Windows mini-PC, EmbeddedServer bound to `[::1]:9696` (IPv6 localhost only, verified via netstat)

## Summary

Any Interactive Action triggered via Webhook causes the Player to accept the connection, then close it without writing an HTTP response. No layout change occurs. The same `NullReferenceException` appears regardless of action type, which indicates the failure happens _before_ the action type is evaluated.

## Steps to reproduce (minimal case, no external hardware)

1. Create a Layout `WEIN_SPLASH` (Code Identifier `SPLASH`), single text widget.

2. Create a second Layout `WEIN_SLOT1` (Code Identifier `WSLOT1`), single text widget.

3. On `WEIN_SPLASH`, add one Interactive Action: type **Navigate to Layout** , trigger type **Webhook** , trigger code `SLOT1`, target via Layout Code `WSLOT1`.

4. Schedule `WEIN_SPLASH` to the display; confirm it is playing.

5. From the player machine itself, fire the webhook directly with curl — no scripts, no NFC hardware involved:

## Observed result

- `netstat` confirms the EmbeddedServer is listening:

- curl output: connection established, `Request completely sent off`, then:

- The player writes no HTTP response and performs no layout change.

- Reproduced **identically** with action type **Navigate to Widget** as well as **Navigate to Layout** — i.e. the action type does not matter.

- Reduced to a single layout, single widget, single action — crash still occurs, so it is unrelated to layout complexity or action count.

- The same behaviour occurs whether triggered by Webhook or by a Touch/Click action (same code path).

- Display status screen shows a watchdog loop alternating between “Too many active processes” and “No active processes” around the trigger.

## Crash detail

The underlying exception is a `NullReferenceException` in `MainWindow.GetActions()`, called from `HandleActionTrigger()`.

> **TODO before posting:** paste the verbatim stack trace here as a code block if available — an exact trace is far more convincing to maintainers than a description.

```auto
<verbatim stack trace here>

```

## Hypothesis

_(Marked explicitly as a hypothesis — no access to the player source.)_

Because the failure is identical across action types and occurs before any type-specific handling, it appears `GetActions()` collects all active actions before dispatch, and a null result (e.g. from `_schedule.GetActions()`) is iterated without a null check. A likely contributing factor: external triggers arriving while a schedule reload or layout transition is still settling.

If correct, two defensive measures would likely resolve it:

- **(a)** a null check before iterating (return an empty collection rather than throwing), and

- **(b)** a guard preventing `HandleActionTrigger()` from running while the schedule is mid-refresh.

This would not require touching the action-type dispatch logic.

## Additional note

A community thread from 2024 appears to report the identical stack trace, suggesting this has been present for a considerable time. (Link omitted here; can provide on request.)

## Impact

This blocks **all** Interactive Action workflows on this player, regardless of action type. Happy to test a patched build, provide full Audit-level player logs, or supply the minimal repro layout export.

---

<div class="post-metadata">

### Author: ![dan](https://community.xibo.org.uk/user_avatar/community.xibo.org.uk/dan/32/9115_2.png) [@dan](https://community.xibo.org.uk/u/dan)
#### Post date: [July 24, 2026, 7:50am UTC](https://community.xibo.org.uk/t/interactive-action-webhook-crashes-player-nullreferenceexception-in-getactions-before-action-type-dispatch-cms-4-4-4-windows-player-4-r407-2/38159/2 "2026-07-24T07:50:33Z")

</div>

Can you try the previous player release to see if you still experience an issue? We will also investigate.

EDIT: I think its unlikely to be a regression:

> <https://github.com/xibosignage/xibo-dotnetclient/issues/387>
>
> This looks to be a threading problem - the trigger is actioned on a background t…hread, and the UI changes the list of active actions during a layout change on the UI thread.
> 
> This means the list of actions can be null, which causes the request to fail.
> 
> OP: https://community.xibo.org.uk/t/interactive-action-webhook-crashes-player-nullreferenceexception-in-getactions-before-action-type-dispatch-cms-4-4-4-windows-player-4-r407-2/38159/2

---

<div class="post-metadata">

### Author: ![maa2026](https://community.xibo.org.uk/letter_avatar_proxy/v4/letter/m/4bbf92/32.png) [@maa2026](https://community.xibo.org.uk/u/maa2026)
#### Post date: [July 25, 2026, 7:27pm UTC](https://community.xibo.org.uk/t/interactive-action-webhook-crashes-player-nullreferenceexception-in-getactions-before-action-type-dispatch-cms-4-4-4-windows-player-4-r407-2/38159/3 "2026-07-25T19:27:39Z")

</div>

Hi Dan,

thanks for your quick reply. I really appreciate it.

As part of our error testing, we installed the R406 player version on a Windows 10 computer. The error was the same like described.

---

<div class="post-metadata">

### Author: ![maa2026](https://community.xibo.org.uk/letter_avatar_proxy/v4/letter/m/4bbf92/32.png) [@maa2026](https://community.xibo.org.uk/u/maa2026)
#### Post date: [August 2, 2026, 10:54am UTC](https://community.xibo.org.uk/t/interactive-action-webhook-crashes-player-nullreferenceexception-in-getactions-before-action-type-dispatch-cms-4-4-4-windows-player-4-r407-2/38159/4 "2026-08-02T10:54:24Z")

</div>

Hi Dan,

is there any news yet on our case?

I’d appreciate your feedback on this.

Best regards from Monschau/Germany  
Werner

---

<div class="post-metadata">

### Author: ![lanecabral](https://community.xibo.org.uk/letter_avatar_proxy/v4/letter/l/b9e5f3/32.png) [@lanecabral](https://community.xibo.org.uk/u/lanecabral)
#### Post date: [September 15, 2026, 10:23am UTC](https://community.xibo.org.uk/t/interactive-action-webhook-crashes-player-nullreferenceexception-in-getactions-before-action-type-dispatch-cms-4-4-4-windows-player-4-r407-2/38159/6 "2026-09-15T10:23:36Z")

</div>

The NullReferenceException in GetActions() likely needs a null guard during schedule reloads. As a temporary fix, check for null before iterating. For dependable webhook-triggered notifications, I personally use [ultramsg](https://ultramsg.com) for its stable API and straightforward integration with no per-message costs. It handles automation smoothly without crashes.

---

<div class="post-metadata">

### Author: ![OperationJosef](https://community.xibo.org.uk/user_avatar/community.xibo.org.uk/operationjosef/32/19753_2.png) [@OperationJosef](https://community.xibo.org.uk/u/OperationJosef)
#### Post date: [September 21, 2026, 11:02am UTC](https://community.xibo.org.uk/t/interactive-action-webhook-crashes-player-nullreferenceexception-in-getactions-before-action-type-dispatch-cms-4-4-4-windows-player-4-r407-2/38159/7 "2026-09-21T11:02:44Z")

</div>

Hi, I can confirm a similar issue with CMS 4.5.2 and Windows Player 4 R407.2.

My use case is purely Touch/Click, no webhook.

Environment:

- CMS: 4.5.2
- Windows Player: 4 R407.2
- Windows 11 Pro 25H2
- Physical touchscreen and USB mouse tested

I reproduced the problem with multiple minimal configurations:

- Button / Interactive Zone → Navigate to Layout
- Button → Navigate to Widget
- Target Interactive Zone with dynamically created Website widget

In all cases the buttons are visible on the Windows Player, but neither physical touch nor a USB mouse click triggers the configured action.

The layouts and actions are published and downloaded by the player. Website widgets themselves work correctly, including Home Assistant and Grafana using “Open Natively”.

I also tested the interaction in a dedicated single-layout setup with no dependency on Default Layout navigation. The result is the same.

This appears consistent with the reported `HandleActionTrigger()` / `GetActions()` issue affecting Touch/Click actions in R407.2.

I’m happy to provide player logs or test a patched build if useful.
