Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If any tapes are deleted while the yakbak server is running with the intention of refreshing them, subsequent requests for that tape will result in retrieving the cached tape module instead of re-recording. This is because require.resolve does not throw an error even if the tape file doesn't exist and the tape module was cleared from the require.cache. It successfully resolves the tape file and doesn't throw any error. This, however, causes the require to be called which then throws a file not found error.
A simple fix is to check if the file exists post-request.resolve and to throw a MODULE_NOT_FOUND exception if it doesn't which causes control to pass into the catch(ModuleNotFoundError, ...) block, and the request to be re-recorded.