     
     if workers.isEmpty {
       // Only show an error if we found nothing
-      if request.trips.isEmpty, let error = self.lastWorkerError {
-        completion(.failure(error))
-      } else {
-        completion(.success(request))
+      request.context?.perform {
+        if request.trips.isEmpty, let error = self.lastWorkerError {
+          completion(.failure(error))
+        } else {
+          completion(.success(request))
+        }
       }
     }
   }

  }
  
  public func cancelRequests() {
    workers.map(\.value).forEach { $0.cancelRequests() }
    self.workers = [:]
    self.finishedWorkers = 0

  private var lastWorkerError: Error? = nil
  private var workers: [Set<String>: TKRouter] = [:]
  private var finishedWorkers: UInt = 0
  private var workerQueue: DispatchQueue?
  
  /// The main method to call to have the router calculate trips.
  /// - Parameters:
