What it checks
The platform’s publish path requires a URL — Meta’s create-container flow, Pinterest’s pin creation — and the request suppliedbytesBase64 instead.
We could buffer + upload to a temp URL on the fly, but that path has had enough surprise failures (timeouts, signed URL expiry) that we make the caller do it explicitly.
Remediation
Upload viaPOST /v1/media and use the returned mediaId. Inline bytes work fine for Bluesky and Twitter; the URL-only platforms route through media first.
