Fix handling of older browsers

- console guards
- promise.catch -> promise.otherwise