> ## 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)

> Como corrigir o código de erro 440 (e os relacionados Instagram 138 / Threads 379) causado por robots.txt ou regras anti-bots bloqueando o crawler de mídia da Meta.

O código de erro **440** (e os códigos relacionados Instagram **138** / Threads **379**) é retornado quando o crawler de publicação da Meta não consegue baixar 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.

<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 erro `2207052` da Meta. Para erros de proporção ou formato no código 138 do Instagram, consulte as [Diretrizes de Mídia do Instagram](/media-guidelines/instagram) ou as [Diretrizes de Mídia do Threads](/media-guidelines/threads) em vez disso.
</Note>

## Sintoma

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

```json Error 440 (primary) theme={"system"}
{
  "status": "error",
  "errors": [{
    "action": "post",
    "code": 440,
    "message": "The social network could not download media from this URL (for example Instagram/Meta error 2207052). Ensure the file is publicly reachable by the platform's crawlers (e.g. facebookexternalhit), via media bucket's robots.txt file, not only in a browser.",
    "details": "Media download has failed.: The media could not be fetched from the provided URI...",
    "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>
  O código **440** é o código dedicado do Ayrshare para essa falha e sua mensagem nomeia explicitamente `facebookexternalhit` e `robots.txt` — se você vir 440, está na página certa. O código **138** é 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`. O código **379** não inclui um campo `details` — se o Threads falhar junto com um 440 ou 138 do Instagram, a causa raiz é normalmente a mesma.
</Note>

## 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.
</Warning>

## 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 class="custom-bullets">
  <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.
</Note>

## Se isso não resolver

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

<ul class="custom-bullets">
  <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` 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

Depois de resolver o problema de acesso do crawler, tente novamente sua publicação com falha usando o endpoint [Retry Post](/apis/post/retry-post).

## Consulte também

<ul class="custom-bullets">
  <li>[API do Instagram](/apis/post/social-networks/instagram)</li>
  <li>[API do Threads](/apis/post/social-networks/threads)</li>
  <li>[Diretrizes de Mídia do Instagram](/media-guidelines/instagram)</li>
  <li>[Diretrizes de Mídia do Threads](/media-guidelines/threads)</li>
  <li>[Códigos de erro do Ayrshare](/errors/errors-ayrshare#media-fetch--crawler-access-errors)</li>
  <li>[Falha na publicação de vídeo](/help-center/technical-support/video_publishing_fails)</li>
</ul>
