robots.txt hoặc quy tắc chặn bot trên máy chủ của bạn từ chối crawler (facebookexternalhit). Mã này chỉ được trả về sau khi cơ chế dự phòng tự động lưu trữ lại của Ayrshare cũng thất bại, điều này cho thấy rõ máy chủ đang chặn hoặc nguồn không thể truy cập được.
Khi Ayrshare đăng lên Instagram hoặc Threads, Ayrshare không chỉ đơn giản chuyển URL của bạn cho Meta rồi bỏ cuộc. Ayrshare tự động thử tải lại và, nếu Meta vẫn không thể truy cập phương tiện, sẽ lưu trữ lại một bản sao trên CDN của chính Ayrshare và yêu cầu Meta tải bản sao đó. Mã 479 có nghĩa là ngay cả cơ chế dự phòng đó cũng không giúp Meta tải được phương tiện, vì vậy việc thử lại cùng một yêu cầu sẽ không có tác dụng cho đến khi vấn đề lưu trữ gốc được khắc phục (retryAvailable: false, HTTP 400).
Trang này đề cập đến các lỗi mà thông báo lỗi hoặc chi tiết đề cập rằng mạng xã hội không thể tải xuống phương tiện, thường tham chiếu đến
facebookexternalhit, robots.txt, "Restricted by robots.txt", "HTTP error code 403", hoặc subcode Meta 2207052. Đối với lỗi tỷ lệ khung hình hoặc định dạng trên mã Instagram 138, xem Hướng dẫn phương tiện Instagram hoặc Hướng dẫn phương tiện Threads thay thế.Triệu chứng
Khi crawler bị chặn, bạn sẽ thấy các lỗi như sau:Error 479 (primary — dedicated, non-retryable)
Error 440 (transient ingestion — retryable)
Instagram Error 138 (fallback — less specific upstream response)
Threads Error 379
Phân biệt giữa các mã này:
- Mã 479: lỗi tải phương tiện / crawler bị chặn chuyên dụng (không thể thử lại). Đây là mã cho lỗi được đề cập trong trang này. Mã được trả về kèm
retryAvailable: falsekhi Meta không thể tải phương tiện (subcode2207052hoặc một mẫu văn bản lỗi tải phương tiện) ngay cả sau khi Ayrshare đã lưu trữ lại nó trên CDN của chính mình. Thông báo của mã này nêu rõ tênfacebookexternalhit/Facebotvàrobots.txt: nếu bạn thấy 479, bạn đang ở đúng trang. Hãy khắc phục việc lưu trữ trước khi thử lại. - Mã 440: lỗi tiếp nhận tạm thời (có thể thử lại). Hiện được dùng cho các trường hợp tiếp nhận thực sự tạm thời bị cạn thời gian: subcode Meta
2207032(“download too slow”) /2207003(“create media fail”), hoặc các trường hợp cạn thời gian chưa được phân loại. Mã này đi kèmretryAvailable: true; hãy thử lại qua/post/retry. - Mã 138: mã dự phòng ít cụ thể hơn của Instagram. Được phát ra cho cùng một nguyên nhân gốc khi phản hồi upstream ít cụ thể hơn. 138 cũng được sử dụng cho các vấn đề về tỷ lệ khung hình / định dạng, vì vậy biến thể tải phương tiện có thể được nhận diện bởi
"Restricted by robots.txt"hoặc"HTTP error code 403"trongdetails. - Mã 379: Threads. Không bao gồm trường
details. Nếu Threads thất bại cùng với Instagram 479 hoặc 138, nguyên nhân gốc thường giống nhau.
Tại sao điều này xảy ra
Khi bạn đăng lên Instagram hoặc Threads qua Ayrshare, các máy chủ của Meta lấy phương tiện của bạn từ URL bạn cung cấp. Việc lấy dữ liệu phía máy chủ này sử dụng User-Agentfacebookexternalhit. Nếu robots.txt của máy chủ bạn không cho phép crawler này — hoặc quy tắc WAF/bảo vệ bot chặn nó — Meta không thể tải xuống tệp và việc đăng thất bại.
Việc đăng Facebook Page sử dụng đường dẫn nhập khác, đó là lý do tại sao cùng một mediaUrl có thể hoạt động cho Facebook nhưng thất bại cho Instagram và Threads.
Khắc phục: Cập nhật robots.txt của bạn
Được khuyến nghị: Cho phép Meta rõ ràng, giữ các bên khác mở
Thêm các quy tắc này vào tệprobots.txt:
robots.txt
Nâng cao: Khóa chỉ cho các publisher mạng xã hội
Nếu bạn muốn chặn hầu hết các crawler nhưng cho phép các nền tảng mạng xã hội:robots.txt
Xác minh Meta có thể lấy URL của bạn
Trước khi thử đăng lại, hãy xác minh rằng crawler của Meta bây giờ có thể truy cập phương tiện của bạn. Chạy lệnh này, thay$URL bằng URL phương tiện đầy đủ của bạn:
- Phản hồi khỏe mạnh: HTTP 200 hoặc 206 với dữ liệu nhị phân trong body.
- Phản hồi bị chặn: HTTP 403 hoặc trang lỗi trống/HTML.
Theo tài liệu của Meta, các thay đổi
robots.txt có thể mất tới 24 giờ để lan truyền qua bộ nhớ đệm crawler của Meta. Nếu việc xác minh thành công nhưng bài đăng vẫn thất bại, hãy đợi và thử lại sau.Nếu điều này không khắc phục được
Nếu bạn đã cập nhậtrobots.txt và xác minh với lệnh curl nhưng vẫn thấy lỗi:
- Độ trễ lan truyền 24 giờ — Meta lưu bộ nhớ đệm
robots.txt. Đợi tối đa 24 giờ sau khi thực hiện thay đổi trước khi thử lại. - Quy tắc WAF hoặc chống bot — Cloudflare Bot Fight Mode, AWS WAF managed bot rule groups và các dịch vụ tương tự có thể chặn dải IP crawler của Meta ngay cả khi
robots.txtcho phép nó. Kiểm tra nhật ký WAF của bạn và thêm một ngoại lệ chofacebookexternalhit. - Bảo vệ hotlink / Kiểm tra Referer — Một số CDN chặn yêu cầu từ IP trung tâm dữ liệu hoặc không có header
Refererhợp lệ. Đưa crawler của Meta vào danh sách trắng hoặc tắt bảo vệ hotlink cho các đường dẫn phương tiện. - Hết hạn URL đã ký / URL presigned — Nếu URL phương tiện của bạn có dấu thời gian hết hạn (phổ biến với URL presigned S3), đảm bảo nó không hết hạn trước khi crawler của Meta có thể lấy nó. Đối với bài đăng được lên lịch, hãy tạo URL vẫn còn hiệu lực đến sau thời gian đăng đã lên lịch.
- Lưu trữ phương tiện được quản lý — Nếu bạn sử dụng dịch vụ như Cloudinary, Imgix hoặc tương tự mà bạn không thể chỉnh sửa
robots.txt, hãy kiểm tra tài liệu của họ để tìm cài đặt danh sách cho phép crawler Meta/Facebook.
postIdthất bại từ phản hồi lỗi- Đầu ra của lệnh xác minh
curlở trên - Nội dung
robots.txtcủa bạn
Thử lại bài đăng thất bại
Cách thử lại phụ thuộc vào mã bạn nhận được:- Mã 440 (tạm thời,
retryAvailable: true): quá trình tiếp nhận chỉ đơn giản là hết thời gian hoặc gặp lỗi tạm thời từ Meta. Hãy thử lại trực tiếp bằng endpoint Retry Post; bạn không cần thay đổi gì về việc lưu trữ. - Mã 479 (
retryAvailable: false): Meta không thể tải phương tiện ngay cả sau khi Ayrshare đã lưu trữ lại nó trên CDN của chính mình, vì vậy việc thử lại với URL bị chặn không thay đổi sẽ lại thất bại. Hãy khắc phục việc lưu trữ trước: cho phép các crawler của Meta (facebookexternalhit/Facebot) trongrobots.txtvà WAF của bạn, hoặc lưu trữ lại phương tiện trên một CDN mà Meta có thể truy cập. Xác minh bằng lệnhcurlở trên, sau đó thử lại qua endpoint Retry Post.