No need to reply if you're within an hour of your original post - you have a one-hour window to edit it :)
Anyway, I think this is because you're assigning the task to a let but you haven't provided a type, and because the completion handler returns three different things, the type it returns will be ambiguous.
If you don't need to do anything with task later on (which it doesn't look like you do in your code), you can ignore the let, i.e. just use:
URLSession.shared.dataTask(with: url) {(data, response, error) in
...
}.resume()
Topic:
App & System Services
SubTopic:
Networking