The slots that are set in the 'custom actions' and 'flows' are being reset after the flow ends

I’m trying out Rasa_Pro developer edition. During the flow, i’m setting few of the slots within the flow. A small example section is given below.

    next:
      - if: slots.ship_to_address_correct_or_not
        then: 
          - set_slots:
              - RMA_for_creation: true
            next: ask_for_rma_creation
      - else: 
          - set_slots:
              - ship_to_address: null
              - RMA_for_creation: false
          - collect: ship_to_address
            ask_before_filling: true
            reset_after_flow_ends: false
            next: ask_for_rma_creation
  - id: ask_for_rma_creation

Also i’m using custom actions to set few of the slots by defining the variable in the custom action and returning the output using below line.

return [SlotSet(“ship_to_address”, ship_to_address)]

For some reason, few of the slots set like this tends to reset after the flow ends which is not desirable in my use case. Please help me out. The below mentioned is the relevant Tracker State :

- user: |-
      Yes
    commands:
    - name: final_confirmation
      value: 'True'
      command: set slot
  - slot_was_set:
    - final_confirmation: true
  - stack:
    - op: replace
      path: /1/step_id
      value: start
  - action: action_run_slot_rejections
  - stack:
    - op: replace
      path: /1/step_id
      value: 1_validate_{{context.collect}}
  - stack:
    - op: replace
      path: /1/step_id
      value: END
  - stack:
    - op: remove
      path: /1
  - stack:
    - op: replace
      path: /0/step_id
      value: 42_utter_rma_is_requested
  - action: utter_rma_is_requested
  - stack:
    - op: replace
      path: /0/step_id
      value: END
  - stack:
    - op: remove
      path: /0/frame_type
    - op: add
      path: /0/previous_flow_name
      value: RMA Creation
    - op: replace
      path: /0/frame_id
      value: QVD42R3W
    - op: replace
      path: /0/step_id
      value: START
    - op: replace
      path: /0/type
      value: pattern_completed
    - op: replace
      path: /0/flow_id
      value: pattern_completed
  - slot_was_set:
    - confirm_part_number: null
  - slot_was_set:
    - do_you_want_to_upload_test_doc: null
  - slot_was_set:
    - doc_presence: null
  - slot_was_set:
    - doc_presence: null
  - slot_was_set:
    - special_instructions: null
  - slot_was_set:
    - still_want_to_continue: null
  - slot_was_set:
    - non_rep_outwarranty_continue: null
  - slot_was_set:
    - price_and_ETD_confirmation: null
  - slot_was_set:
    - ship_to_address_correct_or_not: null
  - slot_was_set:
    - ship_to_address: null
  - slot_was_set:
    - TC_Agreement: null
  - slot_was_set:
    - service_type: Repair
  - slot_was_set:
    - part_number: null
  - slot_was_set:
    - RMA_for_creation: null
  - slot_was_set:
    - ship_to_address: null
  - slot_was_set:
    - RMA_for_creation: null
  - stack:
    - op: replace
      path: /0/step_id
      value: 0_utter_can_do_something_else
  - action: utter_can_do_something_else
  - stack:
    - op: replace
      path: /0/step_id
      value: END
  - stack:
    - op: remove
      path: /0

Yes, that is by design. To have collected values persist after their flow completes, use the reset_after_flow_ends setting for the collect step, and set the value to false. For example:

- collect: "user_name"
  reset_after_flow_ends: false

More details at: