musescore / musescore/MuseScore
4.7 crashes on opening certain 4.6 scores, with grace notes having lost link between linked staves
Open
Nobody has claimed this yet.
crash
needs review
regression MS4
- Dominant language
- C++
- Stars
- 15.1k
- Forks
- 3.3k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 91
Description
Issue type
Crash or freeze
Description with steps to reproduce
- Open the attached score in 4.7.x or a build from main
All That Swing.zip - Observe a crash
- Open it in any 4.6.x
- It opens cleanly
Supporting files, videos and screenshots
Log (from 4.7.4):
2026-07-17T15:18:01.803 | INFO | main_thread | ProjectActionsController::openProject | Try open project: url = "file:///C:/Users/Jojo/Desktop/All That Swing.mscz" , displayNameOverride = ""
2026-07-17T15:18:01.817 | ERROR | main_thread | TRead::readItemLink | ASSERT FAILED: eid.isValid() D:\a\MuseScore\MuseScore\src\engraving\rw\read460\tread.cpp:592
2026-07-17T15:18:01.817 | ERROR | main_thread | EIDRegister::itemFromEID | ASSERT FAILED: iter != m_eidToItem.end() D:/a/MuseScore/MuseScore/src/engraving/infrastructure/eidregister.cpp:84
2026-07-17T15:18:01.817 | ERROR | main_thread | TRead::readItemLink | ASSERT FAILED: mainElement D:\a\MuseScore\MuseScore\src\engraving\rw\read460\tread.cpp:595
2026-07-17T15:18:01.817 | ERROR | main_thread | TRead::readItemLink | Link failed: Main linked element not found for Chord at 203/8
2026-07-17T15:18:01.817 | ERROR | main_thread | TRead::readItemLink | ASSERT FAILED: eid.isValid() D:\a\MuseScore\MuseScore\src\engraving\rw\read460\tread.cpp:592
2026-07-17T15:18:01.817 | ERROR | main_thread | EIDRegister::itemFromEID | ASSERT FAILED: iter != m_eidToItem.end() D:/a/MuseScore/MuseScore/src/engraving/infrastructure/eidregister.cpp:84
2026-07-17T15:18:01.817 | ERROR | main_thread | TRead::readItemLink | ASSERT FAILED: mainElement D:\a\MuseScore\MuseScore\src\engraving\rw\read460\tread.cpp:595
2026-07-17T15:18:01.817 | ERROR | main_thread | TRead::readItemLink | Link failed: Main linked element not found for Note at 203/8
2026-07-17T15:18:01.824 | ERROR | main_thread | TRead::readItemLink | ASSERT FAILED: eid.isValid() D:\a\MuseScore\MuseScore\src\engraving\rw\read460\tread.cpp:592
2026-07-17T15:18:01.825 | ERROR | main_thread | EIDRegister::itemFromEID | ASSERT FAILED: iter != m_eidToItem.end() D:/a/MuseScore/MuseScore/src/engraving/infrastructure/eidregister.cpp:84
2026-07-17T15:18:01.825 | ERROR | main_thread | TRead::readItemLink | ASSERT FAILED: mainElement D:\a\MuseScore\MuseScore\src\engraving\rw\read460\tread.cpp:595
2026-07-17T15:18:01.825 | ERROR | main_thread | TRead::readItemLink | Link failed: Main linked element not found for Chord at 203/8
2026-07-17T15:18:01.825 | ERROR | main_thread | TRead::readItemLink | ASSERT FAILED: eid.isValid() D:\a\MuseScore\MuseScore\src\engraving\rw\read460\tread.cpp:592
2026-07-17T15:18:01.825 | ERROR | main_thread | EIDRegister::itemFromEID | ASSERT FAILED: iter != m_eidToItem.end() D:/a/MuseScore/MuseScore/src/engraving/infrastructure/eidregister.cpp:84
2026-07-17T15:18:01.825 | ERROR | main_thread | TRead::readItemLink | ASSERT FAILED: mainElement D:\a\MuseScore\MuseScore\src\engraving\rw\read460\tread.cpp:595
2026-07-17T15:18:01.825 | ERROR | main_thread | TRead::readItemLink | Link failed: Main linked element not found for Note at 203/8
Stack trace (in a Debug build from main, being a Debug build it aborts much earlier):
ucrtbased.dll!00007ffaf2894805()
ucrtbased.dll!00007ffaf28949a3()
ucrtbased.dll!00007ffaf28aba9d()
ucrtbased.dll!00007ffaf28b141f()
ucrtbased.dll!00007ffaf28af378()
ucrtbased.dll!00007ffaf28b1c7f()
MuseScoreStudio5.exe!mu::engraving::read460::TRead::readItemLink(mu::engraving::EngravingItem * item, mu::engraving::XmlReader & xml, mu::engraving::read460::ReadContext & ctx) Line 596
at C:\GH-MU\src\engraving\rw\read460\tread.cpp(596)
MuseScoreStudio5.exe!mu::engraving::read460::TRead::readItemProperties(mu::engraving::EngravingItem * item, mu::engraving::XmlReader & e, mu::engraving::read460::ReadContext & ctx) Line 557
at C:\GH-MU\src\engraving\rw\read460\tread.cpp(557)
MuseScoreStudio5.exe!mu::engraving::read460::TRead::readProperties(mu::engraving::ChordRest * ch, mu::engraving::XmlReader & e, mu::engraving::read460::ReadContext & ctx) Line 2608
at C:\GH-MU\src\engraving\rw\read460\tread.cpp(2608)
MuseScoreStudio5.exe!mu::engraving::read460::TRead::readProperties(mu::engraving::Chord * ch, mu::engraving::XmlReader & e, mu::engraving::read460::ReadContext & ctx) Line 2458
at C:\GH-MU\src\engraving\rw\read460\tread.cpp(2458)
MuseScoreStudio5.exe!mu::engraving::read460::TRead::read(mu::engraving::Chord * ch, mu::engraving::XmlReader & e, mu::engraving::read460::ReadContext & ctx) Line 2440
at C:\GH-MU\src\engraving\rw\read460\tread.cpp(2440)
MuseScoreStudio5.exe!mu::engraving::read460::MeasureRead::readVoice(mu::engraving::Measure * measure, mu::engraving::XmlReader & e, mu::engraving::read460::ReadContext & ctx, int staffIdx, bool irregular) Line 264
at C:\GH-MU\src\engraving\rw\read460\measureread.cpp(264)
MuseScoreStudio5.exe!mu::engraving::read460::MeasureRead::readMeasure(mu::engraving::Measure * measure, mu::engraving::XmlReader & e, mu::engraving::read460::ReadContext & ctx, int staffIdx) Line 105
at C:\GH-MU\src\engraving\rw\read460\measureread.cpp(105)
MuseScoreStudio5.exe!mu::engraving::read460::StaffRead::readStaff(mu::engraving::Score * score, mu::engraving::XmlReader & e, mu::engraving::read460::ReadContext & ctx) Line 63
at C:\GH-MU\src\engraving\rw\read460\staffread.cpp(63)
MuseScoreStudio5.exe!mu::engraving::read460::Read460::readScoreTag(mu::engraving::Score * score, mu::engraving::XmlReader & e, mu::engraving::read460::ReadContext & ctx) Line 128
at C:\GH-MU\src\engraving\rw\read460\read460.cpp(128)
MuseScoreStudio5.exe!mu::engraving::read460::Read460::readScoreFile(mu::engraving::Score * score, mu::engraving::XmlReader & e, mu::engraving::rw::ReadInOutData * data) Line 92
at C:\GH-MU\src\engraving\rw\read460\read460.cpp(92)
MuseScoreStudio5.exe!mu::engraving::MscLoader::readMasterScore(mu::engraving::MasterScore * score, mu::engraving::XmlReader & e, bool ignoreVersionError, mu::engraving::rw::ReadInOutData * out, mu::engraving::compat::ReadStyleHook * styleHook) Line 256
at C:\GH-MU\src\engraving\rw\mscloader.cpp(256)
MuseScoreStudio5.exe!mu::engraving::MscLoader::loadMscz(mu::engraving::MasterScore * masterScore, const mu::engraving::MscReader & mscReader, mu::engraving::rw::ReadInOutData * inOut, bool ignoreVersionError) Line 152
at C:\GH-MU\src\engraving\rw\mscloader.cpp(152)
MuseScoreStudio5.exe!mu::engraving::EngravingProject::loadMscz(const mu::engraving::MscReader & msc, mu::engraving::rw::ReadInOutData * data, bool ignoreVersionError) Line 142
at C:\GH-MU\src\engraving\engravingproject.cpp(142)
MuseScoreStudio5.exe!mu::project::NotationProject::doLoad(const muse::io::path_t & path, const mu::project::OpenParams & openParams, const std::string & format) Line 176
at C:\GH-MU\src\project\internal\notationproject.cpp(176)
MuseScoreStudio5.exe!mu::project::NotationProject::load(const muse::io::path_t & path, const mu::project::OpenParams & openParams, const std::string & format_) Line 137
at C:\GH-MU\src\project\internal\notationproject.cpp(137)
MuseScoreStudio5.exe!mu::project::ProjectActionsController::loadWithFallback(const std::shared_ptr<mu::project::INotationProject> & project, const muse::io::path_t & loadPath, const std::string & format) Line 333
at C:\GH-MU\src\project\internal\projectactionscontroller.cpp(333)
MuseScoreStudio5.exe!mu::project::ProjectActionsController::loadProject(const muse::io::path_t & filePath) Line 311
at C:\GH-MU\src\project\internal\projectactionscontroller.cpp(311)
MuseScoreStudio5.exe!mu::project::ProjectActionsController::doOpenProject(const muse::io::path_t & filePath) Line 353
at C:\GH-MU\src\project\internal\projectactionscontroller.cpp(353)
MuseScoreStudio5.exe!mu::project::ProjectActionsController::openProject(const muse::io::path_t & givenPath, const QString & displayNameOverride) Line 294
at C:\GH-MU\src\project\internal\projectactionscontroller.cpp(294)
MuseScoreStudio5.exe!mu::project::ProjectActionsController::openProject(const mu::project::ProjectFile & file) Line 217
at C:\GH-MU\src\project\internal\projectactionscontroller.cpp(217)
MuseScoreStudio5.exe!mu::appshell::ApplicationActionController::onDropEvent::__l8::<lambda_1>::operator()() Line 177
at C:\GH-MU\src\appshell\internal\applicationactioncontroller.cpp(177)
[External Code]
MuseScoreStudio5.exe!`kors::async::Async::callQueue'::`2'::Func::call(const void * __formal) Line 154
at C:\GH-MU\muse\framework\global\thirdparty\kors_async\async\async.h(154)
MuseScoreStudio5.exe!kors::async::Async::queueData::__l11::<lambda_1>::operator()(const kors::async::CallMsg & m) Line 124
at C:\GH-MU\muse\framework\global\thirdparty\kors_async\async\async.h(124)
[External Code]
MuseScoreStudio5.exe!kors::async::RpcPort<kors::async::CallMsg>::process() Line 116
at C:\GH-MU\muse\framework\global\thirdparty\kors_async\async\internal\rpcqueue.h(116)
MuseScoreStudio5.exe!kors::async::QueuePool::processMessages(const std::thread::id & th) Line 186
at C:\GH-MU\muse\framework\global\thirdparty\kors_async\async\internal\queuepool.cpp(186)
MuseScoreStudio5.exe!kors::async::processMessages(const std::thread::id & th) Line 37
at C:\GH-MU\muse\framework\global\thirdparty\kors_async\async\processevents.h(37)
MuseScoreStudio5.exe!muse::async::processMessages(const std::thread::id & th) Line 34
at C:\GH-MU\muse\framework\global\async\processevents.h(34)
MuseScoreStudio5.exe!muse::GlobalModule::onPreInit::__l2::<lambda_1>::operator()() Line 209
at C:\GH-MU\muse\framework\global\globalmodule.cpp(209)
[External Code]
MuseScoreStudio5.exe!muse::TickerProvider::process() Line 96
at C:\GH-MU\muse\framework\global\internal\tickerprovider.cpp(96)
MuseScoreStudio5.exe!muse::TickerProvider::start::__l2::<lambda_1>::operator()() Line 46
at C:\GH-MU\muse\framework\global\internal\tickerprovider.cpp(46)
MuseScoreStudio5.exe!QtPrivate::FunctorCall<std::integer_sequence<unsigned __int64>,QtPrivate::List<>,void,`muse::TickerProvider::start'::`2'::<lambda_1>>::call::__l2::<lambda_1>::operator()() Line 116
at C:\Qt\6.10.2\msvc2022_64\include\QtCore\qobjectdefs_impl.h(116)
MuseScoreStudio5.exe!QtPrivate::FunctorCallBase::call_internal<void,`QtPrivate::FunctorCall<std::integer_sequence<unsigned __int64>,QtPrivate::List<>,void,`muse::TickerProvider::start'::`2'::<lambda_1>>::call'::`2'::<lambda_1>>(void * * args, QtPrivate::FunctorCall<std::integer_sequence<unsigned __int64>,QtPrivate::List<>,void,`muse::TickerProvider::start'::`2'::<lambda_1>>::call::__l2::<lambda_1> && fn) Line 65
at C:\Qt\6.10.2\msvc2022_64\include\QtCore\qobjectdefs_impl.h(65)
MuseScoreStudio5.exe!QtPrivate::FunctorCall<std::integer_sequence<unsigned __int64>,QtPrivate::List<>,void,`muse::TickerProvider::start'::`2'::<lambda_1>>::call(muse::TickerProvider::start::__l2::<lambda_1> & f, void * * arg) Line 115
at C:\Qt\6.10.2\msvc2022_64\include\QtCore\qobjectdefs_impl.h(115)
MuseScoreStudio5.exe!QtPrivate::FunctorCallable<`muse::TickerProvider::start'::`2'::<lambda_1>>::call<QtPrivate::List<>,void>(muse::TickerProvider::start::__l2::<lambda_1> & f, void * __formal, void * * arg) Line 337
at C:\Qt\6.10.2\msvc2022_64\include\QtCore\qobjectdefs_impl.h(337)
MuseScoreStudio5.exe!QtPrivate::QCallableObject<`muse::TickerProvider::start'::`2'::<lambda_1>,QtPrivate::List<>,void>::impl(int which, QtPrivate::QSlotObjectBase * this_, QObject * r, void * * a, bool * ret) Line 547
at C:\Qt\6.10.2\msvc2022_64\include\QtCore\qobjectdefs_impl.h(547)
[External Code]
MuseScoreStudio5.exe!main(int argc, char * * argv) Line 217
at C:\GH-MU\src\app\main.cpp(217)
[External Code]
Seems an EID is invalid?
In which versions of MuseScore Studio is this issue present?
4.7,* and main
Regression
Yes, this used to work in a previous version of MuseScore 4.x (namely 4.6.x)
Operating system
Windows 11
Additional context
Stems from https://musescore.org/de/node/394818
Checklist
- This report follows the guidelines for reporting bugs and issues
- I have verified that this issue has not been logged before, by searching the issue tracker for similar issues
- I have attached all requested files and information to this report
- I have attempted to identify the root problem as concisely as possible, and have used minimal reproducible examples where possible
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.