This commit is contained in:
@@ -42,6 +42,7 @@ function classifyAccountFailure(error) {
|
||||
const cooldownPatterns = [
|
||||
/\b429\b|rate[- ]?limit|too many requests/i,
|
||||
/quota|not enough (disk )?(space|storage)|insufficient (disk )?space/i,
|
||||
/maximum storage space of the account (?:used up|reached|exceeded)/i,
|
||||
/disk (space )?full|storage (exhausted|full|voll|limit)|account (full|voll)/i,
|
||||
/session (expired|abgelaufen)|CSRF[- ]?Token nicht gefunden|not logged in/i,
|
||||
/Keine Session erhalten|Session konnte nicht verifiziert werden/i,
|
||||
|
||||
@@ -230,8 +230,8 @@ class UploadManager extends EventEmitter {
|
||||
_shouldSkipRetryOnAccountError(err) {
|
||||
if (!err) return false;
|
||||
if (err.transientNetwork === true) return false;
|
||||
// Explicit account-level flag from hoster parsers — highest priority.
|
||||
if (err.accountError === true) return true;
|
||||
if (classifyAccountFailure(err) !== 'none') return true;
|
||||
if (!err.message) return false;
|
||||
const m = String(err.message);
|
||||
const PATTERNS = [
|
||||
@@ -1109,6 +1109,13 @@ class UploadManager extends EventEmitter {
|
||||
if (this._isFileRejectedError(err)) break;
|
||||
if (this._isHosterTransientError(err)) break;
|
||||
if (this._isTransientNetworkError(err)) break;
|
||||
if (this._shouldSkipRetryOnAccountError(err)) {
|
||||
this._rotLog('fast-fail', {
|
||||
jobId, hoster: task.hoster, fileName, accountId: task.accountId,
|
||||
attempt, error: err && err.message ? err.message : String(err), rotationRetry: true
|
||||
});
|
||||
break;
|
||||
}
|
||||
if (attempt >= maxAttempts) break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user