Page Summary
-
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

