As I mentioned at https://github.com/nock/nock/issues/1515#issuecomment-488314480, [Got automatically retries failed requests twice](https://github.com/sindresorhus/got#retry). That means if you have a test which mocks a 4xx or 5xx response, got will immediately reissue it. At that point, the mock will have been consumed. The test will error out with `Nock: No match for request`. Adding `{ retry: 0 }` to the `got` calls will disable this behavior, and will make the tests behave less confusingly. As I also mentioned in that thread: > While automatic retrying may be nice in certain cases, it is unsuited to testing. I am not convinced it is a good default. We should [use `got.extend()` to set defaults](https://github.com/sindresorhus/got#gotextendoptions) that turn off this behavior.