GitHubLog in
Start here

not_public · 4006 · HTTP 422

Instagram returned no media for this post to a logged-out viewer: it is private, removed, or restricted to logged-in users. Audio transcription retries it once on a fresh connection before reporting this; a later request rarely changes the answer.

Number4006
HTTP status422Unprocessable Entity
Familycontent4xxx · the media has no transcript to give

Example response

JSON
{
  "ok": false,
  "request_id": "req_…",
  "error": {
    "code": "not_public",
    "number": 4006,
    "message": "Instagram returned no media for this post to a logged-out viewer: it is private, removed, or restricted to logged-in users. Audio transcription retries it once on a fresh connection before reporting this; a later request rarely changes the answer.",
    "docs": "https://transcriptfetch.com/docs/errors/not_public"
  }
}

Every failure carries error.code, error.number, error.message and error.docs, plus at most one of retry_with (the request change that would succeed), details (structured specifics) or issues (validation problems).

What it means

Not public. Instagram returned no media for this post to a logged-out viewer: it is private, removed, or restricted to logged-in users. Audio transcription retries it once on a fresh connection before reporting this; a later request rarely changes the answer.

Shown to end users as: “Instagram isn't showing this post publicly. It may be private, removed or restricted to logged-in users.”

Why it happens

  • Instagram returned no media for this post to a logged-out viewer. The post is private (or its account is), was removed, or is restricted to logged-in users.
  • Less often, Instagram briefly refuses logged-out access to a post that is public. Audio transcription already retries once on a fresh connection before answering with this code.

What to do

  • Open the post in a private browser window without logging in. If Instagram asks you to log in or says the post isn't available, it cannot be fetched.
  • Do not retry in a loop. If the post does open logged out, one retry a few minutes later is reasonable. Failed requests are never charged.
Retryable? Rarely usefully. Retrying in a loop returns the same answer; a single retry minutes later occasionally works for a post that opens in a logged-out browser. Every error response carries a request_id; include it when contacting support.