---
{
  "id": "platform.form.response-compatibility",
  "topic": "form",
  "title": "Form response compatibility rules",
  "locale": "en",
  "version": "2026-07-24",
  "summary": "Published Forms lock field types, and Forms with responses allow choice options to be appended but not renamed, removed, or reordered.",
  "content": "Form field updates protect historical answers. Once a Form has been published, or whenever `responseCount > 0`, a field’s type cannot change; runtime rejects the update with `resource_conflict` and the message that the field type cannot change after publish or responses. A draft that has never been published and has zero responses may change its fields freely.\n\nAfter any response exists, choice options are append-only. Every existing item’s `optionId`, label, and order must remain byte-for-byte in the same prefix of the new options array. Appending new options is allowed; renaming an existing label or ID, deleting an option, or reordering options is rejected with `resource_conflict`. Historical answers store option IDs and bind to the submitted revision, so destructive edits would make old answers ambiguous.\n\nFor a breaking redesign, add a replacement field and archive the old field, or create a new Form. There is no compatibility bypass. `update_field` carries forward omitted values; changing only the field label does not require resending `options`. Always trust the live Action result and its typed conflict over a prediction from this card.\n",
  "aliases": [
    "field type locked",
    "append options",
    "response compatibility",
    "change published field",
    "reorder choices",
    "resource conflict"
  ],
  "tags": [
    "form",
    "compatibility",
    "responses",
    "choices"
  ],
  "relatedActions": [
    "arinova.form.get_form",
    "arinova.form.update_field",
    "arinova.form.add_field",
    "arinova.form.archive_field",
    "arinova.form.create_form"
  ],
  "relatedActionPrefixes": [],
  "url": "https://docs.arinova.ai/en/kb/form/response-compatibility/"
}
---

Form field updates protect historical answers. Once a Form has been published, or whenever `responseCount > 0`, a field’s type cannot change; runtime rejects the update with `resource_conflict` and the message that the field type cannot change after publish or responses. A draft that has never been published and has zero responses may change its fields freely.

After any response exists, choice options are append-only. Every existing item’s `optionId`, label, and order must remain byte-for-byte in the same prefix of the new options array. Appending new options is allowed; renaming an existing label or ID, deleting an option, or reordering options is rejected with `resource_conflict`. Historical answers store option IDs and bind to the submitted revision, so destructive edits would make old answers ambiguous.

For a breaking redesign, add a replacement field and archive the old field, or create a new Form. There is no compatibility bypass. `update_field` carries forward omitted values; changing only the field label does not require resending `options`. Always trust the live Action result and its typed conflict over a prediction from this card.
