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

> जब robots.txt या WAF आपके Instagram या Threads media तक Meta के facebookexternalhit crawler को ब्लॉक करे तो error 479 ठीक करें, फिर curl से access जांचें।

Error code **479** समर्पित, **non-retryable** Ayrshare code है जो तब लौटाया जाता है जब Meta आपके media URL को fetch नहीं कर सकता। इसका सबसे आम कारण यह है कि आपके सर्वर पर `robots.txt` या कोई bot-blocking नियम crawler (`facebookexternalhit`) को अस्वीकार कर रहा है। यह केवल तब लौटाया जाता है जब Ayrshare का स्वचालित re-host fallback भी विफल हो चुका हो, जो स्पष्ट रूप से host-side block या पहुँच से बाहर source की ओर संकेत करता है।

जब Ayrshare Instagram या Threads पर प्रकाशित करता है, तो वह आपका URL बिना सोचे-समझे Meta को सौंपकर हार नहीं मानता। Ayrshare स्वचालित रूप से fetch का पुनः प्रयास करता है और, यदि Meta फिर भी media तक नहीं पहुँच पाता, तो **अपने CDN पर एक copy re-host करता है** और Meta से उसे fetch करने के लिए कहता है। Code **479** का अर्थ है कि वह fallback भी Meta से media fetch नहीं करवा सका, इसलिए जब तक hosting की मूल समस्या ठीक नहीं होती, उसी request का पुनः प्रयास करने से कोई लाभ नहीं होगा (`retryAvailable: false`, HTTP 400)।

> [!NOTE]
>
> यह पेज उन विफलताओं को कवर करता है जिनके error message या details में उल्लेख है कि सोशल नेटवर्क media को डाउनलोड नहीं कर सका, आमतौर पर `facebookexternalhit`, `robots.txt`, `"Restricted by robots.txt"`, `"HTTP error code 403"`, या Meta subcode `2207052` का संदर्भ देते हुए। Instagram code 138 पर aspect-ratio या format त्रुटियों के लिए, इसके बजाय [Instagram Media Guidelines](https://www.ayrshare.com/docs/media-guidelines/instagram.md) या [Threads Media Guidelines](https://www.ayrshare.com/docs/media-guidelines/threads.md) देखें।

## लक्षण

जब crawler अवरुद्ध होता है, तो आपको ऐसी त्रुटियाँ दिखाई देंगी:

```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]
>
> इन codes के बीच का अंतर समझना:
>
> <ul>
>   <li>**Code 479: समर्पित media-fetch / crawler-block (non-retryable)।** यह इस पेज में शामिल विफलता का code है। यह `retryAvailable: false` के साथ तब लौटाया जाता है जब Meta media को fetch नहीं कर सका (subcode `2207052` या कोई media-fetch text pattern), **Ayrshare द्वारा इसे अपने CDN पर re-host करने के बाद भी**। इसका message स्पष्ट रूप से `facebookexternalhit` / `Facebot` और `robots.txt` का नाम लेता है: यदि आप 479 देखते हैं, तो आप सही पेज पर हैं। पुनः प्रयास करने से पहले hosting ठीक करें।</li>
>   <li>**Code 440: अस्थायी ingestion (retryable)।** अब वास्तव में अस्थायी ingestion विफलता के लिए उपयोग किया जाता है: Meta subcodes `2207032` ("download too slow") / `2207003` ("create media fail"), या अवर्गीकृत विफलता। इसमें `retryAvailable: true` होता है; [`/post/retry`](https://www.ayrshare.com/docs/apis/post/retry-post) के माध्यम से पुनः प्रयास करें।</li>
>   <li>**Code 138: कम-विशिष्ट Instagram fallback।** उसी मूल कारण के लिए उत्सर्जित किया जाता है जब upstream response कम विशिष्ट होती है। 138 का उपयोग aspect-ratio / format मुद्दों के लिए भी किया जाता है, इसलिए media-fetch variant `details` में `"Restricted by robots.txt"` या `"HTTP error code 403"` द्वारा पहचाना जा सकता है।</li>
>   <li>**Code 379: Threads।** इसमें `details` फ़ील्ड शामिल नहीं है। यदि Threads, Instagram 479 या 138 के साथ विफल होता है, तो मूल कारण आमतौर पर वही होता है।</li>
> </ul>

## ऐसा क्यों होता है

जब आप Ayrshare के माध्यम से Instagram या Threads पर प्रकाशित करते हैं, तो Meta के servers आपके द्वारा प्रदान किए गए URL से आपका media प्राप्त करते हैं। यह server-side fetch `facebookexternalhit` User-Agent का उपयोग करती है। यदि आपके सर्वर का `robots.txt` इस crawler को अनुमति नहीं देता — या एक WAF/bot-protection नियम इसे अवरुद्ध करता है — तो Meta फ़ाइल को डाउनलोड नहीं कर सकता और publish विफल हो जाती है।

Facebook Page publishing एक अलग ingestion path का उपयोग करता है, यही कारण है कि वही `mediaUrl` Facebook के लिए काम कर सकता है लेकिन Instagram और Threads के लिए विफल हो सकता है।

## समाधान: अपना robots.txt अपडेट करें

### अनुशंसित: Meta को स्पष्ट रूप से अनुमति दें, अन्य को खुला रखें

अपनी `robots.txt` फ़ाइल में ये नियम जोड़ें:

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

User-agent: *
Allow: /
```

यह स्पष्ट रूप से Meta के crawler को अनुमति देता है जबकि आपकी साइट को अन्य crawlers (Google, Bing, आदि) के लिए खुला रखता है।

### उन्नत: केवल social publishers तक सीमित करें

यदि आप अधिकांश crawlers को अवरुद्ध करना चाहते हैं लेकिन सोशल मीडिया प्लेटफ़ॉर्म को अनुमति देना चाहते हैं:

```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: *` block का उपयोग करें, जिसे फ़ाइल के अंत में रखा जाए। RFC 9309-अनुरूप crawlers कई wildcard groups को एक में मर्ज कर देते हैं, लेकिन जंगल में हर parser RFC-अनुरूप नहीं है — डुप्लिकेट wildcard groups नियमों के छूटने या असंगत रूप से लागू होने का एक सामान्य स्रोत हैं।

## सत्यापित करें कि Meta आपके URL को प्राप्त कर सकता है

अपनी पोस्ट को पुनः प्रयास करने से पहले, सत्यापित करें कि Meta का crawler अब आपके media तक पहुँच सकता है। इस कमांड को चलाएँ, `$URL` को अपने पूर्ण media 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>
  <li>**स्वस्थ response:** body में binary data के साथ HTTP 200 या 206।</li>
  <li>**अवरुद्ध response:** HTTP 403 या एक खाली/HTML error पेज।</li>
</ul>

> [!NOTE]
>
> Meta के दस्तावेज़ के अनुसार, `robots.txt` परिवर्तनों को Meta के crawler cache के माध्यम से प्रचारित होने में 24 घंटे तक लग सकते हैं। यदि सत्यापन सफल होता है लेकिन आपकी पोस्ट अभी भी विफल होती है, तो प्रतीक्षा करें और बाद में पुनः प्रयास करें।

## यदि यह इसे ठीक नहीं करता है

यदि आपने `robots.txt` अपडेट किया है और `curl` कमांड से सत्यापित किया है लेकिन फिर भी विफलताएँ देख रहे हैं:

<ul>
  <li>**24-घंटे का प्रसार विलंब** — Meta `robots.txt` को cache करता है। परिवर्तन करने के बाद पुनः प्रयास करने से पहले 24 घंटे तक प्रतीक्षा करें।</li>
  <li>**WAF या bot-fight नियम** — Cloudflare Bot Fight Mode, AWS WAF managed bot rule groups, और समान सेवाएँ Meta के crawler IP ranges को अवरुद्ध कर सकती हैं भले ही `robots.txt` इसे अनुमति दे। अपने WAF logs की जाँच करें और `facebookexternalhit` के लिए एक अपवाद जोड़ें।</li>
  <li>**Hotlink protection / Referer जाँच** — कुछ CDN data-center IPs से या बिना वैध `Referer` header के अनुरोधों को अवरुद्ध करते हैं। Meta के crawler को whitelist करें या media paths के लिए hotlink protection अक्षम करें।</li>
  <li>**Signed-URL / presigned-URL समाप्ति** — यदि आपके media URL में एक expiration timestamp है (S3 presigned URLs के साथ सामान्य), तो सुनिश्चित करें कि यह Meta के crawler द्वारा फ़ेच करने से पहले समाप्त न हो। scheduled पोस्ट के लिए, ऐसे URL जनरेट करें जो scheduled समय के बाद भी लंबे समय तक मान्य रहें।</li>
  <li>**Managed media hosting** — यदि आप Cloudinary, Imgix, या समान सेवा का उपयोग करते हैं जहाँ आप `robots.txt` संपादित नहीं कर सकते, तो Meta/Facebook crawler allow-list setting के लिए उनके दस्तावेज़ की जाँच करें।</li>
</ul>

यदि इनमें से कोई भी समस्या का समाधान नहीं करता है, तो [Ayrshare support से संपर्क करें](https://www.ayrshare.com/contact) और शामिल करें:

* error response से विफल `postId`
* ऊपर दिए गए `curl` सत्यापन कमांड का output
* आपकी `robots.txt` सामग्री

## विफल पोस्ट का पुनः प्रयास करें

पुनः प्रयास का व्यवहार इस पर निर्भर करता है कि आपको कौन-सा code मिला:

<ul>
  <li>**Code 440 (अस्थायी, `retryAvailable: true`):** ingestion का समय बस समाप्त हो गया या Meta की कोई अस्थायी त्रुटि आई। [Retry Post endpoint](https://www.ayrshare.com/docs/apis/post/retry-post.md) का उपयोग करके सीधे पुनः प्रयास करें; आपकी hosting में किसी बदलाव की आवश्यकता नहीं है।</li>
  <li>**Code 479 (`retryAvailable: false`):** Ayrshare द्वारा media को अपने CDN पर re-host करने के बाद भी Meta उसे fetch नहीं कर सका, इसलिए बिना बदले अवरुद्ध URL का पुनः प्रयास फिर से विफल होगा। **पहले hosting ठीक करें**: `robots.txt` और अपने WAF में Meta के crawlers (`facebookexternalhit` / `Facebot`) को अनुमति दें, या media को ऐसे CDN पर re-host करें जहाँ Meta पहुँच सके। ऊपर दिए गए `curl` कमांड से सत्यापित करें, फिर [Retry Post endpoint](https://www.ayrshare.com/docs/apis/post/retry-post.md) के माध्यम से पुनः प्रयास करें।</li>
</ul>

## यह भी देखें

<ul>
  <li>[Instagram API](https://www.ayrshare.com/docs/apis/post/social-networks/instagram.md)</li>
  <li>[Threads API](https://www.ayrshare.com/docs/apis/post/social-networks/threads.md)</li>
  <li>[Instagram Media Guidelines](https://www.ayrshare.com/docs/media-guidelines/instagram.md)</li>
  <li>[Threads Media Guidelines](https://www.ayrshare.com/docs/media-guidelines/threads.md)</li>
  <li>[Ayrshare Error Codes](https://www.ayrshare.com/docs/errors/errors-ayrshare.md#media-fetch-crawler-access-errors)</li>
  <li>[Video Publishing Fails](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.