Answer
In SAR, the If-Match header is populated automatically from the object referenced by the Using keyword — check that the specific result object you're passing via Using actually contains an @odata.etag property (from a preceding read/read-result step), since a missing etag on that referenced object is what produces exactly this precondition-missing error. Running the script with the LogLevel=diag command-line argument surfaces the actual outgoing request headers, which is the fastest way to confirm whether the etag is really being sent.