Recover from API errors

- Replace async with Q
- Q makes it easier to detect API errors