Automation to disarm alarm doesn't work with code required

I have an automation that turns off the alarm when my wife or I are at home and the alarm goes from armed_home to pending

- id: '1534989005909'
  alias: Auto alarm disarm if we are home
  trigger:
  - entity_id: alarm_control_panel.ha_alarm
    from: armed_away
    platform: state
    to: pending
  condition:
  - condition: state
    entity_id: binary_sensor.someone_home
    state: 'on'
  action:
  - data:
      entity_id: alarm_control_panel.ha_alarm
    service: alarm_control_panel.alarm_disarm

This was working well until I changed my alarm to require a code to disarm. This feature was added in V0.95.0

alarm_control_panel:
 - platform: manual_mqtt
   code: ****
   code_arm_required: false
   state_topic: home/alarm
   command_topic: home/alarm/set
   pending_time: 0
   delay_time: 0
   trigger_time: 4
   disarmed:
     trigger_time: 0
   armed_home:
     pending_time: 5
     delay_time: 5
   armed_away:
     pending_time: 60
     delay_time: 20

If I comment out the code portion…

alarm_control_panel:
 - platform: manual_mqtt
   #code: ****
   #code_arm_required: false
   state_topic: home/alarm
   command_topic: home/alarm/set
   pending_time: 0
   delay_time: 0
   trigger_time: 4
   disarmed:
     trigger_time: 0
   armed_home:
     pending_time: 5
     delay_time: 5
   armed_away:
     pending_time: 60
     delay_time: 20

The automation works. Do I need to change my automation to include the code? Or is this a bug?

yes you need to add the code in your automation:

    - service: alarm_control_panel.alarm_disarm
      entity_id: alarm_control_panel.ha_alarm
      data:
        code: !secret alarm_code

Thanks! That worked!

Thanks. Feel free to mark it as a solution so others know where to look