> ## 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 (Instagram / Threads)

> أصلح error 479 عندما يحظر robots.txt أو WAF زاحف facebookexternalhit التابع لـ Meta من الوصول إلى وسائط Instagram أو Threads، ثم اختبر الوصول باستخدام curl.

رمز الخطأ **479** هو رمز Ayrshare المخصص **غير القابل لإعادة المحاولة** الذي يُعاد عندما يتعذّر على Meta جلب عنوان URL الخاص بوسائطك، وذلك في الغالب لأن `robots.txt` أو قاعدة لحظر الروبوتات على خادمك ترفض الزاحف (`facebookexternalhit`). ولا يُعاد إلا بعد أن تفشل أيضًا آلية إعادة الاستضافة الاحتياطية التلقائية في Ayrshare، وهو ما يشير بقوة إلى حجب من جانب المضيف أو إلى مصدر يتعذّر الوصول إليه.

عندما ينشر Ayrshare على Instagram أو Threads، فإنه لا يكتفي بتسليم عنوان URL الخاص بك إلى Meta ثم يستسلم. إذ يعيد Ayrshare محاولة الجلب تلقائيًا، وإذا ظل Meta غير قادر على الوصول إلى الوسائط، **يعيد استضافة نسخة منها على شبكة CDN الخاصة به** ويطلب من Meta جلبها من هناك بدلًا من ذلك. ويعني الرمز **479** أن هذه الآلية الاحتياطية نفسها لم تتمكن من جعل Meta يجلب الوسائط، لذا لن تفيد إعادة محاولة الطلب نفسه حتى تُصلَح مشكلة الاستضافة الأساسية (`retryAvailable: false`، HTTP 400).

> [!NOTE]
>
> تتناول هذه الصفحة حالات الفشل التي تشير رسالة الخطأ أو التفاصيل الخاصة بها إلى أن شبكة التواصل الاجتماعي لم تتمكن من تنزيل الوسائط، وعادة ما تشير إلى `facebookexternalhit`، أو `robots.txt`، أو `"Restricted by robots.txt"`، أو `"HTTP error code 403"`، أو الرمز الفرعي من Meta `2207052`. أما أخطاء نسبة الأبعاد أو التنسيق في رمز Instagram 138، فراجع بدلًا من ذلك [إرشادات وسائط Instagram](https://www.ayrshare.com/docs/media-guidelines/instagram.md) أو [إرشادات وسائط Threads](https://www.ayrshare.com/docs/media-guidelines/threads.md).

## الأعراض

عند حظر الزاحف، سترى أخطاء مثل هذه:

```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]
>
> فهم الفرق بين هذه الرموز:
>
> <ul>
>   <li>**الرمز 479: رمز مخصص لجلب الوسائط / حجب الزاحف (غير قابل لإعادة المحاولة).** هذا هو رمز الفشل الذي تتناوله هذه الصفحة. ويُعاد مع `retryAvailable: false` عندما يتعذّر على Meta جلب الوسائط (الرمز الفرعي `2207052` أو نمط نصي يدل على فشل جلب الوسائط) **حتى بعد أن أعاد Ayrshare استضافتها على شبكة CDN الخاصة به**. وتذكر رسالته صراحةً `facebookexternalhit` / `Facebot` و`robots.txt`، فإذا رأيت 479، فأنت في الصفحة المناسبة. أصلح الاستضافة قبل إعادة المحاولة.</li>
>   <li>**الرمز 440: فشل استيعاب مؤقت (قابل لإعادة المحاولة).** يُستخدم الآن لحالات استنفاد الاستيعاب المؤقتة فعلًا، أي الرمزين الفرعيين من Meta `2207032` ("download too slow") / `2207003` ("create media fail")، أو حالات الاستنفاد غير المصنّفة. ويحمل `retryAvailable: true`؛ أعد المحاولة عبر [`/post/retry`](https://www.ayrshare.com/docs/apis/post/retry-post).</li>
>   <li>**الرمز 138: رمز Instagram احتياطي أقل تحديدًا.** يُصدَر للسبب الجذري ذاته عندما تكون الاستجابة القادمة من المصدر أقل تحديدًا. ويُستخدم الرمز 138 أيضًا لمشكلات نسبة الأبعاد/التنسيق، لذا يمكن تمييز صيغة جلب الوسائط بوجود `"Restricted by robots.txt"` أو `"HTTP error code 403"` في حقل `details`.</li>
>   <li>**الرمز 379: Threads.** لا يتضمن حقل `details`. وإذا فشل Threads بجانب Instagram 479 أو 138، فعادة ما يكون السبب الجذري واحدًا.</li>
> </ul>

## لماذا يحدث هذا

عندما تنشر على Instagram أو Threads عبر Ayrshare، تجلب خوادم Meta وسائطك من عنوان URL الذي تقدّمه. ويستخدم هذا الجلب من جانب الخادم User-Agent الخاص بـ `facebookexternalhit`. فإذا رفض ملف `robots.txt` الخاص بخادمك هذا الزاحف — أو حجبته قاعدة 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: /
```

يسمح هذا صراحةً لزاحف Meta مع إبقاء موقعك مفتوحًا للزواحف الأخرى (Google وBing وغيرها).

### أسلوب متقدّم: التقييد على ناشري التواصل الاجتماعي فقط

إذا كنت تريد حجب معظم الزواحف مع السماح لمنصات التواصل الاجتماعي:

```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 تدمج كتل الأحرف البديلة المتعددة في واحدة، ولكن ليس كل مُحلِّل في الواقع متوافقًا مع RFC — وتكرار كتل الأحرف البديلة سبب شائع في إسقاط القواعد أو تطبيقها بشكل غير متسق.

## تحقق من أن Meta يستطيع جلب عنوان URL الخاص بك

قبل إعادة محاولة النشر، تحقق من أن زاحف 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>
  <li>**الاستجابة السليمة:** HTTP 200 أو 206 مع بيانات ثنائية في محتوى الاستجابة.</li>
  <li>**الاستجابة المحجوبة:** HTTP 403 أو صفحة فارغة/صفحة خطأ HTML.</li>
</ul>

> [!NOTE]
>
> وفقًا لوثائق Meta، قد تستغرق تغييرات `robots.txt` ما يصل إلى 24 ساعة لتنتشر عبر ذاكرة التخزين المؤقتة لزاحف Meta. وإذا نجح التحقق ولكن ما زال منشورك يفشل، فانتظر وأعد المحاولة لاحقًا.

## إذا لم يحل هذا المشكلة

إذا حدّثت `robots.txt` وتحققت باستخدام أمر `curl` ولكن ما زلت ترى حالات فشل:

<ul>
  <li>**تأخير الانتشار لمدة 24 ساعة** — يقوم Meta بتخزين `robots.txt` مؤقتًا. انتظر حتى 24 ساعة بعد إجراء التغييرات قبل إعادة المحاولة.</li>
  <li>**قواعد WAF أو مكافحة الروبوتات** — قد تحجب خدمات مثل Cloudflare Bot Fight Mode، ومجموعات قواعد الروبوتات المُدارة في AWS WAF، والخدمات المماثلة نطاقات عناوين IP الخاصة بزاحف Meta حتى لو كان `robots.txt` يسمح بها. تحقق من سجلات WAF وأضف استثناءً لـ `facebookexternalhit`.</li>
  <li>**حماية الروابط الساخنة / التحقق من Referer** — تحجب بعض شبكات CDN الطلبات من عناوين IP لمراكز البيانات أو الطلبات التي بدون رأس `Referer` صالح. أضف زاحف Meta إلى القائمة البيضاء أو عطّل حماية الروابط الساخنة لمسارات الوسائط.</li>
  <li>**انتهاء صلاحية عناوين URL الموقّعة / المُوقّعة مسبقًا** — إذا كان عنوان URL الخاص بالوسائط يحتوي على طابع زمني لانتهاء الصلاحية (شائع مع عناوين URL الموقّعة مسبقًا في S3)، فتأكد من أنه لا ينتهي قبل أن يتمكن زاحف Meta من جلبه. بالنسبة للمنشورات المجدولة، أنشئ عناوين URL تظل صالحة لفترة كافية بعد الوقت المجدول.</li>
  <li>**استضافة الوسائط المُدارة** — إذا كنت تستخدم خدمة مثل Cloudinary أو Imgix أو ما شابه حيث لا يمكنك تحرير `robots.txt`، فراجع وثائقهم للحصول على إعداد السماح لزاحف Meta/Facebook.</li>
</ul>

إذا لم يحل أي من ذلك المشكلة، [تواصل مع دعم Ayrshare](https://www.ayrshare.com/contact) وقم بتضمين:

* `postId` الفاشل من استجابة الخطأ
* مخرجات أمر `curl` للتحقق أعلاه
* محتويات ملف `robots.txt` الخاص بك

## إعادة محاولة منشور فاشل

يعتمد سلوك إعادة المحاولة على الرمز الذي تلقيته:

<ul>
  <li>**الرمز 440 (مؤقت، `retryAvailable: true`)**: نفد وقت الاستيعاب ببساطة أو واجه خطأ مؤقتًا من Meta. أعد المحاولة مباشرةً باستخدام [نقطة نهاية إعادة محاولة النشر](https://www.ayrshare.com/docs/apis/post/retry-post.md)؛ ولا حاجة إلى أي تغييرات في الاستضافة.</li>
  <li>**الرمز 479 (`retryAvailable: false`)**: تعذّر على Meta جلب الوسائط حتى بعد أن أعاد Ayrshare استضافتها على شبكة CDN الخاصة به، لذا ستفشل إعادة المحاولة مرة أخرى باستخدام عنوان URL المحجوب نفسه دون تغيير. **أصلح الاستضافة أولًا**: اسمح لزواحف Meta (`facebookexternalhit` / `Facebot`) في `robots.txt` وفي WAF، أو أعد استضافة الوسائط على شبكة CDN يمكن لـ Meta الوصول إليها. تحقق باستخدام أمر `curl` أعلاه، ثم أعد المحاولة عبر [نقطة نهاية إعادة محاولة النشر](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](https://www.ayrshare.com/docs/media-guidelines/instagram.md)</li>
  <li>[إرشادات وسائط Threads](https://www.ayrshare.com/docs/media-guidelines/threads.md)</li>
  <li>[رموز أخطاء Ayrshare](https://www.ayrshare.com/docs/errors/errors-ayrshare.md#media-fetch-crawler-access-errors)</li>
  <li>[فشل نشر الفيديو](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.