STEPS TO REPRODUCE This is how I found it. 1. Have some recently Krita opened projects in the “Recent Images” list. 2. Experience a file system failure, resulting in corruptions of some or all Krita projects in this list. 3. Try to open Krita after repairing the OS. It will crash after the splash screen. AppImage version is also affected. This is what probably will be enough to reproduce: 1. Create and save a new Krita project file. 2. Corrupt it. Not sure how exactly. 3. Try to open Krita. It will crash after the splash screen. OBSERVED RESULT Krita segfaults. gdb shows segfault is generated inside QuaZipFile::~QuaZipFile(). I didn't save the stacktrace from gdb and tried it on release builds only. Same source of error as in https://bugs.kde.org/show_bug.cgi?id=518930 EXPECTED RESULT No crash. Probably warning sign icons in the “Recent Images” list on projects that couldn't be loaded. SOFTWARE/OS VERSIONS Artix Linux with fresh updates, LXDE. uname -a: Linux <redacted> 7.0.3-artix1-2 #1 SMP PREEMPT_DYNAMIC Sat, 02 May 2026 00:51:14 +0000 x86_64 GNU/Linux ADDITIONAL INFORMATION Temporary fix if someone finds this issue in Google: remove all entries from the [RecentFiles] INI section in ~/.config/kritarc or just remove/rename the ~/.config/kritarc.
Can you provide the affected file? It's going to be difficult to track this down otherwise.
https://mega.nz/file/Hro0SJhB#nscFQA887JWBRg_fZlJU9BoxTeg7QaLQz_yh8-WATnI I have at least two of them. Simply opening and closing this file makes Krita crash.
🐛🧹 Thanks for your comment! Automatically switching the status to REPORTED so the team can perform further triage. In the future you may also do this yourself when providing needed information.
A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/2821
Git commit b248bcb47358353d9e00a403d0459955e69ec505 by Dmitry Kazakov, on behalf of Agata Cacko. Committed on 11/06/2026 at 09:12. Pushed by dkazakov into branch 'master'. Delete QuaZipFile before deleting the archive Before this commit, Krita would crash in two situations: 1) on creating welcome page, when the recent file list contained a corrupted zip file (from which you cannot read a png file for the preview) 2) on File -> Open, if you click on such corrupted file to see the preview. It would happen in the destructor of KoQuaZipStore. This was caused by several layers of abstractions between Krita and the zip file, especially the confusion in KoQuaZipStore. This commit fixes it by reversing the order KoQuaZipStore deletes its pointers: it should be first deleting the file, and then the archive. If the dd->currentFile is corrupt (and ->getZipError() returns an error code) QuaZip cannot really close it properly (and I don't see an accessible function to reset the error code). Therefore the destructor thinks the file is open and tries to close it. And closing the file means checking if the zip archive associated with the file is open or not. Therefore the archive must exist when the file is being closed, therefore also when it's being deleted. In comparison, the archive can be deleted whenever and it doesn't check the current file. Therefore we gotta delete the file first, then the zip archive. From QuaZip code comments for `QuaZipFile(QuaZip *zip, QObject *parent =nullptr);`: "* Summary: do not close \c zip object or change its current file as * long as QuaZipFile is open." M +15 -1 libs/store/KoQuaZipStore.cpp https://invent.kde.org/graphics/krita/-/commit/b248bcb47358353d9e00a403d0459955e69ec505
Git commit 9c19c135ad3987ba6803acb866bb1505d2285e36 by Dmitry Kazakov, on behalf of Agata Cacko. Committed on 11/06/2026 at 09:13. Pushed by dkazakov into branch 'krita/6.0'. Delete QuaZipFile before deleting the archive Before this commit, Krita would crash in two situations: 1) on creating welcome page, when the recent file list contained a corrupted zip file (from which you cannot read a png file for the preview) 2) on File -> Open, if you click on such corrupted file to see the preview. It would happen in the destructor of KoQuaZipStore. This was caused by several layers of abstractions between Krita and the zip file, especially the confusion in KoQuaZipStore. This commit fixes it by reversing the order KoQuaZipStore deletes its pointers: it should be first deleting the file, and then the archive. If the dd->currentFile is corrupt (and ->getZipError() returns an error code) QuaZip cannot really close it properly (and I don't see an accessible function to reset the error code). Therefore the destructor thinks the file is open and tries to close it. And closing the file means checking if the zip archive associated with the file is open or not. Therefore the archive must exist when the file is being closed, therefore also when it's being deleted. In comparison, the archive can be deleted whenever and it doesn't check the current file. Therefore we gotta delete the file first, then the zip archive. From QuaZip code comments for `QuaZipFile(QuaZip *zip, QObject *parent =nullptr);`: "* Summary: do not close \c zip object or change its current file as * long as QuaZipFile is open." M +15 -1 libs/store/KoQuaZipStore.cpp https://invent.kde.org/graphics/krita/-/commit/9c19c135ad3987ba6803acb866bb1505d2285e36