Animations crash hyprland when hl.config changes to fast

Hyprland version
Hyprland 0.55.1 built from branch v0.55.1-b at commit a47147bc095e5b3be3eb8bd04f0ac242b968cd4d clean ([gha] Nix: update inputs).
Date: 2026-05-13
Tag: v0.55.1, commits: -1

Libraries:
Hyprgraphics: built against 0.5.1, system has unknown
Hyprutils: built against 0.13.1, system has unknown
Hyprcursor: built against 0.1.13, system has unknown
Hyprlang: built against 0.6.8, system has unknown
Aquamarine: built against 0.11.0, system has unknown

Version ABI string: a47147bc095e5b3be3eb8bd04f0ac242b968cd4d_aq_0.11_hu_0.13_hg_0.5_hc_0.1_hlg_0.6
flags set:
nix

Describe your issue / feature…

I was playing with submaps the other day, when I found Hyprland crashing randomly on activating/deactivating the submap. After a little inspecting, I suspect the issue stems from changing hl.config(…)when an animation is playing. I can consistently reproduce the issue aka. crash Hyprland with the following bind:

From hyprland.lua
hl.bind("CTRL + G", function()
  hl.config( { general = { gaps_out = 40 } } )
  hl.timer( function()
    hl.config( { general = { gaps_out = 20 } } )
  end, { timeout = 200, type = "oneshot" })
end)

Notably, the issue seemed not to be restricted to changing the same config value (i. e. general.gaps_out) in quick succession but occurred also when changing hl.config(...) whilst an animation from swapsplit/togglesplit was playing out.

Hyprland Crash Report
--------------------------------------------
   Hyprland Crash Report
--------------------------------------------
I hope you didn't have any unsaved progress.

Hyprland received signal 11(SEGV)
Version: a47147bc095e5b3be3eb8bd04f0ac242b968cd4d
Tag: v0.55.1
Date: 2026-05-13
Flags:

System info:
	System name: Linux
	Node name: <redacted>
	Release: 6.12.89
	Version: #1-NixOS SMP PREEMPT_DYNAMIC Fri May 15 12:51:08 UTC 2026

GPU:
	00:02.0 VGA compatible controller [0300]: Intel Corporation Iris Plus Graphics G7 [8086:8a53] (rev 07) (prog-if 00 [VGA controller])
e6:00.1 Non-VGA unclassified device [0000]: Apple Inc. T2 Bridge Controller [106b:1801] (rev 01)
e6:00.2 Non-VGA unclassified device [0000]: Apple Inc. T2 Secure Enclave Processor [106b:1802] (rev 01)


os-release:
	ANSI_COLOR="0;38;2;126;186;228"
	BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
	BUILD_ID="26.05.20260515.d233902"
	CPE_NAME="cpe:/o:nixos:nixos:26.05"
	DEFAULT_HOSTNAME=nixos
	DOCUMENTATION_URL="https://nixos.org/learn.html"
	HOME_URL="https://nixos.org/"
	ID=nixos
	ID_LIKE=""
	IMAGE_ID=""
	IMAGE_VERSION=""
	LOGO="nix-snowflake"
	NAME=NixOS
	PRETTY_NAME="NixOS 26.05 (Yarara)"
	SUPPORT_URL="https://nixos.org/community.html"
	VARIANT=""
	VARIANT_ID=""
	VENDOR_NAME=NixOS
	VENDOR_URL="https://nixos.org/"
	VERSION="26.05 (Yarara)"
	VERSION_CODENAME=yarara
	VERSION_ID="26.05"

Libraries:
Hyprgraphics: built against 0.5.1, system has unknown
Hyprutils: built against 0.13.1, system has unknown
Hyprcursor: built against 0.1.13, system has unknown
Hyprlang: built against 0.6.8, system has unknown
Aquamarine: built against 0.11.0, system has unknown

Backtrace:
	# | /home/<redacted>/.nix-profile/bin/Hyprland(_Z12getBacktracev+0x5c) [0x598338a9ec9c]
		getBacktrace()
		??:?
	#1 | /home/<redacted>/.nix-profile/bin/Hyprland(_ZN13CrashReporter18createAndSaveCrashEi+0xb34) [0x59833899e1e4]
		CrashReporter::createAndSaveCrash(int)
		??:?
	#2 | /home/<redacted>/.nix-profile/bin/Hyprland(+0x405bc5) [0x5983387a4bc5]
		handleUnrecoverableSignal(int)
		??:?
	#3 | /nix/store/fjkx1l5cnskzrqacf08z7i8z17256w0j-glibc-2.42-61/lib/libc.so.6(+0x42790) [0x7626dee42790]
		??
		??:0
	#4 | /home/<redacted>/.nix-profile/bin/Hyprland(+0xc76470) [0x598339015470]
		Render::GL::CGLRenderbuffer::~CGLRenderbuffer() [clone .cold]
		??:?
	#5 | /home/<redacted>/.nix-profile/bin/Hyprland(_ZN6Render2GL15CGLRenderbufferD0Ev+0x11) [0x598339014cd1]
		Render::GL::CGLRenderbuffer::~CGLRenderbuffer()
		??:?
	#6 | /home/<redacted>/.nix-profile/bin/Hyprland(_ZN6Render13IHyprRenderer23getOrCreateRenderbufferEN9Hyprutils6Memory14CSharedPointerIN10Aquamarine7IBufferEEEj+0x101) [0x598338fa1ee1]
		Render::IHyprRenderer::getOrCreateRenderbuffer(Hyprutils::Memory::CSharedPointer<Aquamarine::IBuffer>, unsigned int)
		??:?
	#7 | /home/<redacted>/.nix-profile/bin/Hyprland(_ZN6Render2GL15CHyprGLRenderer16initRenderBufferEN9Hyprutils6Memory14CSharedPointerIN10Aquamarine7IBufferEEEj+0x51) [0x598338f673d1]
		Render::GL::CHyprGLRenderer::initRenderBuffer(Hyprutils::Memory::CSharedPointer<Aquamarine::IBuffer>, unsigned int)
		??:?
	#8 | /home/<redacted>/.nix-profile/bin/Hyprland(_ZN6Render13IHyprRenderer11beginRenderEN9Hyprutils6Memory14CSharedPointerI8CMonitorEERNS1_4Math7CRegionENS_11eRenderModeENS3_I9IHLBufferEENS3_INS_12IFramebufferEEEb+0x7a9) [0x598338faab59]
		Render::IHyprRenderer::beginRender(Hyprutils::Memory::CSharedPointer<CMonitor>, Hyprutils::Math::CRegion&, Render::eRenderMode, Hyprutils::Memory::CSharedPointer<IHLBuffer>, Hyprutils::Memory::CSharedPointer<Render::IFramebuffer>, bool)
		??:?
	#9 | /home/<redacted>/.nix-profile/bin/Hyprland(_ZN11Screenshare17CScreenshareFrame10copyDmabufEv+0xca) [0x598338d0396a]
		Screenshare::CScreenshareFrame::copyDmabuf()
		??:?
	#1 | /home/<redacted>/.nix-profile/bin/Hyprland(_ZN11Screenshare17CScreenshareFrame4copyEv+0x268) [0x598338d04de8]
		Screenshare::CScreenshareFrame::copy()
		??:?
	#11 | /home/<redacted>/.nix-profile/bin/Hyprland(_ZN11Screenshare19CScreenshareManager14onOutputCommitEN9Hyprutils6Memory14CSharedPointerI8CMonitorEE+0x445) [0x598338d098e5]
		Screenshare::CScreenshareManager::onOutputCommit(Hyprutils::Memory::CSharedPointer<CMonitor>)
		??:?
	#12 | /home/<redacted>/.nix-profile/bin/Hyprland(+0x7119f1) [0x598338ab09f1]
		std::_Function_handler<void (), CMonitor::onConnect(bool)::{lambda()#4}>::_M_invoke(std::_Any_data const&)
		??:?
	#13 | /nix/store/4h3h9g91ya1415ijps3pwcb94qi1mgvj-hyprutils-0.13.1/lib/libhyprutils.so.12(_ZN9Hyprutils6Signal15CSignalListener12emitInternalEPv+0x29) [0x7626e1925cd9]
		??
		??:0
	#14 | /nix/store/4h3h9g91ya1415ijps3pwcb94qi1mgvj-hyprutils-0.13.1/lib/libhyprutils.so.12(_ZN9Hyprutils6Signal11CSignalBase12emitInternalEPv+0x2f3) [0x7626e19260b3]
		??
		??:0
	#15 | /nix/store/6q59395jibzzp232vqd64nallkmrv7wy-aquamarine-0.11.0/lib/libaquamarine.so.10(_ZN10Aquamarine10CDRMOutput11commitStateEb+0xf1b) [0x7626e1a4ca1b]
		??
		??:0
	#16 | /home/<redacted>/.nix-profile/bin/Hyprland(_ZN6Render13IHyprRenderer30commitPendingAndDoExplicitSyncEN9Hyprutils6Memory14CSharedPointerI8CMonitorEE+0x72) [0x598338fc08b2]
		Render::IHyprRenderer::commitPendingAndDoExplicitSync(Hyprutils::Memory::CSharedPointer<CMonitor>)
		??:?
	#17 | /home/<redacted>/.nix-profile/bin/Hyprland(_ZN6Render13IHyprRenderer13renderMonitorEN9Hyprutils6Memory14CSharedPointerI8CMonitorEEb+0x174c) [0x598338fce74c]
		Render::IHyprRenderer::renderMonitor(Hyprutils::Memory::CSharedPointer<CMonitor>, bool)
		??:?
	#18 | /home/<redacted>/.nix-profile/bin/Hyprland(_ZN22CMonitorFrameScheduler7onFrameEv+0x2c2) [0x598338adc272]
		CMonitorFrameScheduler::onFrame()
		??:?
	#19 | /nix/store/4h3h9g91ya1415ijps3pwcb94qi1mgvj-hyprutils-0.13.1/lib/libhyprutils.so.12(_ZN9Hyprutils6Signal15CSignalListener12emitInternalEPv+0x29) [0x7626e1925cd9]
		??
		??:0
	#2 | /nix/store/4h3h9g91ya1415ijps3pwcb94qi1mgvj-hyprutils-0.13.1/lib/libhyprutils.so.12(_ZN9Hyprutils6Signal11CSignalBase12emitInternalEPv+0x2f3) [0x7626e19260b3]
		??
		??:0
	#21 | /nix/store/6q59395jibzzp232vqd64nallkmrv7wy-aquamarine-0.11.0/lib/libaquamarine.so.10(+0xbfe92) [0x7626e1a43e92]
		??
		??:0
	#22 | /nix/store/1jx6xl1bn80av3xmiarlb8lnavmc4grs-libdrm-2.4.131/lib/libdrm.so.2(drmHandleEvent+0x140) [0x7626e137aba0]
		??
		??:0
	#23 | /nix/store/6q59395jibzzp232vqd64nallkmrv7wy-aquamarine-0.11.0/lib/libaquamarine.so.10(+0xc4956) [0x7626e1a48956]
		??
		??:0
	#24 | /home/<redacted>/.nix-profile/bin/Hyprland(+0x8d7116) [0x598338c76116]
		aquamarineFDWrite(int, unsigned int, void*)
		??:?
	#25 | /nix/store/ysbyz6zabjcg078ssp4l58mhgbr57pbz-wayland-1.24.0/lib/libwayland-server.so.0(wl_event_loop_dispatch+0x1c2) [0x7626e17b5252]
		??
		??:0
	#26 | /nix/store/ysbyz6zabjcg078ssp4l58mhgbr57pbz-wayland-1.24.0/lib/libwayland-server.so.0(wl_display_run+0x25) [0x7626e17b26d5]
		??
		??:0
	#27 | /home/<redacted>/.nix-profile/bin/Hyprland(_ZN17CEventLoopManager9enterLoopEv+0x2ba) [0x598338c794da]
		CEventLoopManager::enterLoop()
		??:?
	#28 | /home/<redacted>/.nix-profile/bin/Hyprland(main+0x1324) [0x598338794244]
		main
		??:?
	#29 | /nix/store/fjkx1l5cnskzrqacf08z7i8z17256w0j-glibc-2.42-61/lib/libc.so.6(+0x2b285) [0x7626dee2b285]
		??
		??:0
	#3 | /nix/store/fjkx1l5cnskzrqacf08z7i8z17256w0j-glibc-2.42-61/lib/libc.so.6(__libc_start_main+0x88) [0x7626dee2b338]
		??
		??:0
	#31 | /home/<redacted>/.nix-profile/bin/Hyprland(_start+0x25) [0x59833878cb25]
		_start
		??:?


Log tail:

DEBUG from aquamarine ]: [libinput] Plugin:button-debounce - debounce state: DEBOUNCE_STATE_IS_UP_DETECTING_SPURIOUS → DEBOUNCE_EVENT_TIMEOUT_SHORT → DEBOUNCE_STATE_IS_UP_WAITING

DEBUG from aquamarine ]: [libinput] Plugin:button-debounce - debounce state: DEBOUNCE_STATE_IS_UP_WAITING → DEBOUNCE_EVENT_TIMEOUT → DEBOUNCE_STATE_IS_UP

DEBUG from aquamarine ]: [libinput] Plugin:button-debounce - debounce state: DEBOUNCE_STATE_IS_UP → DEBOUNCE_EVENT_PRESS → DEBOUNCE_STATE_IS_DOWN_WAITING

DEBUG from aquamarine ]: [libinput] Plugin:button-debounce - debounce state: DEBOUNCE_STATE_IS_DOWN_WAITING → DEBOUNCE_EVENT_TIMEOUT → DEBOUNCE_STATE_IS_DOWN

DEBUG from aquamarine ]: [libinput] Plugin:button-debounce - debounce state: DEBOUNCE_STATE_IS_DOWN → DEBOUNCE_EVENT_RELEASE → DEBOUNCE_STATE_IS_UP_DETECTING_SPURIOUS

DEBUG from aquamarine ]: [libinput] Plugin:button-debounce - debounce state: DEBOUNCE_STATE_IS_UP_DETECTING_SPURIOUS → DEBOUNCE_EVENT_TIMEOUT_SHORT → DEBOUNCE_STATE_IS_UP_WAITING

DEBUG from aquamarine ]: [libinput] Plugin:button-debounce - debounce state: DEBOUNCE_STATE_IS_UP_WAITING → DEBOUNCE_EVENT_TIMEOUT → DEBOUNCE_STATE_IS_UP

DEBUG from aquamarine ]: [libinput] Plugin:button-debounce - debounce state: DEBOUNCE_STATE_IS_UP → DEBOUNCE_EVENT_PRESS → DEBOUNCE_STATE_IS_DOWN_WAITING

DEBUG from aquamarine ]: [libinput] Plugin:button-debounce - debounce state: DEBOUNCE_STATE_IS_DOWN_WAITING → DEBOUNCE_EVENT_TIMEOUT → DEBOUNCE_STATE_IS_DOWN

DEBUG from aquamarine ]: [libinput] Plugin:button-debounce - debounce state: DEBOUNCE_STATE_IS_DOWN → DEBOUNCE_EVENT_RELEASE → DEBOUNCE_STATE_IS_UP_DETECTING_SPURIOUS

DEBUG from aquamarine ]: [libinput] Plugin:button-debounce - debounce state: DEBOUNCE_STATE_IS_UP_DETECTING_SPURIOUS → DEBOUNCE_EVENT_TIMEOUT_SHORT → DEBOUNCE_STATE_IS_UP_WAITING

DEBUG from aquamarine ]: [libinput] Plugin:button-debounce - debounce state: DEBOUNCE_STATE_IS_UP_WAITING → DEBOUNCE_EVENT_TIMEOUT → DEBOUNCE_STATE_IS_UP

DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 316
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 317
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 316
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 316
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 311
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 311
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 308
DEBUG from aquamarine ]: drm: Modesetting eDP-1 with [email protected]
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 311
DEBUG from aquamarine ]: drm: Modesetting DP-5 with [email protected]
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 311
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 311
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 308
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 308
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 308
DEBUG from aquamarine ]: drm: Modesetting eDP-1 with [email protected]
ERR from aquamarine ]: drm: Cannot commit when a page-flip is awaiting
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 311
DEBUG from aquamarine ]: drm: Modesetting DP-5 with [email protected]
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 311
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 311
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 311
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 311
DEBUG from aquamarine ]: drm: Cursor buffer imported into KMS with id 311
DEBUG from aquamarine ]: drm: Modesetting eDP-1 with [email protected]
ERR from aquamarine ]: [EGL] Command eglCreateImageKHR errored out with EGL_BAD_PARAMETER (0x12300): plane attribute(s) missing