If the notification is deleted from the hash, when the notification::id is called later by finish, it could contain anything.
Change the order, call finish with a valid notification pointer before removing the notification from the hash.
BUG: 398695