@startuml skinparam BackgroundColor F0F0F0 participant "Service Cellular" as srvclr participant "Application Manager" as appmgr participant "ApplicaionDesktop" as appdsktp participant "PinLockWindow" as pinwin actor User == Unhandled CME Error flow == [o->srvclr : CME error occured activate srvclr srvclr -> srvclr : handle(Error) -> unable to handle srvclr -> appmgr : ActionMessage{UnhandledCMEError, {cmeCode}} via sys::bus message activate appmgr deactivate srvclr appmgr -> appmgr : translate request to action appmgr -> appdsktp : forward action activate appdsktp deactivate appmgr appdsktp -> appdsktp : handle(UnhandledCMEAction) appdsktp -> pinwin ** : switchWindow(UnhandledCMEError, cmeCode) activate pinwin deactivate appdsktp pinwin -> pinwin : setVisibleCMEError pinwin <- User : Confirm appdsktp <- pinwin : return activate appdsktp deactivate pinwin note over srvclr, appdsktp #FFAAAA from this point, further flow depends on specific context in which CME occurred end note @enduml