Updates an existing asset after an edit on the Land, Leased Land or Livestock screens, including land authentication. A FARMER_ASSETS PATCH ledger entry triggers FarmerAssetsWorker.patch, which sends a one-element list (isListMessage=true) through the offline queue. On 2xx, FarmerAssetsPatchRH logs success (ErrorLogUtils) and closes the ledger; the response body is not read. On error it retries later and applies the same "Integrity" fix for a null quantity as POST.
Headers
Header
Value
Notes
X-SESSIONID
<session id>
Stamped by CoreAPI when the queued operation runs (CoreAPIDefaultImpl.doOperation). On a 401 the token is invalidated and the call retried. BaseResponseHandler also refreshes the session after a 500 on a gateway URL (first 5 attempts).
X-REQUESTID
<uuid v4>
Idempotency key added by the offline queue (OperationManagerImpl). A 409 replaces it with a new UUID. It is removed for multipart requests.
Values from the asset ref data (land or livestock picker on the Land and Livestock screens).
[].*.labels[]
array
No
Localised labels, stored in asset_*_labels tables.
[].totalQuantity.value
double
No
Land extent (acres) or head count, from the Extent field. On an "Integrity" error, the RH sets a null value to 0.0 and re-queues.
[].totalQuantity.uoM
object
No
Unit of measure (code, symbol, measurementType).
[].nameList[].text
string
No
Asset name or survey label. PII: may contain survey or land identifiers.
[].assetSpecsList[]
array
No
specName/specValue pairs (for example survey number). PII: land record identifiers.
[].appMillMetadata.ie_appId
string
No
Local app id of the farmer, used to resolve owningEntityId offline.
[].assetCheckSum
string
No
MD5 of the asset name plus total quantity (IeAsset.setMD5Hash). The server uses it to detect checksum mismatches (ERR_PLATFORM_ASSET_CHECKSUM_MISMATCH).
Not read by the app. The RH reuses the request message.
Errors
Status
When
What the app does
401
Session expired
CoreAPI invalidates the session id and retries once. If it still fails, the response handler returns TryAgain.LATER and the operation stays in the queue.
409
Duplicate X-REQUESTID
SyncQueueProcessor records the request id and swaps in a fresh X-REQUESTID for the next attempt.
4xx/5xx (other)
Server rejects or fails
onError returns TryAgain.LATER (FarmerAssetsPatchRH). Each failure is logged in the local error_log table (URL, body, headers). Every 10th attempt (up to attempt 5000) the whole operation is copied to Firestore urvi_sync_log. A 500 on a gateway URL in the first 5 attempts forces a session refresh.