As you can see in the documentation, func request(_ request: DataRequest, didParseResponse response: DataResponse<Data?, AFError>) is called when a response is not serialized with using a ResponseSerializer, while request<Value>(_ request: DataRequest, didParseResponse response: DataResponse<Value, AFError>) is called when a ResponseSerializer is used. You shouldn't be receiving both unless you're using both types of response handler.