uploadMedia() had no content-type check, so an HTML login-redirect response from an auth-protected internal endpoint was uploaded to Bluesky as a blob with encoding "text/html". uploadBlob() accepts it, but record validation rejects the post with 'Expected "image/*" (got "text/html")'. The patch mirrors the guard already present in uploadImageFromUrl() and also wraps per-photo uploads in try/catch so one bad photo doesn't abort the entire syndication — other photos and the post text are still published. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
7.8 KiB
7.8 KiB