Handbook AI Engineering
Appendix B

Kamus Error

Error yang paling sering ditemui dalam pekerjaan AI Engineering, apa artinya, dan cara mengatasinya.

Error yang paling sering ditemui, apa artinya, dan cara mengatasinya tanpa harus membuka Stack Overflow.

ModuleNotFoundError: No module named 'X'

Python

Artinya

Python tidak menemukan library yang diimpor. Bisa karena library belum terinstal, atau terinstal di environment yang berbeda dari yang sedang aktif.

Cara Diagnosis

Cek apakah virtual environment aktif (which python harus menunjuk ke dalam folder venv/). Jalankan pip list untuk melihat apa yang terinstal.

Solusi: Aktifkan venv: source venv/bin/activate. Install library: pip install nama-library. Jika masih gagal, cek apakah nama import berbeda dari nama package.

KeyError: 'NAMA_KEY'

Python

Artinya

Kode mencoba mengakses kunci dari dictionary atau environment yang tidak ada. Paling sering terjadi ketika os.environ['API_KEY'] dipanggil tapi variabel belum di-set.

Cara Diagnosis

Print dictionary yang diakses untuk melihat kunci apa yang sebenarnya ada. Untuk env var: print(os.environ.keys()).

Solusi: Gunakan os.getenv('KEY') yang mengembalikan None jika tidak ada (tidak crash). Pastikan file .env sudah di-load dengan load_dotenv().

TypeError: argument of type 'NoneType' is not iterable

Python

Artinya

Variabel yang diharapkan berisi list atau string ternyata bernilai None. Sering terjadi ketika fungsi mengembalikan None pada kasus tertentu yang tidak ditangani.

Cara Diagnosis

Tambahkan print() untuk memeriksa nilai variabel sebelum baris yang error. Cari fungsi yang seharusnya mengembalikan nilai tapi mungkin mengembalikan None.

Solusi: Tambahkan pengecekan: if hasil is None: return []. Pastikan semua branch di fungsi mengembalikan nilai, bukan hanya branch utama.

HTTP 401 Unauthorized

API

Artinya

API key tidak valid, expired, atau tidak disertakan dalam request. Server menolak request karena tidak bisa memverifikasi identitas pemanggil.

Cara Diagnosis

Print API key yang digunakan (hati-hati jangan commit ke git). Periksa apakah format header sudah benar, beberapa API butuh prefix Bearer, yang lain tidak.

Solusi: Verifikasi API key masih aktif di dashboard provider. Pastikan load_dotenv() dipanggil sebelum os.getenv(). Cek format header yang dibutuhkan di dokumentasi.

HTTP 429 Too Many Requests

API

Artinya

Terlalu banyak request dalam waktu singkat, rate limit tercapai. Setiap provider LLM dan vector database memiliki batas request per menit atau per hari.

Cara Diagnosis

Periksa header response, biasanya ada Retry-After yang menunjukkan berapa detik harus menunggu. Cek dashboard provider untuk melihat usage saat ini.

Solusi: Tambahkan time.sleep() atau exponential backoff. Implementasikan caching (Bab 19) untuk mengurangi jumlah request. Pertimbangkan upgrade tier jika sering terkena limit.

HTTP 422 Unprocessable Entity

API / FastAPI

Artinya

Request diterima tapi isinya tidak sesuai dengan skema yang diharapkan. Di FastAPI, ini berarti Pydantic menolak input karena tipe data atau constraint yang tidak terpenuhi.

Cara Diagnosis

Baca body response, FastAPI mengembalikan detail field mana yang bermasalah dan mengapa. Ini adalah error yang paling informatif karena pesan error-nya sangat spesifik.

Solusi: Sesuaikan request body dengan skema Pydantic yang didefinisikan di endpoint. Jika error dari sisi server, periksa model Pydantic, mungkin constraint terlalu ketat.

docker: Error response from daemon: port is already allocated

Docker

Artinya

Port yang ingin dibuka oleh container sudah digunakan oleh container atau proses lain. Docker tidak bisa membuka dua proses di port yang sama.

Cara Diagnosis

docker ps untuk melihat container yang mungkin masih berjalan menggunakan port tersebut. lsof -i :8000 untuk melihat proses non-Docker yang menggunakan port tersebut.

Solusi: Hentikan container lama: docker stop <id>. Atau ganti port mapping: -p 8001:8000 agar port lokal berbeda dari yang sudah digunakan.

exec format error / no matching manifest for linux/amd64

Docker

Artinya

Image dibangun untuk arsitektur yang berbeda dari tempat ia dijalankan. Paling sering terjadi ketika image dibangun di Mac M1/M2 (ARM) lalu dijalankan di server cloud (AMD64).

Cara Diagnosis

Periksa arsitektur image: docker inspect nama-image | grep Architecture. Jika menunjukkan arm64 tapi server butuh amd64, image perlu di-rebuild.

Solusi: Build ulang dengan flag platform: docker buildx build --platform linux/amd64 -t nama-image .. Atau tambahkan FROM --platform=linux/amd64 di baris pertama Dockerfile.