https://medium.com/@maxheadway/how-to-use-the-cause-property-of-an-error-object-in-javascript-8fab70decc98