From 0d9d7a29717f6dc5223826501f123b07c87ef052 Mon Sep 17 00:00:00 2001 From: Martin Porwoll Date: Sun, 1 Mar 2026 10:23:00 +0000 Subject: [PATCH] fix: user-friendly error messages for rate limit and auth errors Show German messages with retry time for 429 and helpful guidance for 401 instead of raw API error JSON. Co-Authored-By: Claude Opus 4.6 --- src/telegram/handlers.ts | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/telegram/handlers.ts b/src/telegram/handlers.ts index 10d0b4f..e91b954 100644 --- a/src/telegram/handlers.ts +++ b/src/telegram/handlers.ts @@ -129,12 +129,21 @@ async function processUpload( } catch (error) { const errMsg = error instanceof Error ? error.message : 'Unbekannter Fehler'; log.error(`Upload failed for ${filename}`, error); - await ctx.api.editMessageText( - ctx.chat!.id, - statusMessageId, - `\u274c Upload fehlgeschlagen: ${escapeMarkdown(errMsg)}`, - { parse_mode: 'MarkdownV2' }, - ); + + let userMsg: string; + if (errMsg.includes('429') || errMsg.includes('RATE_LIMITED')) { + const match = errMsg.match(/"retryAfter":(\d+)/); + const secs = match ? match[1] : '60'; + userMsg = `\u23f3 Server\\-Rate\\-Limit erreicht\\. Bitte warte ${secs} Sekunden und versuche es dann erneut\\.`; + } else if (errMsg.includes('401') || errMsg.includes('incorrect')) { + userMsg = `\u274c Anmeldung am CMS fehlgeschlagen\\. Bitte den Admin kontaktieren\\.`; + } else { + userMsg = `\u274c Upload fehlgeschlagen: ${escapeMarkdown(errMsg)}`; + } + + await ctx.api.editMessageText(ctx.chat!.id, statusMessageId, userMsg, { + parse_mode: 'MarkdownV2', + }); } }