AI-generated Key Takeaways
-
This section explains how to manage
update_mask
errors, which happen when theupdateMask
query parameter is empty during vehicle updates byGMTDDeliveryVehicleReporter
. -
To avoid the
update_mask
error, ensure to always include at least one field name in theupdateMask
parameter, especially during the initial update after startup. -
Code examples in Swift and Objective-C demonstrate how to detect and handle the
update_mask
error within your application's vehicle reporter listener implementation.
This section describes how to handle errors.
Handle update_mask errors
When GMTDDeliveryVehicleReporter
sends a vehicle update, an update_mask
error can occur when the updateMask
query parameter is empty. To prevent
this error, always provide at least one field name. It typically occurs for the
first update after startup. For more information about updating vehicle fields
in Fleet Engine, see Update vehicle fields.
The following example shows how to handle this error:
Swift
import GoogleRidesharingDriver
class VehicleReporterListener: NSObject, GMTDVehicleReporterListener {
func vehicleReporter(
_ vehicleReporter: GMTDVehicleReporter,
didFail vehicleUpdate: GMTDVehicleUpdate,
withError error: Error
) {
let fullError = error as NSError
if let innerError = fullError.userInfo[NSUnderlyingErrorKey] as? NSError {
let innerFullError = innerError as NSError
if innerFullError.localizedDescription.contains("update_mask cannot be empty") {
emptyMaskUpdates += 1
return
}
}
failedUpdates += 1
}
override init() {
emptyMaskUpdates = 0
failedUpdates = 0
}
}
Objective-C
#import "VehicleReporterListener.h"
#import <GoogleRidesharingDriver/GoogleRidesharingDriver.h>
@implementation VehicleReporterListener {
NSInteger emptyMaskUpdates = 0;
NSInteger failedUpdates = 0;
}
- (void)vehicleReporter:(GMTDVehicleReporter *)vehicleReporter
didFailVehicleUpdate:(GMTDVehicleUpdate *)vehicleUpdate
withError:(NSError *)error {
for (NSError *underlyingError in error.underlyingErrors) {
if ([underlyingError.localizedDescription containsString:@"update_mask cannot be empty"]) {
emptyMaskUpdates += 1;
return;
}
}
failedUpdates += 1
}
@end