This is the canonical translator for Instagram’s notoriousDocumentation Index
Fetch the complete documentation index at: https://docs.letmepost.dev/llms.txt
Use this file to discover all available pages before exploring further.
OAuthException 2207052. The upstream message is one of the most-cited opaque-rejection examples in the research that drove this product. We catch the platform’s response and remap to a useful rule + remediation.
What it checks
Themedia_url you sent (or the URL we built from your mediaId) must be publicly reachable from Meta’s servers. Specifically:
- It must respond
200to an anonymousGET(no cookies, no auth headers). - It must redirect cleanly (Meta does follow redirects, but private session-bound redirect URLs break this).
- It must serve the bytes — HTML preview pages don’t count.
- Google Drive share links. Drive returns an HTML preview page, not the bytes. Even “anyone with the link can view” links fail.
- Dropbox share URLs. Same shape — HTML page, not the asset.
- S3 buckets with object ACLs locked. Anonymous reads denied → 403 to Meta.
- CDNs requiring an auth token. Meta isn’t going to send your token.
Why it’s caught here, not in static preflight
We can’t verify URL reachability without an HTTP request — and we don’t HEAD third-party URLs from the API hot path. Instead we run an active probe inside the meta client: when Meta returnsOAuthException 2207052, we map it to this rule and surface the remediation. The user-visible flow is identical — same rule id, same remediation — but the check happens at upstream-call time rather than statically.
Reproducing it
reproduce.json
error.json
Remediation
The reliable path is to upload the file viaPOST /v1/media and reference the returned mediaId:
remediation.sh
curl -I from a clean machine — no cookies, no auth headers — and confirm Content-Type is the actual image and the response is 200, not a redirect to an HTML preview.
Upstream documentation
The 2207052 subcode is documented in Meta’s Instagram Content Publishing API error reference. Meta’s documented remediation is “ensure the URL is publicly accessible,” with no further detail. We translate that to the specific failure modes we’ve seen in production.Related
instagram.media.required— IG has no text-only post surface.instagram.media.mime_allowed— JPEG-only on the photo path.- Media — the full guide on the three media-source modes.