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

# Meta Media Crawler заблоковано (Instagram / Threads)

> Як виправити код помилки 440 (та пов'язані Instagram 138 / Threads 379), спричинені robots.txt або правилами блокування ботів, які блокують медіа-crawler Meta.

Код помилки **440** (та пов'язаний код Instagram **138** / код Threads **379**) повертається, коли crawler публікації Meta не може завантажити URL Вашого медіа — найчастіше через те, що `robots.txt` або правило блокування ботів на Вашому сервері відхиляє crawler.

<Note>
  Ця сторінка охоплює збої, повідомлення про помилку або деталі яких згадують, що соціальна мережа не змогла завантажити медіа, зазвичай посилаючись на `facebookexternalhit`, `robots.txt`, `"Restricted by robots.txt"`, `"HTTP error code 403"` або помилку Meta `2207052`. Для помилок співвідношення сторін або формату на коді Instagram 138, натомість див. [Instagram Media Guidelines](/media-guidelines/instagram) або [Threads Media Guidelines](/media-guidelines/threads).
</Note>

## Симптом

Коли crawler заблоковано, Ви побачите помилки, як ці:

```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>
  Код **440** — це виділений код Ayrshare для цього збою, і його повідомлення явно називає `facebookexternalhit` та `robots.txt` — якщо Ви бачите 440, Ви на правильній сторінці. Код **138** видається для тієї ж кореневої причини, коли upstream-відповідь менш конкретна; 138 також використовується для проблем зі співвідношенням сторін / форматом, тому варіант fetch-медіа можна ідентифікувати за `"Restricted by robots.txt"` або `"HTTP error code 403"` у `details`. Код **379** не містить поля `details` — якщо Threads зазнає збою поряд з Instagram 440 або 138, коренева причина зазвичай та сама.
</Note>

## Чому це відбувається

Коли Ви публікуєте в Instagram або Threads через Ayrshare, сервери Meta отримують Ваше медіа з наданого URL. Це серверне отримання використовує User-Agent `facebookexternalhit`. Якщо `robots.txt` Вашого сервера забороняє цей crawler — або правило WAF/захисту від ботів блокує його — Meta не може завантажити файл, і публікація зазнає невдачі.

Публікація на Facebook Page використовує інший шлях прийому, тому той самий `mediaUrl` може працювати для Facebook, але не працювати для Instagram та Threads.

## Виправлення: оновіть Ваш robots.txt

### Рекомендовано: явно дозвольте Meta, залишаючи інші відкритими

Додайте ці правила до Вашого файлу `robots.txt`:

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

User-agent: *
Allow: /
```

Це явно дозволяє crawler Meta, залишаючи Ваш сайт відкритим для інших crawler (Google, Bing тощо).

### Розширене: обмежити доступ лише для соціальних видавців

Якщо Ви хочете заблокувати більшість crawler, але дозволити платформам соціальних мереж:

```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>
  Використовуйте один блок `User-agent: *`, розміщений у кінці файлу. RFC 9309-сумісні crawler об'єднують кілька груп зі шаблоном в одну, але не всі парсери на практиці є RFC-сумісними — дублікати груп зі шаблоном є поширеним джерелом того, що правила відкидаються або застосовуються непослідовно.
</Warning>

## Перевірте, що Meta може отримати Ваш URL

Перед повторною спробою Вашого допису перевірте, що crawler Meta тепер може отримати доступ до Вашого медіа. Виконайте цю команду, замінивши `$URL` повним URL Вашого медіа:

```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>**Здорова відповідь:** HTTP 200 або 206 з двійковими даними в тілі.</li>
  <li>**Заблокована відповідь:** HTTP 403 або порожня/HTML-сторінка помилки.</li>
</ul>

<Note>
  Згідно з документацією Meta, зміни `robots.txt` можуть тривати до 24 годин, щоб поширитися через кеш crawler Meta. Якщо перевірка успішна, але Ваша публікація все ще не вдається, зачекайте і повторіть спробу пізніше.
</Note>

## Якщо це не виправило проблему

Якщо Ви оновили `robots.txt` і перевірили командою `curl`, але все ще бачите збої:

<ul class="custom-bullets">
  <li>**24-годинна затримка поширення** — Meta кешує `robots.txt`. Зачекайте до 24 годин після внесення змін, перш ніж повторити спробу.</li>
  <li>**Правила WAF або bot-fight** — Cloudflare Bot Fight Mode, керовані групи правил AWS WAF та подібні служби можуть блокувати діапазони IP crawler Meta, навіть якщо `robots.txt` це дозволяє. Перевірте журнали WAF та додайте виняток для `facebookexternalhit`.</li>
  <li>**Захист від hotlink / перевірки Referer** — Деякі CDN блокують запити з IP-адрес центрів обробки даних або без дійсного заголовка `Referer`. Додайте crawler Meta до білого списку або вимкніть захист від hotlink для шляхів медіа.</li>
  <li>**Термін дії signed-URL / presigned-URL** — Якщо Ваш URL медіа має timestamp закінчення (поширено для S3 presigned URL), переконайтеся, що він не закінчиться до того, як crawler Meta зможе отримати. Для запланованих дописів створюйте URL, які залишаються дійсними значно після запланованого часу.</li>
  <li>**Керований медіа-хостинг** — Якщо Ви використовуєте службу, як Cloudinary, Imgix або подібну, де Ви не можете редагувати `robots.txt`, перевірте їхню документацію на предмет налаштування списку дозволів crawler Meta/Facebook.</li>
</ul>

Якщо жодне з цих не вирішує проблему, [зверніться до підтримки Ayrshare](https://www.ayrshare.com/contact) і додайте:

* Невдалий `postId` з відповіді про помилку
* Вивід команди перевірки `curl` вище
* Вміст Вашого `robots.txt`

## Повторна спроба невдалого допису

Після того, як Ви вирішили проблему з доступом crawler, повторно спробуйте опублікувати невдалий допис за допомогою [кінцевої точки Retry Post](/apis/post/retry-post).

## Див. також

<ul class="custom-bullets">
  <li>[Instagram API](/apis/post/social-networks/instagram)</li>
  <li>[Threads API](/apis/post/social-networks/threads)</li>
  <li>[Instagram Media Guidelines](/media-guidelines/instagram)</li>
  <li>[Threads Media Guidelines](/media-guidelines/threads)</li>
  <li>[Коди помилок Ayrshare](/errors/errors-ayrshare#media-fetch--crawler-access-errors)</li>
  <li>[Публікація відео зазнає невдачі](/help-center/technical-support/video_publishing_fails)</li>
</ul>
