diff --git a/lib/upload-manager.js b/lib/upload-manager.js index b4dfdd8..247c61f 100644 --- a/lib/upload-manager.js +++ b/lib/upload-manager.js @@ -243,6 +243,18 @@ class UploadManager extends EventEmitter { return; } + // If this account already failed in this batch, switch to fallback immediately + // instead of wasting retries on a known-bad account + if (task.accountId && this._failedAccounts.has(task.hoster + ':' + task.accountId)) { + const override = this._accountOverrides.get(task.hoster); + if (override && !this._failedAccounts.has(task.hoster + ':' + override.id)) { + task.accountId = override.id; + task.username = override.username; + task.password = override.password; + task.apiKey = override.apiKey; + } + } + this._emitProgress(uploadId, fileName, task.hoster, { jobId, status: 'queued',