diff --git a/index.js b/index.js
index 5968fcf47b69094993b0f861c03f5560e4a6a9b7..0fe16d4f40612c0abfa57898909ce0083f56944c 100644
--- a/index.js
+++ b/index.js
@@ -56,19 +56,23 @@ function getOptionsWithDefaults (options, manifest) {
 async function spawnWithLogging (options, command, args, allowFail) {
   return new Promise((resolve, reject) => {
     logger(`$ ${command} ${args.join(' ')}`)
+    const output = []
     const child = childProcess.spawn(command, args, { cwd: options['working-dir'] })
     child.stdout.on('data', (data) => {
+      output.push(data)
       logger(`1> ${data}`)
     })
     child.stderr.on('data', (data) => {
+      output.push(data)
       logger(`2> ${data}`)
     })
     child.on('error', (error) => {
+      logger(`error - ${error.message} ${error.stack}`)
       reject(error)
     })
     child.on('close', (code) => {
       if (!allowFail && code !== 0) {
-        reject(new Error(`${command} failed with status code ${code}`))
+        reject(new Error(`${command} ${args.join(' ')} failed with status code ${code} ${output.join(' ')}`))
       }
       resolve(code === 0)
     })
