diff --git a/index.js b/index.js
index <HASH>..<HASH> 100644
--- a/index.js
+++ b/index.js
@@ -162,7 +162,11 @@ function run (zalgo, paths, salt) {
 }
 
 module.exports = (paths, salt) => {
-  return run(releaseZalgo.async(), paths, salt)
+  try {
+    return run(releaseZalgo.async(), paths, salt)
+  } catch (err) {
+    return Promise.reject(err)
+  }
 }
 module.exports.sync = (paths, salt) => {
   const result = run(releaseZalgo.sync(), paths, salt)
diff --git a/test/async.js b/test/async.js
index <HASH>..<HASH> 100644
--- a/test/async.js
+++ b/test/async.js
@@ -63,7 +63,7 @@ test('can be called with a file', async t => {
   ['a function', () => {}]
 ].forEach(([label, salt]) => {
   test(`salt cannot be ${label}`, async t => {
-    const err = await t.throws(() => async(projectDir, salt), TypeError)
+    const err = await t.throws(async(projectDir, salt), TypeError)
     t.is(err.message, 'Salt must be an Array, Buffer, Object or string')
   })
 })
Return rejected promise from async method on failure