probably because requires_grad has changed the gradient flow through action log probability.
BTW:
reward_list = torch.tensor(reward_list, requires_grad = True)    

There is no need to add requires_grad here