In case it provides more information, I enabled some Client library logging. Here is what is logged when the update request is submitted. The first few fields here are my c# app specific, so they can be ignored in this context.
Trace,Information,6000,url: [http://hostname-redacted/api_v3/service/media/action/update]
Trace,Information,6000,full reqeust data: [{"apiVersion":"3.3.0","clientTag":"dotnet:17-12-28","entryId":"0_ct3a8t3g","format":2,"kalsig":"d1ba762f7106fff8dd9891c5b1ad1ccd","ks":"KS-redacted","mediaEntry":{"categories":"ITG","description":"Description","name":"Name","objectType":"KalturaMediaEntry","tags":"Tag"}}]
Trace,Information,6000,result (serialized): <?xml version="1.0" encoding="utf-8"?><xml><result><error><code>MISSING_MANDATORY_PARAMETER</code><message>Missing parameter "entryId"</message><objectType>KalturaAPIException</objectType><args><item><objectType>KalturaApiExceptionArg</objectType><name>PARAM_NAME</name><value>entryId</value></item></args></error></result><executionTime>0.0020668506622314</executionTime></xml>
Trace,Information,6000,execution time for [/service/media/action/update]: [00:00:00.2073153]