AI-generated Key Takeaways
-
This section explains how to manage
update_maskerrors, which happen when theupdateMaskquery parameter is empty during vehicle updates byGMTDDeliveryVehicleReporter. -
To avoid the
update_maskerror, ensure to always include at least one field name in theupdateMaskparameter, especially during the initial update after startup. -
Code examples in Swift and Objective-C demonstrate how to detect and handle the
update_maskerror 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