You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|**fields**|`string[]`| ✅ | Caller-supplied field names the engine removed from the write payload |
151
+
|**reason**|`Enum<'readonly' \| 'readonly_when'>`| ✅ | Why the fields were dropped: static readonly (#2948) or a TRUE readonlyWhen predicate (#3042) |
152
+
|**index**|`integer`| ✅ | Index of the operation in the request `operations` array |
153
+
154
+
139
155
---
140
156
141
157
## CrossObjectBatchOperation
@@ -171,6 +187,7 @@ const result = BatchConfig.parse(data);
171
187
| Property | Type | Required | Description |
172
188
| :--- | :--- | :--- | :--- |
173
189
|**results**|`any[]`| ✅ | Per-operation result, index-aligned with the request operations |
190
+
|**droppedFields**|`{ object: string; fields: string[]; reason: Enum<'readonly' \| 'readonly_when'>; index: integer }[]`| optional | Write-observability (#3407/#3431/#3455/#3794): caller-supplied fields the engine LEGALLY stripped from an operation before it was written — static `readonly` (#2948) or a TRUE `readonlyWhen` predicate (#3042). This endpoint is the console record form's save path (master-detail writes parent + children in one transaction), so without it the ONE surface where a user edits a `readonlyWhen` field reported plain success while the value never landed. Each event carries the `index` of its operation. Present ONLY when ≥1 field was dropped; the batch still committed without them (results/success semantics unchanged). Optional — omit-when-empty keeps the shape backward-compatible. |
0 commit comments