Tx power level change not reflected in Tx Power Service

I am changing the Tx power successfully with sd_ble_gap_tx_power_set().  I can see the RSSI value change Nordic Connect to confirm that it really is changing.  But I also have the TX Power Service enabled and do not see the power level updating in its characteristic.  Should that update automatically?  It doesn't.  So I tried using ble_tps_tx_power_level_set() to get the service characteristic value to match, but that always crashes.  Here's my code:

void tx_power_set(int8_t tx_power_level)
    ret_code_t err_code = sd_ble_gap_tx_power_set(BLE_GAP_TX_POWER_ROLE_ADV, m_advertising.adv_handle, tx_power_level);
    err_code = ble_tps_tx_power_level_set(&m_tps, tx_power_level);