 	_checkFileIsSafe: (src, callback = (error, isSafe) ->) ->
 		# check if we have a valid file to copy into the cache
 		fs.stat src, (err, stats) ->
-			if err?
-				# some problem reading the file
+			if err?.code is 'ENOENT'
+				logger.warn err: err, file: src, "file has disappeared before copying to build cache"
+				callback(err, false)
+			else if err?
+				# some other problem reading the file
 				logger.error err: err, file: src, "stat error for file in cache"
 				callback(err, false)
 			else if not stats.isFile()

			return callback(null, true)
		if Settings.clsi?.archive_logs and Path.basename(src) in ["output.log", "output.blg"]
			return callback(null, true)
		return callback(null, false)
	_copyFile: (src, dst, callback) ->
		# copy output file into the cache
		fse.copy src, dst, (err) ->
			if err?.code is 'ENOENT'
				logger.warn err: err, file: src, "file has disappeared when copying to build cache"
				callback(err, false)
			else if err?
				logger.error err: err, src: src, dst: dst, "copy error for file in cache"
				callback(err)
			else
