Cara Mengatasi WordPress cURL Error 28 Connection Timed Out saat Update Plugin

Anda mengklik Update pada plugin, menunggu, lalu muncul: “Update Failed: Download failed. cURL error 28: Operation timed out after 10000 milliseconds with 0 bytes received.” Atau Site Health melaporkan loopback request gagal dengan cURL error 28. Pesan ini bukan berarti pluginnya rusak — melainkan server Anda tidak berhasil menyelesaikan permintaan keluar tepat waktu.

Jawaban Singkat

cURL error 28 adalah kode timeout libcurl (CURLE_OPERATION_TIMEDOUT): WordPress meminta sesuatu dari server remote — WordPress.org, server lisensi, atau servernya sendiri untuk loopback — tetapi jawabannya tidak datang sebelum batas waktu habis. Langkah pertama yang paling sering menyelesaikan masalah: periksa firewall plugin keamanan (khususnya aturan rate-limiting yang memblokir permintaan keluar), lalu periksa DNS, SSL, dan beban server. Angka milidetik dalam pesan itu adalah petunjuk: timeout 5.000–10.000 ms sering menunjuk DNS atau blokir firewall, sedangkan 30.000 ms lebih menunjuk tujuan yang lambat atau server yang overload.

Membaca Pesan Error-nya

Varian pesanPetunjuknya
Timed out after 10000 ms, 0 bytes receivedKoneksi tidak pernah menghasilkan data — curigai blokir/DNS
Resolving timed out after 5000 msPetunjuk DNS yang jelas: resolver lambat atau rusak
Loopback request failed, cURL error 28Server tidak bisa menghubungi dirinya sendiri — periksa firewall/loopback
Timed out after 30000 ms, sebagian byte diterimaTujuan lambat atau server overload di tengah transfer

Persiapan

  • Catat pesan lengkapnya, termasuk angka milidetik dan jumlah byte.
  • Catat kapan error muncul: selalu, hanya untuk satu plugin, atau hanya di jam sibuk.
  • Buat backup sebelum menonaktifkan plugin keamanan.

Langkah 1: Uji Firewall Plugin Keamanan

Nonaktifkan sementara firewall plugin keamanan Anda (bukan seluruh plugin keamanan bila bisa dipisahkan), lalu coba update lagi. Bila berhasil, penyebabnya ditemukan: sesuaikan aturan firewall/rate-limiting plugin itu agar mengizinkan permintaan keluar WordPress, lalu aktifkan kembali. Jangan membiarkan firewall nonaktif permanen — ini hanya uji diagnosis.

Langkah 2: Uji Konflik Plugin Lain

Bila firewall bukan penyebabnya, nonaktifkan plugin lain satu per satu (atau gunakan mode troubleshooting plugin Health Check) dan ulangi update. Plugin yang melakukan panggilan API berat atau memblokir permintaan HTTP bisa menjadi penyebab timeout yang tidak terlihat.

Langkah 3: Periksa DNS dan Konektivitas Keluar

Dari SSH, uji apakah server bisa menyelesaikan dan menghubungi WordPress.org:

curl -I https://wordpress.org/ --max-time 20
getent hosts wordpress.org

Bila curl dari SSH juga timeout tetapi situs web normal, masalahnya ada di jaringan keluar server (firewall server, DNS resolver, atau kebijakan hosting) — bukan di WordPress. Sampaikan hasil pengujian ini ke penyedia hosting: bukti dari baris perintah jauh lebih berguna daripada sekadar “update gagal”.

Langkah 4: Periksa SSL, Versi cURL, dan Batas PHP

  • Periksa Tools > Site Health > Info > Server: versi cURL dan OpenSSL yang sangat lama bisa memperlambat atau menggagalkan koneksi TLS.
  • Pastikan URL situs konsisten (www vs non-www) agar tidak ada pengalihan yang memperlambat loopback.
  • Periksa batas memori PHP: server yang kehabisan memori saat memproses update bisa tampak seperti timeout. Naikkan WP_MEMORY_LIMIT secara moderat bila Site Health mengeluhkannya.
  • Bila update gagal di tengah unduhan besar, periksa juga max_execution_time — skrip update yang kehabisan waktu eksekusi menghasilkan pesan timeout yang serupa.

Langkah 5: Jalan Keluar Manual

Bila update tetap gagal setelah semua langkah, unduh plugin/tema dari sumber resminya dan unggah manual lewat dashboard atau FTP/SFTP. Ini bukan perbaikan akar masalah, tetapi mengembalikan situs Anda ke versi terbaru sambil menunggu perbaikan jaringan. Setelah itu, tetap selesaikan diagnosis — update berikutnya akan gagal lagi bila penyebabnya tidak diperbaiki.

Verifikasi Hasil

Perbaikan berhasil bila update plugin/tema berjalan sampai selesai, Site Health tidak lagi melaporkan loopback gagal, dan pengujian curl dari SSH ke WordPress.org berhasil dalam waktu normal. Uji update kecil dulu sebelum update besar.

Troubleshooting Lanjutan

SituasiLangkah berikutnya
Hanya satu plugin yang gagal updatePeriksa server lisensi plugin itu; kemungkinan server tujuan yang bermasalah
Semua update gagal, situs normalFokus ke firewall server/DNS keluar; minta penyedia hosting memeriksa
Error hanya di jam sibukServer overload; tinjau kapasitas dan cache
Error muncul bersamaan dengan pembayaran/webhook gagalItu gejala yang sama: permintaan keluar timeout — diagnosisnya sama

FAQ

Apakah cURL error 28 berarti situs saya diretas?

Tidak. Ini error timeout jaringan, bukan indikasi peretasan. Fokuskan diagnosis ke firewall, DNS, dan beban server.

Apakah menaikkan timeout WordPress menyelesaikan masalah?

Kadang meredakan gejala, tetapi bila penyebabnya blokir firewall atau DNS rusak, permintaan tetap gagal — hanya lebih lama. Perbaiki penyebabnya.

Kenapa update manual berhasil tetapi update otomatis gagal?

Karena update manual tidak memakai permintaan HTTP keluar dari server Anda. Itu bukti bahwa masalahnya ada di konektivitas keluar server, bukan di file plugin.

Kesimpulan

cURL error 28 adalah gejala timeout, bukan vonis atas plugin Anda. Baca angka milidetiknya, uji firewall plugin keamanan dulu, lalu DNS, SSL, dan beban server — dan buktikan dengan curl dari SSH sebelum menghubungi hosting. Dengan urutan itu, Anda menemukan penyebabnya alih-alih sekadar mencoba ulang dan berharap.

Referensi

Cookie Consent