title: Node Js: Redis job is not completing after finish its task
body: <p>Hope you guys are doing great.</p>
  <p>I implemented BullMQ (next major version of Bull) into my nodejs project to schedule the jobs to send emails. For example, send email of forget password request. So, I have written my code something like below.</p>
  <p><strong>User Service:</strong></p>
  <pre><code>await resetPasswordJob({email: 'xyz@test.com'});       // from service I'm calling a job
  </code></pre>
  <p><strong>Reset Password Job:</strong></p>
  <pre><code>const {Queue} = require('bullmq');
  const IOredis = require('ioredis');
  
  const connection = new IOredis(process.env.REDIS_PORT || 6379);
  const resetPasswordResolver = require('../resolvers/resetPasswordResolver');
  
  const resetPasswordJob = async (payload) =&gt; {
    const queue = new Queue('default', {connection});        // 'default' is queue name
  
    // Added below line, because I was getting this issue sometime
    // &quot;MaxListenersExceededWarning: Possible EventEmitter memory leak detected.&quot;
    queue.setMaxListeners(queue.getMaxListeners() + 1); 
        
    await queue.add('resetPassword', payload, {
      removeOnFail: true,
      removeOnComplete: true,
    });               // 'resetPassword' is job name
  
    const worker = new Worker('default', async (job) =&gt; 
       await resetPasswordResolver(job.data)
    );
    worker.on('completed', (job) =&gt; {
      console.log(`Worker Mesg: ${job.id} has completed.`);
      done();
    });
    worker.on('failed', (job, err) =&gt; {
      console.log(
        `Worker Mesg: ${job.id} has failed with ${err.message}!`
      );
      done();
    });
  };
  
  module.exports = resetPasswordJob;
  </code></pre>
  <p><strong>Reset Password Resolver:</strong></p>
  <pre><code>const sendMail = require('../../utils/sendMail');
  
  const resetPasswordMailResolver = async (payload) =&gt; {
    const body = `&lt;html&gt;Some html email template here&lt;/html&gt;`;
    await sendMail({to: payload.email, subject: 'Reset your account password', body: body});
  
    return {};
  };
  
  module.exports = resetPasswordMailResolver;
  </code></pre>
  <p>But the problem is, if I execute this once and try to execute some other job, that time this job is only executing, no the latest one. And getting a error message in console:</p>
  <pre><code>Worker Mesg: 7 has completed.
  Error: Missing lock for job 7 failed
      at Function.finishedErrors (/home/admini/Documents/node-project/node_modules/bullmq/dist/classes/scripts.js:135:24)
      at Job.moveToFailed (/home/admini/Documents/node-project/node_modules/bullmq/dist/classes/job.js:197:41)
      at processTicksAndRejections (internal/process/task_queues.js:93:5)
      at async handleFailed (/home/admini/Documents/node-project/node_modules/bullmq/dist/classes/worker.js:207:17)
      at async Worker.run (/home/admini/Documents/node-project/node_modules/bullmq/dist/classes/worker.js:90:33)
  </code></pre>
  <p>I'm not able to find any concrete solution for this bug. Please help me out.</p>
  <p>Thank you guys!</p>