Created attachment 179843 [details] SAFE ASSERT Internal Errors and Crash when using Tablet Since March 27, 2025, the Krita Next Nightlies give SAFE ASSERT Internal Errors and crash when the stylus is put on a graphics tablet. Krita has encountered an internal error: SAFE ASSERT (krita): "!m_derivedResources.contains(converter->key())" in file /builds/graphics/krita/fibs/flake/ KoResourceManager_p.cpp, line 266 Krita has encountered an internal error: SAFE ASSERT (krita): "!m_sanitylsStarting" in file /builds/graphics/ krita/libs/global/kis_signal_compressor.cpp, line 210 Tested under Linux with krita-5.3.0-prealpha-6f80cd8412-x86_64.AppImage (2025-03-29, and the one before it)
It seems to happen the first time the stylus (not mouse) is moved over the canvas, but it depends on what tool is active. If the brush tool is active for the first stylus motion(?) over the canvas, it triggers the assert. But if instead another tool (e.g. the move tool) is active, then there is no failed assert, and then you can switch to the brush tool and it's fine.
Opening a second image also triggers the line 266 assert, immediately
Confirming the ResourceManager safe assert, this appears to be caused by "Remember tool opacity after brush switch" (https://invent.kde.org/graphics/krita/-/merge_requests/2218). With both putting the stylus in proximity and opening a document after the first, KoResourceManager::addDerivedResourceConverter() (which contains the safe assert) is being called by KoToolManager::Private::switchTool(), KoToolManager.cpp:529. In the latter case "A derived resource converter with the same resource ID exists!" is logged before the safe assert.
I can also confirm the signal compressor safe assert (two, actually) when the stylus comes in proximity with the canvas the first time with the nightly build (krita-6.0.0-prealpha-eb7151a), but not my local build of 5.3.x or 6.x for some unknown reason. > SAFE ASSERT (krita): "!m_sanityIsStarting" in file /Users/gitlab/ws/builds/t1_Sat4Gr/0/graphics/krita/libs/global/kis_signal_compressor.cpp, line 210 > SAFE ASSERT (krita): "!m_derivedResources.contains(converter->key())" in file /Users/gitlab/ws/builds/t1_Sat4Gr/0/graphics/krita/libs/flake/KoResourceManager_p.cpp, line 266 > SAFE ASSERT (krita): "m_timer->isActive()" in file /Users/gitlab/ws/builds/t1_Sat4Gr/0/graphics/krita/libs/global/kis_signal_compressor.cpp, line 148
*** Bug 502222 has been marked as a duplicate of this bug. ***
I am getting a very similar error with the SAFE_ASSERT for the m_derviedResources.contains() on the same line of KoResourceManager.cpp. I am running a script via Scripter on Windows 11 newDocument = Krita.instance().createDocument(1280, 1024, "Document name", "RGBA", "U8", "", 300.0) Krita.instance().activeWindow().addView(newDocument) # shows it in the application # this line is throwing the safe assert
Fixed by https://invent.kde.org/graphics/krita/-/commit/647fcbf1. I get no safe asserts on the 5.3.0-prealpha-647fcbf1 nightly build.
Thank you, I've confirmed that too! :)
*** Bug 502471 has been marked as a duplicate of this bug. ***