{"record":{"id":"92441f45b0a9d85d","repo":"ruvnet/ruflo","slug":"task-queue-is-full","errorCode":null,"errorMessage":"Task queue is full","messagePattern":"Task queue is full","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/plugins/src/workers/index.ts","lineNumber":404,"sourceCode":"    await worker.terminate();\n    this._workers.delete(workerId);\n    this.poolMetrics.totalWorkers--;\n\n    if (worker.status === 'idle') {\n      this.poolMetrics.idleWorkers--;\n    } else if (worker.status === 'busy') {\n      this.poolMetrics.activeWorkers--;\n    }\n  }\n\n  async submit(task: WorkerTask): Promise<WorkerTaskResult> {\n    // Find available worker\n    const worker = this.getAvailableWorker();\n\n    if (!worker) {\n      // Queue the task if no worker available\n      if (this.taskQueue.length >= this.config.taskQueueSize) {\n        throw new Error('Task queue is full');\n      }\n\n      return new Promise((resolve, reject) => {\n        this.taskQueue.push(task);\n        this.poolMetrics.queuedTasks++;\n\n        // Wait for worker to become available\n        const checkWorker = setInterval(() => {\n          const available = this.getAvailableWorker();\n          if (available) {\n            clearInterval(checkWorker);\n            const idx = this.taskQueue.indexOf(task);\n            if (idx !== -1) {\n              this.taskQueue.splice(idx, 1);\n              this.poolMetrics.queuedTasks--;\n            }\n            this.executeOnWorker(available, task).then(resolve).catch(reject);\n          }","sourceCodeStart":386,"sourceCodeEnd":422,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/plugins/src/workers/index.ts#L386-L422","documentation":"WorkerPool.submit found no available worker and the fallback task queue already holds taskQueueSize entries. Both the worker pool and its overflow buffer are saturated, so the new task cannot be accepted and backpressure is surfaced to the caller immediately.","triggerScenarios":"A task is enqueued when the worker task queue has reached its capacity.","commonSituations":"Producers enqueue faster than workers drain, or queue capacity configured too small.","solutions":["Apply backpressure: wait or retry when the queue is full.","Increase queue capacity or add workers to drain faster.","Shed low-priority load when the queue saturates."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}