🐛 fix: account fallback now works for ALL files in batch, not just first
When Account A failed, only the first file got the fallback to Account B. All subsequent files in the same batch still tried Account A (wasting all retries), then skipped fallback because _failedAccounts already had the key. Now: before the retry loop, each job checks if its account is already known-failed and immediately switches to the fallback account, avoiding wasted retries on a known-bad account. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
f4073a7ada
commit
d538c7da4f
@ -243,6 +243,18 @@ class UploadManager extends EventEmitter {
|
|||||||
return;
|
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, {
|
this._emitProgress(uploadId, fileName, task.hoster, {
|
||||||
jobId,
|
jobId,
|
||||||
status: 'queued',
|
status: 'queued',
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user