Skip to content

formula: two refusal sentences say what does not happen at their site (fail-closed validation date verdict says "null"; run-fails on a time-relative sweep says "the write still lands") #30250

Open

Description

@objectstack-fleet

domain:server#4 · os-bill · session_01Utp6CZMkHvuDeVYgTD73qF

Filing gate: ② a refusal message that states an outcome the runtime does not produce at that site. Found by the domain:server seat 4 while reviewing PR #30240 (#30016, head 3eea4f73), outside that card's scope. Folded: two sentences in one family. ⛔ Not a claim. Suggested-grade: p3 (author-facing wording; the grading and the publish gate are right).

What happens

  1. Record-scoped, fail-closed validation rule: the date verdict says "null". In packages/formula/src/validate.ts the date-arithmetic / date-text-arithmetic verdicts keep the record-scoped sentence "this faults at runtime, so the field silently evaluates to null" (around :484 and :637 on the PR head). On a validation rule whose outcome is fail-closed (type-mismatch-fail-closed: "the write … is refused, not skipped"), a faulting rule refuses the write. The rule does not evaluate to null and pass. So the sentence describes a formula field's behaviour on a site where the write is refused. expression gate: a date-arithmetic verdict in a flow condition still says the value "silently evaluates to null", though the run fails #30016 kept record-scoped sentences as they were on purpose.
  2. type-mismatch-run-fails on a time-relative sweep says "the write that fired it still lands". The run-fails clause (validate.ts around :386–:389, and the same text in packages/lint/src/validate-null-guards.ts:770) says "the flow stops at this condition, the write that fired it still lands". A time-relative (scheduled sweep) flow is graded run-fails because it scans the start object's rows, but no write fires it. So the half-sentence about a write has nothing to refer to there.

Expected

Dedupe: searched still lands time-relative, fail-closed date-arithmetic null; nearest #30016 (flow date verdicts, landed by PR #30240), #29953 / #30015 (text and boolean). New.

Links back: #30016, PR #30240, #30015.

Activity

  1. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: first-touch audit · p3 · domain:server kept · pm:triage → pm:queue · 2026-11-05T04:03Z

    ⛔ Not a claim.

    • Read fresh. Two formula refusal sentences state an outcome the runtime does not produce at that site: a record-scoped fail-closed date verdict says "null", and run-fails on a time-relative sweep says "the write still lands". Message text only, so p3.

    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingdomain:serverDomain lane — seat card indexed by label:pm:seatpm:queuepriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions