> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Crawler de mídia da Meta bloqueado (Instagram / Threads)

> Corrija o erro 479 quando o robots.txt ou um WAF bloqueia o crawler facebookexternalhit da Meta nas suas mídias do Instagram ou Threads, e teste o acesso com curl.

O código de erro **479** é o código dedicado e **não retentável** do Ayrshare retornado quando a Meta não consegue buscar sua URL de mídia, mais comumente porque o `robots.txt` ou uma regra de bloqueio de bots no seu servidor está negando o crawler (`facebookexternalhit`). Ele só é retornado depois que o fallback automático de nova hospedagem do Ayrshare também falhou, o que indica fortemente um bloqueio do lado do host ou uma origem inacessível.

Quando o Ayrshare publica no Instagram ou Threads, ele não simplesmente entrega sua URL para a Meta e desiste. O Ayrshare tenta buscar novamente de forma automática e, se a Meta ainda não conseguir acessar a mídia, **hospeda uma cópia na sua própria CDN** e pede que a Meta busque essa cópia. O código **479** significa que nem esse fallback conseguiu fazer a Meta buscar a mídia, então repetir a mesma requisição não vai ajudar até que o problema de hospedagem subjacente seja corrigido (`retryAvailable: false`, HTTP 400).

> [!NOTE]
>
> Esta página cobre falhas cuja mensagem de erro ou detalhes mencionam que a rede social não conseguiu baixar a mídia, geralmente referenciando `facebookexternalhit`, `robots.txt`, `"Restricted by robots.txt"`, `"HTTP error code 403"`, ou o subcódigo `2207052` da Meta. Para erros de proporção ou formato no código 138 do Instagram, consulte as [Diretrizes de Mídia do Instagram](https://www.ayrshare.com/docs/media-guidelines/instagram.md) ou as [Diretrizes de Mídia do Threads](https://www.ayrshare.com/docs/media-guidelines/threads.md) em vez disso.

## Sintoma

Quando o crawler está bloqueado, você verá erros como estes:

```json Error 479 (primary — dedicated, non-retryable) theme={"system"}
{
  "status": "error",
  "errors": [{
    "action": "post",
    "code": 479,
    "retryAvailable": false,
    "message": "The social network could not fetch the media from this URL, even after Ayrshare re-hosted it on its own CDN (Instagram/Meta subcode 2207052). Ensure the file is publicly reachable by Meta's crawlers (facebookexternalhit / Facebot) — check your robots.txt and any WAF/bot rules — not only in a browser. Retrying the same URL will not help until hosting is fixed.",
    "details": "Media download has failed.: The media could not be fetched from the provided URI. Restricted by robots.txt (HTTP error code 403). Meta subcode 2207052.",
    "platform": "instagram",
    "status": "error"
  }],
  "postIds": [],
  "id": "..."
}
```

```json Error 440 (transient ingestion — retryable) theme={"system"}
{
  "status": "error",
  "errors": [{
    "action": "post",
    "code": 440,
    "retryAvailable": true,
    "message": "The social network could not ingest the media in time. This is usually transient (for example Meta subcode 2207032 'download too slow' or 2207003 'create media fail'). Retry the post.",
    "details": "Media download has failed.: Media download took too long / could not create media...",
    "platform": "instagram",
    "status": "error"
  }],
  "postIds": [],
  "id": "..."
}
```

```json Instagram Error 138 (fallback — less specific upstream response) theme={"system"}
{
  "status": "error",
  "errors": [{
    "retryAvailable": true,
    "status": "error",
    "code": 138,
    "details": "Media download has failed.: The media could not be fetched from the provided URI. Video download failed with: HTTP error code 403. Restricted by robots.txt",
    "action": "post",
    "platform": "instagram",
    "message": "Instagram Error: Instagram cannot process your post at this time. Please try your post again."
  }],
  "postIds": [],
  "id": "..."
}
```

```json Threads Error 379 theme={"system"}
{
  "status": "error",
  "errors": [{
    "status": "error",
    "code": 379,
    "message": "Error posting to Threads.",
    "action": "post",
    "platform": "threads"
  }],
  "postIds": [],
  "id": "..."
}
```

> [!NOTE]
>
> Entendendo a divisão entre esses códigos:
>
> <ul>
>   <li>**Código 479: busca de mídia / bloqueio do crawler dedicado (não retentável).** Este é o código da falha tratada nesta página. Ele é retornado com `retryAvailable: false` quando a Meta não conseguiu buscar a mídia (subcódigo `2207052` ou um padrão de texto de busca de mídia) **mesmo depois que o Ayrshare a hospedou na sua própria CDN**. Sua mensagem nomeia explicitamente `facebookexternalhit` / `Facebot` e `robots.txt`; se você vir 479, está na página certa. Corrija a hospedagem antes de tentar novamente.</li>
>   <li>**Código 440: ingestão transitória (retentável).** Agora usado para esgotamentos de ingestão realmente transitórios: subcódigos da Meta `2207032` ("download too slow") / `2207003` ("create media fail"), ou esgotamentos não classificados. Ele vem com `retryAvailable: true`; tente novamente via [`/post/retry`](https://www.ayrshare.com/docs/apis/post/retry-post).</li>
>   <li>**Código 138: fallback menos específico do Instagram.** Emitido pela mesma causa raiz quando a resposta upstream é menos específica. O 138 também é usado para problemas de proporção / formato, então a variante de busca de mídia é identificável por `"Restricted by robots.txt"` ou `"HTTP error code 403"` em `details`.</li>
>   <li>**Código 379: Threads.** Não inclui um campo `details`. Se o Threads falhar junto com um 479 ou 138 do Instagram, a causa raiz é normalmente a mesma.</li>
> </ul>

## Por que isso acontece

Quando você publica no Instagram ou Threads via Ayrshare, os servidores da Meta buscam sua mídia na URL que você fornece. Essa busca do lado do servidor usa o User-Agent `facebookexternalhit`. Se o `robots.txt` do seu servidor proibir esse crawler — ou uma regra de WAF/proteção contra bots o bloquear — a Meta não conseguirá baixar o arquivo e a publicação falhará.

A publicação em Facebook Pages usa um caminho de ingestão diferente, e é por isso que a mesma `mediaUrl` pode funcionar no Facebook, mas falhar no Instagram e Threads.

## Correção: atualize seu robots.txt

### Recomendado: permita a Meta explicitamente, mantenha outros abertos

Adicione estas regras ao seu arquivo `robots.txt`:

```txt robots.txt theme={"system"}
User-agent: facebookexternalhit
Allow: /

User-agent: *
Allow: /
```

Isso permite explicitamente o crawler da Meta e mantém seu site aberto para outros crawlers (Google, Bing, etc.).

### Avançado: restrinja apenas aos publicadores sociais

Se você quiser bloquear a maioria dos crawlers, mas permitir plataformas de redes sociais:

```txt robots.txt theme={"system"}
User-agent: facebookexternalhit
Allow: /

User-agent: Twitterbot
Allow: /

User-agent: LinkedInBot
Allow: /

User-agent: Pinterest
Allow: /

User-agent: *
Disallow: /
```

> [!WARNING]
>
> Use um único bloco `User-agent: *`, colocado no final do arquivo. Crawlers compatíveis com a RFC 9309 mesclam vários grupos com curinga em um único, mas nem todo parser existente é compatível com a RFC — grupos com curinga duplicados são uma fonte comum de regras serem descartadas ou aplicadas de forma inconsistente.

## Verifique se a Meta consegue buscar sua URL

Antes de tentar novamente sua publicação, verifique se o crawler da Meta agora consegue acessar sua mídia. Execute este comando, substituindo `$URL` pela URL completa da sua mídia:

```bash theme={"system"}
curl -v --compressed -H "Range: bytes=0-524288" -H "Connection: close" \
  -A "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" \
  "$URL"
```

<ul>
  <li>**Resposta saudável:** HTTP 200 ou 206 com dados binários no corpo.</li>
  <li>**Resposta bloqueada:** HTTP 403 ou uma página de erro vazia/HTML.</li>
</ul>

> [!NOTE]
>
> De acordo com a documentação da Meta, alterações no `robots.txt` podem levar até 24 horas para se propagar pelo cache do crawler da Meta. Se a verificação for bem-sucedida, mas sua publicação ainda falhar, aguarde e tente novamente mais tarde.

## Se isso não resolver

Se você atualizou o `robots.txt` e verificou com o comando `curl`, mas ainda vê falhas:

<ul>
  <li>**Atraso de propagação de 24 horas** — A Meta armazena em cache o `robots.txt`. Aguarde até 24 horas após fazer alterações antes de tentar novamente.</li>
  <li>**Regras de WAF ou bot-fight** — O Cloudflare Bot Fight Mode, grupos de regras gerenciadas de bots do AWS WAF e serviços semelhantes podem bloquear as faixas de IP do crawler da Meta mesmo que o `robots.txt` permita. Verifique os logs do seu WAF e adicione uma exceção para `facebookexternalhit`.</li>
  <li>**Proteção contra hotlink / verificações de Referer** — Alguns CDNs bloqueiam requisições de IPs de data centers ou sem um cabeçalho `Referer` válido. Coloque o crawler da Meta na lista de permitidos ou desative a proteção contra hotlink para caminhos de mídia.</li>
  <li>**Expiração de URL assinada / presigned URL** — Se sua URL de mídia tem um timestamp de expiração (comum em URLs presigned do S3), garanta que ela não expire antes que o crawler da Meta possa buscá-la. Para publicações agendadas, gere URLs que permaneçam válidas até bem depois do horário agendado.</li>
  <li>**Hospedagem de mídia gerenciada** — Se você usa um serviço como Cloudinary, Imgix, ou similar, onde não pode editar o `robots.txt`, verifique a documentação deles para uma configuração de allow-list do crawler da Meta/Facebook.</li>
</ul>

Se nenhuma dessas resolver o problema, [entre em contato com o suporte do Ayrshare](https://www.ayrshare.com/contact) e inclua:

* O `postId` com falha da resposta de erro
* A saída do comando `curl` de verificação acima
* O conteúdo do seu `robots.txt`

## Tentar novamente uma publicação com falha

O comportamento da nova tentativa depende do código que você recebeu:

<ul>
  <li>**Código 440 (transitório, `retryAvailable: true`)**: a ingestão simplesmente ficou sem tempo ou encontrou um erro temporário da Meta. Tente novamente diretamente usando o [endpoint Retry Post](https://www.ayrshare.com/docs/apis/post/retry-post.md); nenhuma alteração na sua hospedagem é necessária.</li>
  <li>**Código 479 (`retryAvailable: false`)**: a Meta não conseguiu buscar a mídia mesmo depois que o Ayrshare a hospedou na sua própria CDN, então tentar novamente com a mesma URL bloqueada vai falhar de novo. **Corrija a hospedagem primeiro**: permita os crawlers da Meta (`facebookexternalhit` / `Facebot`) no `robots.txt` e no seu WAF, ou hospede a mídia em uma CDN que a Meta consiga acessar. Verifique com o comando `curl` acima e então tente novamente via o [endpoint Retry Post](https://www.ayrshare.com/docs/apis/post/retry-post.md).</li>
</ul>

## Consulte também

<ul>
  <li>[API do Instagram](https://www.ayrshare.com/docs/apis/post/social-networks/instagram.md)</li>
  <li>[API do Threads](https://www.ayrshare.com/docs/apis/post/social-networks/threads.md)</li>
  <li>[Diretrizes de Mídia do Instagram](https://www.ayrshare.com/docs/media-guidelines/instagram.md)</li>
  <li>[Diretrizes de Mídia do Threads](https://www.ayrshare.com/docs/media-guidelines/threads.md)</li>
  <li>[Códigos de erro do Ayrshare](https://www.ayrshare.com/docs/errors/errors-ayrshare.md#media-fetch-crawler-access-errors)</li>
  <li>[Falha na publicação de vídeo](https://www.ayrshare.com/docs/help-center/technical-support/video-publishing-fails.md)</li>
</ul>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.