Lihat bagian berikut untuk mendapatkan bantuan jika Anda mengalami masalah.
Status hilang di Fleet Engine
Saat menggunakan Fleet Engine, desain implementasi Anda untuk mengantisipasi kegagalan. Misalnya, jika Anda mengirimkan permintaan ke Fleet Engine untuk memperbarui kendaraan, Fleet Engine mungkin akan merespons dengan error yang menunjukkan bahwa kendaraan tersebut tidak ada. Implementasi Anda kemudian harus membuat ulang kendaraan dalam status baru.
Dalam skenario yang sangat tidak mungkin terjadi, yaitu kegagalan parah pada Fleet Engine, Anda mungkin perlu membuat ulang sebagian besar atau semua kendaraan dan tugas. Jika tingkat pembuatan menjadi terlalu tinggi, beberapa permintaan mungkin akan gagal lagi karena masalah kuota karena pemeriksaan kuota diterapkan untuk menghindari serangan denial of service (DOS). Dalam hal ini, perlambat tingkat pembuatan ulang menggunakan strategi backoff untuk percobaan ulang.
Upaya coba lagi
Pastikan sistem Anda menerapkan upaya coba lagi untuk permintaan ke Fleet Engine karena permintaan tersebut mungkin sesekali gagal. Library klien Fleet Engine mengeluarkan upaya coba lagi secara default.
Status hilang di aplikasi pengemudi
Jika aplikasi pengemudi mengalami error, aplikasi harus membuat ulang status saat ini dalam Driver SDK. Aplikasi harus mencoba membuat ulang tugas untuk memastikan tugas tersebut ada dan memulihkan statusnya saat ini. Aplikasi juga harus membuat ulang dan menetapkan daftar perhentian untuk Driver SDK secara eksplisit.
Catatan: Pemulihan ini harus dilakukan secara otomatis tanpa mengandalkan informasi dari Fleet Engine, selain error yang menunjukkan apakah dan kapan entitas sudah ada dalam database. Jika entitas sudah ada, error tersebut dapat diserap dan entitas dapat diperbarui menggunakan ID-nya.
Error batas waktu terlampaui
Jika Anda mendapatkan error DEADLINE_EXCEEDED saat memanggil Fleet Engine, permintaan memerlukan waktu lebih lama dari waktu tunggu yang dikonfigurasi. Library klien Fleet Engine memiliki waktu tunggu default, tetapi Anda mungkin perlu menyesuaikannya.
Untuk informasi umum tentang batas waktu gRPC, lihat gRPC dan Batas Waktu.
Untuk mengonfigurasi batas waktu saat menggunakan library klien Java Fleet Engine, Anda dapat menyesuaikan setelan percobaan ulang RPC. Contoh berikut menunjukkan cara mengonfigurasi waktu tunggu kustom saat menyiapkan VehicleService:
VehicleServiceSettings.Builder settingsBuilder = VehicleServiceSettings.newBuilder();
// Set the timeout to 10 seconds.
settingsBuilder
.getVehicleSettings()
.setRetrySettings(
settingsBuilder.getVehicleSettings().getRetrySettings().toBuilder()
.setTotalTimeout(java.time.Duration.ofSeconds(10))
.build());
VehicleServiceClient client = VehicleServiceClient.create(settingsBuilder.build());
Error API umum
Bagian ini mencantumkan error API umum yang mungkin Anda temui, penyebabnya, dan cara menyelesaikannya.
NOT_FOUND (HTTP 404)
Entitas yang diminta (seperti kendaraan, perjalanan, atau tugas) tidak dapat ditemukan.
- Penyebab: Biasanya disebabkan oleh upaya untuk mendapatkan, memperbarui, atau menghapus entitas menggunakan ID yang tidak ada dalam database.
- Solusi: Pastikan ID entitas sudah benar dan entitas berhasil dibuat sebelum Anda mencoba mengaksesnya.
ALREADY_EXISTS (HTTP 409)
Entitas yang Anda coba buat sudah ada.
- Penyebab: Disebabkan oleh panggilan metode pembuatan (seperti
CreateVehicleatauCreateTrip) dengan ID yang sudah digunakan. - Solusi: Perbarui entitas yang ada, atau gunakan ID unik baru untuk permintaan pembuatan.
PERMISSION_DENIED (HTTP 403)
Anda tidak memiliki izin yang diperlukan untuk menyelesaikan permintaan.
- Penyebab: Hal ini biasanya terjadi jika Token Web JSON (JWT) Anda tidak memiliki klaim yang benar, atau jika akun layanan yang menandatangani JWT tidak memiliki peran IAM yang diperlukan. Misalnya, "JWT tidak berisi cakupan yang cocok untuk perjalanan yang diminta".
- Solusi: Periksa izin Akun Layanan Anda dan pastikan klaim JWT Anda menyertakan cakupan yang benar untuk entitas yang Anda coba akses.
INVALID_ARGUMENT (HTTP 400)
Satu atau beberapa argumen yang diteruskan dalam permintaan tidak valid.
- Penyebab: Hal ini dapat terjadi karena berbagai alasan, seperti memberikan nilai
di luar rentang (misalnya, kapasitas maksimum), tidak mengisi kolom yang diperlukan (misalnya,
VehicleType), atau memberikan koordinat yang tidak valid untuk titik penjemputan. - Solusi: Tinjau pesan error untuk kolom tertentu yang tidak valid dan pastikan permintaan Anda sesuai dengan spesifikasi API.
FAILED_PRECONDITION (HTTP 400)
Operasi tersebut ditolak karena sistem tidak dalam keadaan dibutuhkan untuk menjalankan operasi.
- Penyebab: Penyebab umumnya mencakup upaya untuk mengubah perjalanan
COMPLETEatauCANCELEDke status yang berbeda, atau mencoba menetapkan tugasCLOSEDke kendaraan. - Solusi: Pastikan status entitas saat ini mengizinkan operasi yang Anda coba. Periksa pesan error untuk mengetahui pelanggaran status tertentu.
UNAVAILABLE (HTTP 503)
Layanan tidak tersedia.
- Penyebab: Hal ini menunjukkan masalah sementara dengan layanan Fleet Engine.
- Solusi: Permintaan dapat dicoba lagi dengan aman menggunakan backoff eksponensial.