---
id: ADR-PFM-ELG-022
title: Field-changing writes carry the version read
product_area: platform
module: eligibility
revision: 1
status: proposed
design_intent: proposed
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Apply that existing standard to optional-version rule writes and repair
  console calls that omit or replace the version originally read.
constrains:
  - DOM-PFM-ELG-001
  - DOM-PFM-ELG-002
  - DOM-PFM-ELG-004
  - DOM-PFM-ELG-005
  - SVC-PFM-ELG-eligibility
  - STATE-PFM-ELG-001
  - SCR-PFM-ELG-007
  - SCR-PFM-ELG-009
origin: >-
  Record Write Contracts standard rule W1 (Andrew's ruling D-05, 2026-10-19: a
  current version on every field-changing write, 400 when missing, 409 when
  stale)
alternatives:
  - option: Keep last-writer-wins writes
    why_not: Concurrent authors can lose changes without a stale-write refusal.
  - option: Require versions only from browser callers
    why_not: Service callers can overwrite changes too.
consequences:
  - >-
    Binding changes, holding endings, settings and preferences already check
    versions.
  - Draft and lifecycle requests still need consistent required preconditions.
  - >-
    The console must retain the version shown to the author rather than fetch a
    newer one immediately before changing it.
supersedes: []
evidence:
  - >-
    services-platform at ad3f6a6: docs/standards/record-write-contracts.md (W1);
    modules/eligibility/aws/api/eligibility.schemas.ts (lifecycleRequestSchema,
    draftSaveRequestSchema)
  - >-
    react-console at baf6dae: lib/eligibility/api.ts (setDefinitionStatus,
    startDraft, rePinBinding)
---
# Field-changing writes carry the version read

## Context

The existing record-write standard already requires writers to protect the version they read.

## Decision

Apply that existing standard to optional-version rule writes and repair console calls that omit or replace the version originally read.

## Alternatives Considered

Keep last-writer-wins writes: Concurrent authors can lose changes without a stale-write refusal.

Require versions only from browser callers: Service callers can overwrite changes too.

## Consequences

Binding changes, holding endings, settings and preferences already check versions. Draft and lifecycle requests still need consistent required preconditions. The console must retain the version shown to the author rather than fetch a newer one immediately before changing it.
