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)।
यह पेज उन विफलताओं को कवर करता है जिनके 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 या Threads Media Guidelines देखें।लक्षण
जब crawler अवरुद्ध होता है, तो आपको ऐसी त्रुटियाँ दिखाई देंगी:Error 479 (primary — dedicated, non-retryable)
Error 440 (transient ingestion — retryable)
Instagram Error 138 (fallback — less specific upstream response)
Threads Error 379
इन codes के बीच का अंतर समझना:
- Code 479: समर्पित media-fetch / crawler-block (non-retryable)। यह इस पेज में शामिल विफलता का code है। यह
retryAvailable: falseके साथ तब लौटाया जाता है जब Meta media को fetch नहीं कर सका (subcode2207052या कोई media-fetch text pattern), Ayrshare द्वारा इसे अपने CDN पर re-host करने के बाद भी। इसका message स्पष्ट रूप सेfacebookexternalhit/Facebotऔरrobots.txtका नाम लेता है: यदि आप 479 देखते हैं, तो आप सही पेज पर हैं। पुनः प्रयास करने से पहले hosting ठीक करें। - Code 440: अस्थायी ingestion (retryable)। अब वास्तव में अस्थायी ingestion विफलता के लिए उपयोग किया जाता है: Meta subcodes
2207032(“download too slow”) /2207003(“create media fail”), या अवर्गीकृत विफलता। इसमेंretryAvailable: trueहोता है;/post/retryके माध्यम से पुनः प्रयास करें। - Code 138: कम-विशिष्ट Instagram fallback। उसी मूल कारण के लिए उत्सर्जित किया जाता है जब upstream response कम विशिष्ट होती है। 138 का उपयोग aspect-ratio / format मुद्दों के लिए भी किया जाता है, इसलिए media-fetch variant
detailsमें"Restricted by robots.txt"या"HTTP error code 403"द्वारा पहचाना जा सकता है। - Code 379: Threads। इसमें
detailsफ़ील्ड शामिल नहीं है। यदि Threads, Instagram 479 या 138 के साथ विफल होता है, तो मूल कारण आमतौर पर वही होता है।
ऐसा क्यों होता है
जब आप Ayrshare के माध्यम से Instagram या Threads पर प्रकाशित करते हैं, तो Meta के servers आपके द्वारा प्रदान किए गए URL से आपका media प्राप्त करते हैं। यह server-side fetchfacebookexternalhit User-Agent का उपयोग करती है। यदि आपके सर्वर का robots.txt इस crawler को अनुमति नहीं देता — या एक WAF/bot-protection नियम इसे अवरुद्ध करता है — तो Meta फ़ाइल को डाउनलोड नहीं कर सकता और publish विफल हो जाती है।
Facebook Page publishing एक अलग ingestion path का उपयोग करता है, यही कारण है कि वही mediaUrl Facebook के लिए काम कर सकता है लेकिन Instagram और Threads के लिए विफल हो सकता है।
समाधान: अपना robots.txt अपडेट करें
अनुशंसित: Meta को स्पष्ट रूप से अनुमति दें, अन्य को खुला रखें
अपनीrobots.txt फ़ाइल में ये नियम जोड़ें:
robots.txt
उन्नत: केवल social publishers तक सीमित करें
यदि आप अधिकांश crawlers को अवरुद्ध करना चाहते हैं लेकिन सोशल मीडिया प्लेटफ़ॉर्म को अनुमति देना चाहते हैं:robots.txt
सत्यापित करें कि Meta आपके URL को प्राप्त कर सकता है
अपनी पोस्ट को पुनः प्रयास करने से पहले, सत्यापित करें कि Meta का crawler अब आपके media तक पहुँच सकता है। इस कमांड को चलाएँ,$URL को अपने पूर्ण media URL से बदलें:
- स्वस्थ response: body में binary data के साथ HTTP 200 या 206।
- अवरुद्ध response: HTTP 403 या एक खाली/HTML error पेज।
Meta के दस्तावेज़ के अनुसार,
robots.txt परिवर्तनों को Meta के crawler cache के माध्यम से प्रचारित होने में 24 घंटे तक लग सकते हैं। यदि सत्यापन सफल होता है लेकिन आपकी पोस्ट अभी भी विफल होती है, तो प्रतीक्षा करें और बाद में पुनः प्रयास करें।यदि यह इसे ठीक नहीं करता है
यदि आपनेrobots.txt अपडेट किया है और curl कमांड से सत्यापित किया है लेकिन फिर भी विफलताएँ देख रहे हैं:
- 24-घंटे का प्रसार विलंब — Meta
robots.txtको cache करता है। परिवर्तन करने के बाद पुनः प्रयास करने से पहले 24 घंटे तक प्रतीक्षा करें। - WAF या bot-fight नियम — Cloudflare Bot Fight Mode, AWS WAF managed bot rule groups, और समान सेवाएँ Meta के crawler IP ranges को अवरुद्ध कर सकती हैं भले ही
robots.txtइसे अनुमति दे। अपने WAF logs की जाँच करें औरfacebookexternalhitके लिए एक अपवाद जोड़ें। - Hotlink protection / Referer जाँच — कुछ CDN data-center IPs से या बिना वैध
Refererheader के अनुरोधों को अवरुद्ध करते हैं। Meta के crawler को whitelist करें या media paths के लिए hotlink protection अक्षम करें। - Signed-URL / presigned-URL समाप्ति — यदि आपके media URL में एक expiration timestamp है (S3 presigned URLs के साथ सामान्य), तो सुनिश्चित करें कि यह Meta के crawler द्वारा फ़ेच करने से पहले समाप्त न हो। scheduled पोस्ट के लिए, ऐसे URL जनरेट करें जो scheduled समय के बाद भी लंबे समय तक मान्य रहें।
- Managed media hosting — यदि आप Cloudinary, Imgix, या समान सेवा का उपयोग करते हैं जहाँ आप
robots.txtसंपादित नहीं कर सकते, तो Meta/Facebook crawler allow-list setting के लिए उनके दस्तावेज़ की जाँच करें।
- error response से विफल
postId - ऊपर दिए गए
curlसत्यापन कमांड का output - आपकी
robots.txtसामग्री
विफल पोस्ट का पुनः प्रयास करें
पुनः प्रयास का व्यवहार इस पर निर्भर करता है कि आपको कौन-सा code मिला:- Code 440 (अस्थायी,
retryAvailable: true): ingestion का समय बस समाप्त हो गया या Meta की कोई अस्थायी त्रुटि आई। Retry Post endpoint का उपयोग करके सीधे पुनः प्रयास करें; आपकी hosting में किसी बदलाव की आवश्यकता नहीं है। - 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 के माध्यम से पुनः प्रयास करें।