Error “Failed Ajax Request / Invalid JSON Returned” di OJS 3.4 biasanya terjadi karena ketidakcocokan PHP (terutama PHP 8.0), cache yang rusak, atau data query yang kosong (NULL). Solusi paling efektif adalah upgrade ke PHP 8.1, membersihkan cache OJS, dan menonaktifkan plugin yang bermasalah.
1. Apa itu Error Failed Ajax Request di OJS?
Error ini terjadi pada Open Journal Systems ketika sistem gagal mengembalikan data dalam format JSON saat melakukan request AJAX.
Biasanya muncul saat:
- Edit discussion
- Review submission
- Query grid
- Workflow editorial
Gejala:
- Loading tidak berhenti
- Tombol tidak merespons
- Error 500 Internal Server Error
- Response tidak valid JSON
2. Penyebab Utama (berdasarkan real case di shared hosting)
2.1 PHP 8.0 tidak kompatibel penuh
Di PHP 8.0, fungsi berikut menjadi strict:
count(null)
Jika OJS mengirim data kosong, maka akan langsung menjadi fatal error.
Dampak:
- AJAX gagal
- JSON response rusak
- HTTP 500 muncul
2.2 Data NULL di sistem query OJS
Sistem OJS menggunakan struktur:
- query
- notes
- participants
Jika data kosong, sistem tetap mencoba memprosesnya → crash.
2.3 Cache OJS tidak sinkron
Cache lama dapat menyebabkan:
- template tidak sesuai versi
- data lama masih dipanggil
- error pada Smarty engine
2.4 Plugin tidak kompatibel
Plugin tertentu dapat merusak:
- queries-grid
- discussion handler
- AJAX controller (
$$$call$$$)
3. Cara Mengatasi Error (Step-by-step)
Step 1 — Upgrade PHP (Paling penting)
Gunakan:
- PHP 8.1 (recommended)
- PHP 8.2 (jika kompatibel hosting)
Hindari PHP 8.0
Step 2 — Clear Cache OJS
Hapus folder:
/cache/
/cache/t_cache/
/cache/t_compile/
Tujuannya:
- reset template engine
- regenerasi data bersih
Step 3 — Nonaktifkan plugin bermasalah
Masuk:
Settings → Plugins
Lalu:
- nonaktifkan plugin non-default
- test ulang fitur error
Step 4 — Perbaiki data yang corrupt
Jika error hanya terjadi di satu submission:
- hapus discussion yang error
- buat ulang thread
4. Hasil Setelah Perbaikan
Setelah langkah di atas:
- AJAX kembali normal
- JSON response valid
- Error 500 hilang
- Workflow OJS stabil
5. Kenapa error ini sering terjadi di shared hosting?
Karena kombinasi:
- PHP versi lama/tidak cocok
- resource server terbatas
- caching agresif
- plugin tidak terkontrol