Download individual iCloud file with progress callback

Is this possible and how? I've only seen examples about using NSMetadataQuery to search directories for files matching some predicate. I tried using this code

let query = NSMetadataQuery()
query.valueListAttributes = [NSMetadataUbiquitousItemPercentDownloadedKey]
query.predicate = NSPredicate(value: true)
let item = NSMetadataItem(url: url)!
query.searchItems = [item]
NotificationCenter.default.addObserver(forName: .NSMetadataQueryDidUpdate, object: query, queue: nil) { notification in
    print(notification)
}
NotificationCenter.default.addObserver(forName: .NSMetadataQueryDidFinishGathering, object: query, queue: nil) { notification in
    print(notification)
}
query.start()

but this gives the following exception

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unknown kind of NSPredicate given to NSMetadataQuery (TRUEPREDICATE)'

Without any predicate the query doesn't seem to start at all, like mentioned in the official documentation.

Download individual iCloud file with progress callback
 
 
Q