add wps.cancel function and pass error message back to callback