AI-generated Key Takeaways
-
update_mask
errors arise when theupdateMask
query parameter is empty during vehicle updates, particularly after startup. -
To avoid these errors, always include at least one field name in the
updateMask
parameter when updating vehicle data. -
The provided code examples (Swift and Objective-C) demonstrate how to identify and manage
update_mask
errors within your application's error handling logic.
This section describes how to handle errors.
Handle update_mask errors
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