se-hari.com se-hari.com

malformed_json — Body bukan JSON yang valid

HTTP 400. Kami tidak berhasil mem-parse body request sebagai JSON. Ini terjadi sebelum validasi field, jadi tidak ada informasi tentang field mana yang…

2 menit baca Diperbarui 15 Agustus 2026 Lihat sebagai Markdown

malformed_json adalah kode error HTTP 400 pada Se-Hari API. Kami tidak berhasil mem-parse body request sebagai JSON. Ini terjadi sebelum validasi field, jadi tidak ada informasi tentang field mana yang bermasalah — parsernya berhenti lebih awal dari itu.

#Bentuk responsnya

Semua error Se-Hari memakai amplop yang sama. Yang perlu dicabang di kode Anda adalah code, bukan message — teks pesan bisa kami perbaiki sewaktu-waktu, sedangkan code adalah kontrak publik yang hanya berubah lewat versi API baru.

json
{
  "error": {
    "code": "malformed_json",
    "message": "Contoh pesan untuk malformed_json.",
    "docs_url": "https://se-hari.com/docs/error/malformed-json",
    "request_id": "req_a1b2c3d4e5f6",
    "details": {}
  }
}

#Kapan ini muncul

Kode ini muncul paling awal di rantai pemrosesan, bahkan sebelum kami tahu endpoint mana yang Anda tuju punya field apa. Karena itu responsnya tidak pernah menyebutkan field — parsernya berhenti sebelum sampai ke sana. Kalau Anda mengharapkan details.field dan mendapat objek kosong, kode inilah yang Anda terima, bukan invalid_request.

#Kenapa ini terjadi

  • Koma berlebih sebelum kurung penutup — kesalahan paling umum, dan JavaScript memaafkannya sementara JSON tidak
  • Tanda kutip tunggal alih-alih ganda
  • Body kosong pada request yang mewajibkannya
  • Shell memotong string karena tanda kutip tidak di-escape dengan benar

#Cara memperbaikinya

Validasi JSON Anda sebelum mengirim. Di shell, taruh body di antara tanda kutip tunggal dan pakai kutip ganda di dalamnya. Kalau body dibangun lewat kode, jangan menyusunnya dengan penggabungan string — pakai fungsi serialisasi bawaan bahasa Anda.

#Yang memicu error

bash
curl -X POST "https://se-hari.com/api/v1/notes" \
  -H "Authorization: Bearer $SEHARI_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{'recording_id': 'abc',}"

#Yang seharusnya

bash
curl -X POST "https://se-hari.com/api/v1/notes" \
  -H "Authorization: Bearer $SEHARI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"recording_id": "c0ffee00-1111-2222-3333-444455556666"}'

#Aman diulang?

Percuma tanpa perubahan. Body-nya harus diperbaiki lebih dulu. Karena parser berhenti sebelum apa pun dikerjakan, tidak ada risiko duplikasi sama sekali pada percobaan berikutnya.

#Jangan tertukar dengan

Kalau JSON Anda berhasil di-parse tapi isinya salah, kodenya invalid_request dan details akan menyebutkan field yang bermasalah. Kalau Content-Type yang salah, kodenya unsupported_media_type — dan itu diperiksa sebelum parsing dimulai, jadi Anda tidak akan pernah menerima keduanya sekaligus.

#Mencegahnya terulang

Di shell, sebagian besar kasus ini berasal dari tanda kutip. Aturan praktisnya: bungkus seluruh JSON dengan kutip tunggal dan pakai kutip ganda di dalamnya, jangan sebaliknya. Kalau body-nya panjang, simpan ke berkas lalu kirim dengan -d @body.json — itu menghilangkan seluruh kelas kesalahan ini sekaligus membuat body-nya bisa divalidasi terpisah.

#Menangani ini di kode

Cabangkan pada error.code, dan bedakan kegagalan yang layak diulang dari yang tidak. Mengulang kegagalan yang tidak akan pernah berhasil hanya menghabiskan kuota rate limit — dan menyembunyikan kegagalan yang sebenarnya butuh perhatian Anda.

javascript
const res = await fetch('https://se-hari.com/api/v1/me', {
	headers: { Authorization: `Bearer ${process.env.SEHARI_API_KEY}` }
});

if (!res.ok) {
	const { error } = await res.json();

	if (error.code === 'malformed_json') {
		// Validasi JSON Anda sebelum mengirim. Di shell, taruh body di antara tanda kutip tunggal…
		console.error(error.message, error.details);
	}

	// request_id adalah satu-satunya cara kami menemukan request ini di log.
	console.error(`request_id: ${error.request_id}`);
}

#Selanjutnya

Pertanyaan umum

Apa arti error malformed_json di Se-Hari API?

HTTP 400. Kami tidak berhasil mem-parse body request sebagai JSON. Ini terjadi sebelum validasi field, jadi tidak ada informasi tentang field mana yang bermasalah — parsernya berhenti lebih awal dari itu.

Apakah aman mengulang request yang gagal dengan malformed_json?

Percuma tanpa perubahan. Body-nya harus diperbaiki lebih dulu. Karena parser berhenti sebelum apa pun dikerjakan, tidak ada risiko duplikasi sama sekali pada percobaan berikutnya.

Bagaimana cara memperbaiki malformed_json?

Validasi JSON Anda sebelum mengirim. Di shell, taruh body di antara tanda kutip tunggal dan pakai kutip ganda di dalamnya. Kalau body dibangun lewat kode, jangan menyusunnya dengan penggabungan string — pakai fungsi serialisasi bawaan bahasa Anda.

Siap mencoba?

Buat API key gratis di dashboard — tidak ada biaya berlangganan, kredit terpakai hanya saat Anda benar-benar memproses rekaman atau membuat meeting.

Buat API Key