From 4730267c2aa4e5d776a5c397299ba82e41f85eee Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 26 Dec 2025 13:10:54 +0100 Subject: [PATCH] fix(sweetistics): improve media upload errors --- src/index.ts | 6 ++++++ src/lib/sweetistics-client.ts | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index dec6ef4..3644765 100644 --- a/src/index.ts +++ b/src/index.ts @@ -277,6 +277,9 @@ program process.exit(1); } catch (error) { console.error(`❌ Sweetistics error: ${error instanceof Error ? error.message : String(error)}`); + if (error instanceof Error && /(^|\\b)INTERNAL_ERROR(\\b|$)|An unexpected error occurred/.test(error.message)) { + console.error('ℹ️ Hint: Sweetistics media upload likely needs Twitter OAuth with `media.write` scope.'); + } process.exit(1); } } @@ -401,6 +404,9 @@ program process.exit(1); } catch (error) { console.error(`❌ Sweetistics error: ${error instanceof Error ? error.message : String(error)}`); + if (error instanceof Error && /(^|\\b)INTERNAL_ERROR(\\b|$)|An unexpected error occurred/.test(error.message)) { + console.error('ℹ️ Hint: Sweetistics media upload likely needs Twitter OAuth with `media.write` scope.'); + } process.exit(1); } } diff --git a/src/lib/sweetistics-client.ts b/src/lib/sweetistics-client.ts index 3d89fc9..354eb61 100644 --- a/src/lib/sweetistics-client.ts +++ b/src/lib/sweetistics-client.ts @@ -498,9 +498,12 @@ export class SweetisticsClient { : undefined; const errorMessage = typeof (body as { error?: unknown })?.error === 'string' ? (body as { error: string }).error : undefined; + const errorCode = + typeof (body as { code?: unknown })?.code === 'string' ? (body as { code: string }).code : undefined; if (!response.ok || !mediaId) { - return { success: false, error: errorMessage ?? `HTTP ${response.status}` }; + const details = [errorCode, errorMessage].filter(Boolean).join(': '); + return { success: false, error: details.length > 0 ? details : `HTTP ${response.status}` }; } return { success: true, mediaId }; } catch (error) {