You can easy endup with endless redirection cycle: your site <=> paypal site.  User could visit paypal side and click cancel (before he login). In this case you come back with:

* PAYERID - null
* CHECKOUTSTATUS - NOT_INITIATED

Such combination [must be treated](https://github.com/Payum/PaypalExpressCheckoutNvp/blob/master/src/Payum/Paypal/ExpressCheckout/Nvp/Action/PaymentDetailsStatusAction.php#L41) as canceled (Paypal has to be more clear on such case but it is not).

If he login and click cancel after you will have [PAYERID and L_ERRORCODE both set correctly](https://github.com/Payum/PaypalExpressCheckoutNvp/blob/master/src/Payum/Paypal/ExpressCheckout/Nvp/Action/PaymentDetailsStatusAction.php#L25).