try { fse.removeSync('/directory/that/does/not/exist/index.js'); } catch (error) { //no exception will be thrown } Similarly, fse.remove('/directory/that/does/not/exist/index.js', function(error) { //error is null console.error(error); }); fse version 0.26.5 Is it expected behavior? Otherwise, I can help fixing it.