Lihat bagian berikut untuk mendapatkan bantuan jika Anda mengalami masalah.
Status hilang di Fleet Engine
Saat menggunakan Fleet Engine, desain penerapan Anda untuk mengantisipasi kegagalan. Misalnya, jika Anda mengirimkan permintaan ke Fleet Engine untuk mengupdate kendaraan, Fleet Engine dapat merespons dengan error yang menunjukkan bahwa kendaraan tersebut tidak ada. Kemudian, penerapan Anda harus membuat ulang kendaraan dalam status baru.
Dalam skenario yang sangat tidak mungkin terjadi, yaitu kegagalan parah Fleet Engine, Anda mungkin perlu membuat ulang sebagian besar atau semua kendaraan dan tugas. Jika kecepatan pembuatan menjadi terlalu tinggi, beberapa permintaan mungkin gagal lagi karena masalah kuota karena pemeriksaan kuota dilakukan untuk menghindari serangan penolakan layanan (DOS). Dalam hal ini, perlambat laju pembuatan ulang menggunakan strategi backoff untuk percobaan ulang.
Upaya coba lagi
Pastikan sistem Anda menerapkan percobaan ulang untuk permintaan ke Fleet Engine karena terkadang permintaan tersebut dapat gagal. Library klien Fleet Engine melakukan percobaan ulang 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 untuk memulihkan statusnya saat ini. Aplikasi juga harus membuat ulang dan secara eksplisit menetapkan daftar perhentian untuk Driver SDK.
Catatan: Pemulihan ini harus dilakukan secara mandiri tanpa mengandalkan informasi dari Fleet Engine, selain error yang menunjukkan apakah dan kapan entitas sudah ada dalam database. Jika entitas sudah ada, maka error tersebut dapat diatasi dan entitas dapat diperbarui menggunakan ID-nya.
Error batas waktu terlampaui
Jika Anda mendapatkan error DEADLINE_EXCEEDED saat memanggil Fleet Engine, berarti permintaan
membutuhkan 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 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.
- Perbaikan: 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 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: Masalah 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 does not contain a matching scope for requested trip".
- 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 diisi (misalnya,
VehicleType), atau memberikan koordinat yang tidak valid untuk titik pengambilan. - 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 umumnya mencakup upaya mengubah perjalanan
COMPLETEatauCANCELEDke negara bagian lain, 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.