Help with identifying cause and fix for crashing

4K 60 Hz TVs, Intel N100, 16 GB RAM, 512 GB NVMe, latest Windows Player, latest GPU driver, Windows 11 24H2, Windows 4 R404.1-404, CMS 4.2.2 Docker.

I have a display group with four displays. When I schedule a layout with a single 20‑second 1080p 60 fps video to individual displays, it seems stable. However, it appears that when I schedule the same layout to the display group, it becomes unstable almost immediately.

Any ideas?

Audit: <logdate>2025-05-06 13:44:26</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - Run</method><message>Schedule Timer Ticked</message>
Audit: <logdate>2025-05-06 13:44:26</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - LoadNewSchedule</method><message>Skipping validity test for current layout.</message>
Audit: <logdate>2025-05-06 13:44:26</logdate><thread></thread><method>Media - SignalElapsedEvent</method><message>Media Complete</message>
Audit: <logdate>2025-05-06 13:44:26</logdate><thread></thread><method>Region</method><message>DurationElapsedEvent: Media Elapsed: 546.png</message>
Audit: <logdate>2025-05-06 13:44:26</logdate><thread></thread><method>Region</method><message>MediaExpiredEvent: Media Elapsed</message>
Audit: <logdate>2025-05-06 13:44:26</logdate><thread></thread><method>Region</method><message>SetNextMediaNodeInOptions: Region 1744 Expired</message>
Audit: <logdate>2025-05-06 13:44:26</logdate><thread></thread><method>Layout</method><message>DurationElapsedEvent: Region Elapsed</message>
Audit: <logdate>2025-05-06 13:44:26</logdate><thread></thread><method>Region</method><message>DurationElapsedEvent: All Regions have expired. Raising a Next layout event.</message>
Audit: <logdate>2025-05-06 13:44:26</logdate><thread></thread><method>MainForm</method><message>ScheduleChangeEvent: Schedule Changing to Schedule 365, Layout 1188</message>
Audit: <logdate>2025-05-06 13:44:26</logdate><thread></thread><method>Region</method><message>StopMedia: 2177 stopping, region stopped True</message>
Audit: <logdate>2025-05-06 13:44:26</logdate><thread></thread><method>Region</method><message>Media_MediaStoppedEvent: 2177</message>
Audit: <logdate>2025-05-06 13:44:26</logdate><thread></thread><method>Region</method><message>SetNextMediaNode: New media detected global</message>
Audit: <logdate>2025-05-06 13:44:26</logdate><thread></thread><method>Region - CreateNextMediaNode</method><message>Creating new media: global, 2135</message>
Audit: <logdate>2025-05-06 13:44:26</logdate><thread></thread><method>Region</method><message>StartMedia: Starting media at position: 0</message>
Error: <logdate>2025-05-06 13:44:30</logdate><thread></thread><method>XiboRequestHandler</method><message>OnRenderProcessTerminate: a cef sub process has terminated. OutOfMemory, message: Out of Memory</message>
Audit: <logdate>2025-05-06 13:44:36</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - Run</method><message>Schedule Timer Ticked</message>
Audit: <logdate>2025-05-06 13:44:36</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - LoadNewSchedule</method><message>Skipping validity test for current layout.</message>
Audit: <logdate>2025-05-06 13:44:46</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - Run</method><message>Schedule Timer Ticked</message>
Audit: <logdate>2025-05-06 13:44:46</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - LoadNewSchedule</method><message>Skipping validity test for current layout.</message>
Audit: <logdate>2025-05-06 13:44:46</logdate><thread>XmrSubscriber</thread><method>XmrSubscriber - Run</method><message>Connected (tcp://signage.comapny.com:9505), last activity: 5/6/2025 1:44:46 PM</message>
Audit: <logdate>2025-05-06 13:44:56</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - Run</method><message>Schedule Timer Ticked</message>
Audit: <logdate>2025-05-06 13:44:56</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - LoadNewSchedule</method><message>Skipping validity test for current layout.</message>
Audit: <logdate>2025-05-06 13:44:56</logdate><thread></thread><method>Media - SignalElapsedEvent</method><message>Media Complete</message>
Audit: <logdate>2025-05-06 13:44:56</logdate><thread></thread><method>Region</method><message>DurationElapsedEvent: Media Elapsed: </message>
Audit: <logdate>2025-05-06 13:44:56</logdate><thread></thread><method>Region</method><message>MediaExpiredEvent: Media Elapsed</message>
Audit: <logdate>2025-05-06 13:44:56</logdate><thread></thread><method>Region</method><message>SetNextMediaNodeInOptions: Region 1729 Expired</message>
Audit: <logdate>2025-05-06 13:44:56</logdate><thread></thread><method>Layout</method><message>DurationElapsedEvent: Region Elapsed</message>
Audit: <logdate>2025-05-06 13:44:56</logdate><thread></thread><method>Region</method><message>DurationElapsedEvent: All Regions have expired. Raising a Next layout event.</message>
Audit: <logdate>2025-05-06 13:44:56</logdate><thread></thread><method>MainForm</method><message>ScheduleChangeEvent: Schedule Changing to Schedule 303, Layout 1027</message>
Audit: <logdate>2025-05-06 13:44:56</logdate><thread></thread><method>Region</method><message>StopMedia: 2135 stopping, region stopped True</message>
Audit: <logdate>2025-05-06 13:44:56</logdate><thread></thread><method>Region</method><message>Media_MediaStoppedEvent: 2135</message>
Audit: <logdate>2025-05-06 13:44:56</logdate><thread></thread><method>Region</method><message>SetNextMediaNode: New media detected global</message>
Audit: <logdate>2025-05-06 13:44:56</logdate><thread></thread><method>Region - CreateNextMediaNode</method><message>Creating new media: global, 1962</message>
Audit: <logdate>2025-05-06 13:44:56</logdate><thread></thread><method>Region</method><message>StartMedia: Starting media at position: 0</message>
Audit: <logdate>2025-05-06 13:45:06</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - Run</method><message>Schedule Timer Ticked</message>
Audit: <logdate>2025-05-06 13:45:06</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - LoadNewSchedule</method><message>Skipping validity test for current layout.</message>
Audit: <logdate>2025-05-06 13:45:16</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - Run</method><message>Schedule Timer Ticked</message>
Audit: <logdate>2025-05-06 13:45:16</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - LoadNewSchedule</method><message>Skipping validity test for current layout.</message>
Audit: <logdate>2025-05-06 13:45:16</logdate><thread>XmrSubscriber</thread><method>XmrSubscriber - Run</method><message>Connected (tcp://signage.comapny.com:9505), last activity: 5/6/2025 1:45:16 PM</message>
Audit: <logdate>2025-05-06 13:45:26</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - Run</method><message>Schedule Timer Ticked</message>
Audit: <logdate>2025-05-06 13:45:26</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - LoadNewSchedule</method><message>Skipping validity test for current layout.</message>
Audit: <logdate>2025-05-06 13:45:26</logdate><thread></thread><method>Media - SignalElapsedEvent</method><message>Media Complete</message>
Audit: <logdate>2025-05-06 13:45:26</logdate><thread></thread><method>Region</method><message>DurationElapsedEvent: Media Elapsed: </message>
Audit: <logdate>2025-05-06 13:45:26</logdate><thread></thread><method>Region</method><message>MediaExpiredEvent: Media Elapsed</message>
Audit: <logdate>2025-05-06 13:45:26</logdate><thread></thread><method>Region</method><message>SetNextMediaNodeInOptions: Region 1546 Expired</message>
Audit: <logdate>2025-05-06 13:45:26</logdate><thread></thread><method>Layout</method><message>DurationElapsedEvent: Region Elapsed</message>
Audit: <logdate>2025-05-06 13:45:26</logdate><thread></thread><method>Region</method><message>DurationElapsedEvent: All Regions have expired. Raising a Next layout event.</message>
Audit: <logdate>2025-05-06 13:45:26</logdate><thread></thread><method>MainForm</method><message>ScheduleChangeEvent: Schedule Changing to Schedule 310, Layout 1047</message>
Audit: <logdate>2025-05-06 13:45:26</logdate><thread></thread><method>Region</method><message>StopMedia: 1962 stopping, region stopped True</message>
Audit: <logdate>2025-05-06 13:45:26</logdate><thread></thread><method>Region</method><message>Media_MediaStoppedEvent: 1962</message>
Audit: <logdate>2025-05-06 13:45:26</logdate><thread></thread><method>Region</method><message>SetNextMediaNode: New media detected global</message>
Audit: <logdate>2025-05-06 13:45:26</logdate><thread></thread><method>Region - CreateNextMediaNode</method><message>Creating new media: global, 1981</message>
Audit: <logdate>2025-05-06 13:45:26</logdate><thread></thread><method>Region</method><message>StartMedia: Starting media at position: 0</message>
Error: <logdate>2025-05-06 13:45:27</logdate><thread></thread><method>Main</method><message>Unhandled Exception: UnhandledException: UCEERR_RENDERTHREADFAILURE (Exception from HRESULT: 0x88980406)</message>
Error: <logdate>2025-05-06 13:45:27</logdate><thread></thread><method>Main</method><message>Stack Trace:    at System.Windows.Media.Composition.DUCE.Channel.SyncFlush()
   at System.Windows.Interop.HwndTarget.UpdateWindowSettings(Boolean enableRenderTarget, Nullable1 channelSet)
   at System.Windows.Interop.HwndTarget.UpdateWindowPos(IntPtr lParam)
   at System.Windows.Interop.HwndTarget.HandleMessage(WindowMessage msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp; handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp; handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)</message>
Info: <logdate>2025-05-06 13:45:27</logdate><thread></thread><method>Main</method><message>Couldn&apos;t write to event log: The source was not found, but some or all event logs could not be searched.  Inaccessible logs: Security.</message>
Info: <logdate>2025-05-06 13:46:12</logdate><thread></thread><method>MainForm</method><message>Player Initialised</message>
Audit: <logdate>2025-05-06 13:46:13</logdate><thread></thread><method>MainForm</method><message>SetMainWindowSize: window set to 0,0-3840x2160</message>
XMDS Location: http://signage.comapny.com/xmds.php?v=7
Info: <logdate>2025-05-06 13:46:14</logdate><thread>RegisterAgentThread</thread><method>RegisterAgent - Run</method><message>Thread Started</message>
Info: <logdate>2025-05-06 13:46:14</logdate><thread>RegisterAgentThread</thread><method>RegisterAgent - Run</method><message>Thread Woken and Lock Obtained</message>
Info: <logdate>2025-05-06 13:46:14</logdate><thread>LibraryAgent</thread><method>LibraryAgent - Run</method><message>Thread Started</message>
Info: <logdate>2025-05-06 13:46:14</logdate><thread>RequiredFilesAgentThread</thread><method>RequiredFilesAgent - Run</method><message>Thread Started</message>
Audit: <logdate>2025-05-06 13:46:14</logdate><thread>RequiredFilesAgentThread</thread><method>ScheduleAgent - Run</method><message>Thread Woken and Lock Obtained</message>
Info: <logdate>2025-05-06 13:46:14</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - Run</method><message>Thread Started</message>
Info: <logdate>2025-05-06 13:46:14</logdate><thread>DataAgent</thread><method>DataAgent</method><message>Run: Thread Started</message>
Audit: <logdate>2025-05-06 13:46:14</logdate><thread>ScheduleManagerThread</thread><method>ScheduleManager - Run</method><message>Schedule Timer Ticked</message>
Info: <logdate>2025-05-06 13:46:14</logdate><thread>LogAgent</thread><method>LogAgent - Run</method><message>Thread Started</message>
Audit: <logdate>2025-05-06 13:46:14</logdate><thread>LogAgent</thread><method>RegisterAgent - Run</method><message>Thread Woken and Lock Obtained</message>
Info: <logdate>2025-05-06 13:46:14</logdate><thread></thread><method>ScheduleManager</method><message>Watcher_StatusChanged: Working on location fix</message>
Info: <logdate>2025-05-06 13:46:14</logdate><thread>FaultsAgent</thread><method>FaultsAgent - Run</method><message>Thread Started</message>
Info: <logdate>2025-05-06 13:46:14</logdate><thread>StatAgentThread</thread><method>StatAgent</method><message>Run: Thread Started</message>
Audit: <logdate>2025-05-06 13:46:14</logdate><thread>LibraryAgent</thread><method>LibraryAgent - Run</method><message>Number of required files = 68</message>
Audit: <logdate>2025-05-06 13:46:14</logdate><thread>ScheduleManagerThread</thread><method>MainForm</method><message>ScheduleChangeEvent: Schedule Changing to Schedule 5, Layout 805</message>
Info: <logdate>2025-05-06 13:46:14</logdate><thread>XmrSubscriber</thread><method>XmrSubscriber - Run</method><message>Thread Started</message>
Info: <logdate>2025-05-06 13:46:14</logdate><thread></thread><method>ScheduleManager</method><message>Watcher_StatusChanged: No data</message>
Audit: <logdate>2025-05-06 13:46:14</logdate><thread></thread><method>Region</method><message>SetNextMediaNode: New media detected image</message>
Audit: <logdate>2025-05-06 13:46:14</logdate><thread></thread><method>Region - CreateNextMediaNode</method><message>Creating new media: image, 1724</message>
Audit: <logdate>2025-05-06 13:46:14</logdate><thread></thread><method>Region</method><message>StartMedia: Starting media at position: 0</message>
Info: <logdate>2025-05-06 13:46:14</logdate><thread>RegisterAgentThread</thread><method>PopulateFromXml</method><message>Unable to write [Item].</message>
Audit: <logdate>2025-05-06 13:46:15</logdate><thread>RequiredFilesAgentThread</thread><method>ScheduleManager - GetScheduleXmlString</method><message>Getting the Schedule XML</message>

It seems to only be happening when scheduled to a display group with multiple displays. A display group with one display is stable.

Error: <logdate>2025-05-08 14:36:12</logdate><thread></thread><method>Main</method><message>Unhandled Exception: Startup: Insufficient memory to continue the execution of the program.</message>
Error: <logdate>2025-05-08 14:36:12</logdate><thread></thread><method>Main</method><message>Stack Trace:    at System.Windows.Media.Imaging.WriteableBitmap..ctor(Int32 pixelWidth, Int32 pixelHeight, Double dpiX, Double dpiY, PixelFormat pixelFormat, BitmapPalette palette)
   at CefSharp.Wpf.Rendering.WritableBitmapRenderHandler.&lt;&gt;c__DisplayClass8_0.&lt;CreateOrUpdateBitmap&gt;b__0() in C:\projects\cefsharp\CefSharp.Wpf\Rendering\WritableBitmapRenderHandler.cs:line 145
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp; handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp; handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG&amp; msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Window.ShowHelper(Object booleanBox)
   at System.Windows.Window.Show()
   at System.Windows.Window.ShowDialog()
   at XiboClient.App.RunClient(Boolean screenSaver) in C:\Users\User\Documents\Source\xibo-dotnetclient\App.xaml.cs:line 116
   at XiboClient.App.OnStartup(StartupEventArgs e) in C:\Users\User\Documents\Source\xibo-dotnetclient\App.xaml.cs:line 79</message>
Info: <logdate>2025-05-08 14:36:12</logdate><thread></thread><method>Main</method><message>Application Finished</message>
Error: <logdate>2025-05-08 14:36:12</logdate><thread></thread><method>Main</method><message>Unhandled Exception: UnhandledException: Insufficient memory to continue the execution of the program.</message>
Error: <logdate>2025-05-08 14:36:12</logdate><thread></thread><method>Main</method><message>Stack Trace:    at System.Windows.Media.Imaging.WriteableBitmap..ctor(Int32 pixelWidth, Int32 pixelHeight, Double dpiX, Double dpiY, PixelFormat pixelFormat, BitmapPalette palette)
   at CefSharp.Wpf.Rendering.WritableBitmapRenderHandler.&lt;&gt;c__DisplayClass8_0.&lt;CreateOrUpdateBitmap&gt;b__0() in C:\projects\cefsharp\CefSharp.Wpf\Rendering\WritableBitmapRenderHandler.cs:line 145
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp; handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp; handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG&amp; msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at XiboClient.App.Main() in C:\Users\User\Documents\Source\xibo-dotnetclient\obj\x86\Release\App.g.cs:line 51</message>
Info: <logdate>2025-05-08 14:36:12</logdate><thread></thread><method>Main</method><message>Couldn&apos;t write to event log: The source was not found, but some or all event logs could not be searched.  Inaccessible logs: Security.</message>