diff --git a/src/fsfw/devicehandlers/AssemblyBase.cpp b/src/fsfw/devicehandlers/AssemblyBase.cpp index e2a5f524..72298384 100644 --- a/src/fsfw/devicehandlers/AssemblyBase.cpp +++ b/src/fsfw/devicehandlers/AssemblyBase.cpp @@ -264,7 +264,15 @@ void AssemblyBase::overwriteDeviceHealth(object_id_t objectId, HasHealthIF::Heal triggerEvent(OVERWRITING_HEALTH, objectId, oldHealth); internalState = STATE_OVERWRITE_HEALTH; modeHelper.setForced(true); - sendHealthCommand(childrenMap[objectId].commandQueue, EXTERNAL_CONTROL); + if(childrenMap.find(objectId) != childrenMap.end()) { + sendHealthCommand(childrenMap.at(objectId).commandQueue, EXTERNAL_CONTROL); + } else { +#if FSFW_CPP_OSTREAM_ENABLED == 1 + sif::debug << std::hex << SystemObject::getObjectId() << ": invalid mode table entry" + << std::endl; +#endif + } + } void AssemblyBase::triggerModeHelperEvents(Mode_t mode, Submode_t submode) {