User updates the containing object via an older build of client Foo that does not know about bar.
The update RPC does not include bar (eg, because it uses read masks and didn't request it, or because it drops unknown fields.
The bar field is silently cleared
Solution
Change https://linter.aip.dev/134/update-mask-optional-behavior and The field must be optional, and the service must treat an omitted field mask as an implied field mask equivalent to all fields that are populated (have a non-empty value). to make update masks always required.
Problem
bar
bar
on a newer clientbar
.bar
(eg, because it uses read masks and didn't request it, or because it drops unknown fields.bar
field is silently clearedSolution
Change https://linter.aip.dev/134/update-mask-optional-behavior and
The field must be optional, and the service must treat an omitted field mask as an implied field mask equivalent to all fields that are populated (have a non-empty value).
to make update masks always required.