I had configured SHM for leaks but not for security. As you suggested I configured SHM Security and now the actions show up. Thank you.
BTW, it seems a bit inconsistent that SHM security needs to configured for SHM states Arm (Away)/Arm (Stay)/Disarm to show up as actions but these states are available as conditions even without configuring SHM security. Either they should always be available as conditions/actions independent of configuring SHM security. Or both conditions/actions should be unavailable if SHM security is not configured.
This is just a guess as to why it behaves the way that you’ve described.
But I believe SHM functions like a parent-child smartapp. The part of the smartapp that allows you to actually setup the sensors and actions for an armed state is the parent. Once you actually setup the sensors and actions for an armed state, you create the child component of the smartapp.
Perhaps the condition in the routine is looking for the parent component of SHM (which is always there). But the action in the routine is looking for the child component (which is only there if you set it up in SHM first)?