Crash in Caroussel : Linux only

Hi,

I’ve been kind of stuck for a few days on a weird crash. I’m building a carousel (UMG) with a variable size, and it’s working quite smoothly on my PC (Windows). However, whenever the carousel is “reset” with only one subwidget, it crashes my application on Linux only.

I’ve tried with and without the editor, and I’m still experiencing this weird infinite recursion of the widget during the DrawInvalidationRoot. I’m starting to think it might be a UE5 Linux bug, or could I be doing something wrong?

I’ve found a “fix” when ever I have only one subwidget, instead of adding it on the Caroussel, I had it to it’s parent, and it’s fixing my crash, but I would like to understand what was happening.

I’m basically just creating widget that I add on my caroussel.
On reset, i’m clearing all caroussel children and i’m adding new one.


Here is the crash logs :

[2025.03.27-10.46.34:853][152]LogCore: === Critical error: ===
Unhandled Exception: SIGSEGV: invalid attempt to write memory at address 0x0000000000000003

[2025.03.27-10.46.34:853][152]LogCore: Assertion failed: NewWidget.GetParentWidget().Get() == &Widget [File:./Runtime/SlateCore/Private/FastUpdate/SlateInvalidationWidgetList.cpp] [Line: 490]

0x0000000005aba232 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal

0x0000000005aba232 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005aba194 FSlateInvalidationWidgetList::Internal_BuildWidgetList_Recursive(SWidget&, FSlateInvalidationWidgetIndex, unsigned short&, FSlateInvalidationWidgetVisibility, bool)()
0x0000000005ab0c75 FSlateInvalidationWidgetList::BuildWidgetList(TSharedRef<SWidget, (ESPMode)1> const&)()
0x0000000005aaed76 FSlateInvalidationRoot::BuildFastPathWidgetList(TSharedRef<SWidget, (ESPMode)1> const&)()
0x0000000005aae9dd FSlateInvalidationRoot::PaintInvalidationRoot(FSlateInvalidationContext const&)()
0x000000000a3922c4 FWidgetRenderer::DrawInvalidationRoot(TSharedRef<SVirtualWindow, (ESPMode)1>&, UTextureRenderTarget2D*, FSlateInvalidationRoot&, FSlateInvalidationContext const&, bool)()
0x000000000a392078 SRetainerWidget::PaintRetainedContentImpl(FSlateInvalidationContext const&, FGeometry const&, int)()
0x000000000a393063 SRetainerWidget::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6d42c SWidget::Paint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6b65f SCompoundWidget::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x000000000a3889b4 SObjectWidget::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6d42c SWidget::Paint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005fcd734 SConstraintCanvas::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6d42c SWidget::Paint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c70e94 SOverlay::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6d42c SWidget::Paint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005fcb98f SBox::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6d42c SWidget::Paint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c70e94 SOverlay::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6d42c SWidget::Paint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6b10e SPanel::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6d42c SWidget::Paint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6b10e SPanel::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6d42c SWidget::Paint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6b65f SCompoundWidget::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x000000000b9a0ff9 SGameLayerManager::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6d42c SWidget::Paint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6b65f SCompoundWidget::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000006012146 SViewport::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6d42c SWidget::Paint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6b10e SPanel::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6d42c SWidget::Paint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6b10e SPanel::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6d42c SWidget::Paint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c70e94 SOverlay::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6d42c SWidget::Paint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6b65f SCompoundWidget::OnPaint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005c6d42c SWidget::Paint(FPaintArgs const&, FGeometry const&, FSlateRect const&, FSlateWindowElementList&, int, FWidgetStyle const&, bool) const()
0x0000000005cade18 non-virtual thunk to SWindow::PaintSlowPath(FSlateInvalidationContext const&)()
0x0000000005aae9f0 FSlateInvalidationRoot::PaintInvalidationRoot(FSlateInvalidationContext const&)()
0x0000000005cae29a SWindow::PaintWindow(double, float, FSlateWindowElementList&, FWidgetStyle const&, bool)()
0x0000000005d7434f FSlateApplication::DrawWindowAndChildren(TSharedRef<SWindow, (ESPMode)1> const&, FDrawWindowArgs&)()
0x0000000005d73cb4 FSlateApplication::PrivateDrawWindows(TSharedPtr<SWindow, (ESPMode)1>)()
0x0000000005d73342 FSlateApplication::DrawWindows()()
0x0000000005d77f0f FSlateApplication::TickAndDrawWidgets(float)()
0x0000000005d7688e FSlateApplication::Tick(ESlateTickType)()
0x000000000c516f1e FEngineLoop::Tick()()
0x000000000c51dc7a GuardedMain(char16_t const*)()
0x000000000c47b76d CommonUnixMain(int, char**, int ()(char16_t const), void (*)())()
0x00007ce12a829d90 libc.so.6!UnknownFunction(0x29d8f)