Skip to main content
Mã lỗi 479 là mã Ayrshare chuyên dụng, không thể thử lại, được trả về khi Meta không thể tải URL phương tiện của bạn. Nguyên nhân phổ biến nhất là 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: false khi Meta không thể tải phương tiện (subcode 2207052 hoặ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ên facebookexternalhit / Facebot và 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èm retryAvailable: 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" trong details.
  • 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-Agent facebookexternalhit. 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ệp robots.txt:
robots.txt
Điều này cho phép crawler của Meta rõ ràng đồng thời giữ trang web của bạn mở cho các crawler khác (Google, Bing, v.v.).

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
Sử dụng một khối User-agent: * duy nhất, đặt ở cuối tệp. Các crawler tuân thủ RFC 9309 gộp nhiều nhóm ký tự đại diện thành một, nhưng không phải mọi parser trong thực tế đều tuân thủ RFC — các nhóm ký tự đại diện trùng lặp là một nguồn phổ biến khiến các quy tắc bị loại bỏ hoặc áp dụng không nhất quán.

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ật robots.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.txt cho phép nó. Kiểm tra nhật ký WAF của bạn và thêm một ngoại lệ cho facebookexternalhit.
  • 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 Referer hợ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.
Nếu không có cách nào giải quyết được vấn đề, liên hệ hỗ trợ Ayrshare và bao gồm:
  • postId thấ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.txt củ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) trong robots.txt và 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ệnh curl ở trên, sau đó thử lại qua endpoint Retry Post.

Xem thêm