If you enable vxml trace and show xml root in the ddrt.properties and run the application. Look at the vxml generated.
showxml=enabled
showxmlroot=always
132:<property name="interdigittimeout" value="3s" />
133:<property name="termtimeout" value="1s" />
134:<property name="termchar" value="#" />
135:<catch event="connection.disconnect">
136:<var name="avayadonotsave___noinputcount" expr="try {_avayaNoinputCounter} catch (errMsg) {'0'}"/>
137:<var name="avayadonotsave___nomatchcount" expr="try {_avayaNomatchCounter} catch (errMsg) {'0'}"/>
138:<submit next="Chk_DB_UpdatedOrNot?___DDSESSIONID=1A927DF12054160CF2A0ABCA46F0408C%3A%2FGreeterPOMSurveyIVR" namelist="avayadonotsave___noinputcount avayadonotsave___nomatchcount" method="get"/>
139:</catch>
140:<meta name="marker" content="Avaya Aura Orchestration Designer Root End"/>
141:<form id="DisconnectCall">
142:<block>
143:<disconnect/>
144:</block>
145:<catch event="connection.disconnect">
146:<var name="avayadonotsave___noinputcount" expr="try {_avayaNoinputCounter} catch (errMsg) {'0'}"/>
147:<var name="avayadonotsave___nomatchcount" expr="try {_avayaNomatchCounter} catch (errMsg) {'0'}"/>
148:<submit next="End?___DDSESSIONID=1A927DF12054160CF2A0ABCA46F0408C%3A%2FGreeterPOMSurveyIVR" namelist="avayadonotsave___noinputcount avayadonotsave___nomatchcount" method="get"/>
149:</catch>
150:</form>
151:</vxml>
152:
You can see that the disconnect node generates it own handler for disconnect that overrides the app root one.