diff --git a/src/services/covers.js b/src/services/covers.js index 18d26c4..d2b497d 100644 --- a/src/services/covers.js +++ b/src/services/covers.js @@ -357,10 +357,22 @@ async function generateCover({ articleId, title, tags = [], channelId = null }) let img; let usedPath = 'images-generations'; - // Цепочка: 1) aiguoguo /images/generations → 2) aiprimetech /responses → 3) legacy → 4) local SVG + // Цепочка: 1) aiguoguo /images/generations (2 попытки) → 2) aiprimetech /responses → 3) legacy → 4) local SVG try { try { - img = await generateCoverViaImageGenerations({ prompt }); + try { + img = await generateCoverViaImageGenerations({ prompt }); + } catch (err) { + // Ретрай только при временных ошибках провайдера (5xx) + const status = err.response?.status; + if (status >= 500 && status < 600) { + console.warn(`[Cover] /images/generations ${status} — retry in 12s...`); + await new Promise(r => setTimeout(r, 12000)); + img = await generateCoverViaImageGenerations({ prompt }); + } else { + throw err; + } + } } catch (err) { console.warn(`[Cover] /images/generations failed: ${(err.response?.data?.error?.message || err.message).slice(0, 150)}`); try {