Lihat bagian berikut untuk mendapatkan bantuan jika Anda mengalami masalah.
Status hilang di Fleet Engine
Saat menggunakan Fleet Engine, rancang 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. Kemudian, implementasi Anda harus membuat ulang kendaraan dalam status baru.
Dalam skenario yang sangat tidak mungkin terjadi, yaitu kegagalan fatal 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 dilakukan 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 percobaan ulang untuk permintaan ke Fleet Engine karena permintaan tersebut mungkin terkadang gagal. Library klien Fleet Engine melakukan percobaan ulang secara default.
Status hilang di aplikasi pengemudi
Jika aplikasi pengemudi error, aplikasi harus membuat ulang status saat ini dalam Driver SDK. Aplikasi harus mencoba membuat ulang tugas untuk memastikan tugas tersebut ada dan untuk memulihkan statusnya saat ini. Aplikasi juga harus membuat ulang dan menetapkan daftar perhentian secara eksplisit untuk Driver SDK.
Catatan: Pemulihan ini harus dilakukan secara mandiri tanpa mengandalkan informasi dari Fleet Engine, selain error yang menunjukkan apakah dan kapan entity sudah ada dalam database. Jika entity sudah ada, error tersebut dapat diserap dan entity dapat diupdate menggunakan ID-nya.
Error batas waktu terlampaui
Jika Anda mendapatkan error DEADLINE_EXCEEDED saat memanggil Fleet Engine, permintaan memerlukan waktu lebih lama daripada waktu tunggu yang dikonfigurasi. Library klien Fleet Engine memiliki
waktu tunggu default, tetapi Anda mungkin perlu menyesuaikannya.
Untuk mengetahui 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 alami, penyebabnya, dan cara mengatasinya.
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 entity menggunakan ID yang tidak ada dalam database.
- Perbaikan: Pastikan ID entitas sudah benar dan entitas telah berhasil dibuat sebelum Anda mencoba mengaksesnya.
ALREADY_EXISTS (HTTP 409)
Entitas yang Anda coba buat sudah ada.
- Penyebab: Disebabkan oleh pemanggilan metode pembuatan (seperti
CreateVehicleatauCreateTrip) dengan ID yang sudah digunakan. - Perbaikan: Perbarui entity 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".
- Perbaikan: Periksa izin Akun Layanan Anda dan pastikan klaim JWT Anda menyertakan cakupan yang benar untuk entitas yang ingin Anda 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 wajib (misalnya,
VehicleType), atau memberikan koordinat yang tidak valid untuk titik penjemputan. - Perbaikan: 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 umum meliputi upaya mengubah perjalanan
COMPLETEatauCANCELEDke status yang berbeda, atau mencoba menetapkan tugasCLOSEDke kendaraan. - Perbaikan: 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 pada layanan Fleet Engine.
- Perbaikan: Permintaan dapat dicoba lagi dengan aman menggunakan backoff eksponensial.