---
{
  "id": "platform.form.response-compatibility",
  "topic": "form",
  "title": "Form 回覆相容性規則",
  "locale": "zh-TW",
  "version": "2026-07-24",
  "summary": "已發布表單會鎖定 field type；已有 responses 後，choice options 只能追加，不能改名、刪除或重排。",
  "content": "Form 會保護歷史答案。表單一旦 published，或 `responseCount > 0`，field type 就不能改；違反時 runtime 回 `resource_conflict`，訊息指出 field type cannot change after publish or responses。從未發布且零 responses 的 draft 才可自由修改欄位。\n\n已有任何 response 後，choice options 只能 append。新陣列的既有前綴必須逐項保留完全相同的 `optionId`、label 與順序；可以在尾端新增選項，但改既有 label／ID、刪除或重排都會回 `resource_conflict`。因為歷史答案存 optionId 並綁定提交當下 revision，破壞性變更會使舊答案難以解讀。\n\n需要破壞性改版時，應新增替代欄位再 archive 舊欄位，或另建新表單；沒有相容性繞過方式。`update_field` 未提供的值會沿用既有內容，只改欄位 label 不必重送 `options`。是否成功永遠以 live Action result 與 typed conflict 為準。\n",
  "aliases": [
    "欄位類型鎖定",
    "追加選項",
    "回覆相容性",
    "修改已發布欄位",
    "重排選項",
    "資源衝突",
    "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/zh-tw/kb/form/response-compatibility/"
}
---

Form 會保護歷史答案。表單一旦 published，或 `responseCount > 0`，field type 就不能改；違反時 runtime 回 `resource_conflict`，訊息指出 field type cannot change after publish or responses。從未發布且零 responses 的 draft 才可自由修改欄位。

已有任何 response 後，choice options 只能 append。新陣列的既有前綴必須逐項保留完全相同的 `optionId`、label 與順序；可以在尾端新增選項，但改既有 label／ID、刪除或重排都會回 `resource_conflict`。因為歷史答案存 optionId 並綁定提交當下 revision，破壞性變更會使舊答案難以解讀。

需要破壞性改版時，應新增替代欄位再 archive 舊欄位，或另建新表單；沒有相容性繞過方式。`update_field` 未提供的值會沿用既有內容，只改欄位 label 不必重送 `options`。是否成功永遠以 live Action result 與 typed conflict 為準。
