     return callback() unless ids and Array.isArray ids
     ideally = errify callback
 
-    multi = (["keys", "bull:*:#{id}"] for id in ids)
-    await (@redis.multi multi).exec ideally defer arrayOfArrays
-    result = (array[0] for array in arrayOfArrays when array.length is 1)
-    callback null, result
+    keys = []
+    for id in ids
+      await @scanRedis "bull:*:#{id}", ideally defer keymatches
+      keys = keys.concat keymatches
+
+    callback null, keys
 
   #Returns all jobs in object form, with state applied to object. Ex: {id: 101, queue: "video transcoding", state: "pending"}
   formatJobs: (queue = "*", keys, callback) ->


    callback null, stuck

  #Returns all JOB keys in string form (ex: bull:video transcoding:101)
  allKeys: (queue = "*", callback) ->
    ideally = errify callback

    await @redis.keys "bull:#{queue}:[0-9]*", ideally defer jobsWithLocks
    result = (jobWithLock for jobWithLock in jobsWithLocks when jobWithLock[-5..] isnt ":lock")
    callback null, result

  listsByState: (queue = "*", state, callback) ->
    @redis.keys "bull:#{queue}:#{state}", callback

  #Returns the job data from a list of job ids
  fullKeysForList: (list, callback) ->

    ideally   = errify callback
    allCounts = []

    await @scanRedis "bull:*:id", ideally defer queues
    for queue, i in queues
      name = queue[5..-4]
      await @stateCounts name, ideally defer allCounts[i]
