Packages

react-hook-form

7.91.0 ยท 23 Oct 2026MIT42M / weekRepositoryHomepagenpmAtom feed

Upgrading react-hook-form from 3.17.4 to 7.91.0

477 releases in betweennotes for 124

Other targets from 3.17.4Newest 3.x3.29.4
7.0.0 has no release note on GitHub or in the repository's changelog, so its breaking changes are missing from the counts below.
14+
changes to make
0
advisories fixed
123+
new
261+
fixes

Counted from 124 of 477 release notes. Advisories are counted from the advisory database, in full.

Before you upgrade

Tick each one off as you go
  • breaking7.42.0
  • breaking6.6.0
  • breaking6.0.0
  • breaking6.0.0
  • breaking5.0.0
  • breaking4.0.0
  • breaking4.0.0
  • breaking4.0.0
  • breaking4.0.0
  • breaking4.0.0

Security

  • Harden unset() against prototype-path traversal (__proto__ / constructor / prototype), matching the existing set() guard

    7.81.0
  • Harden get() against prototype-path traversal (__proto__ / constructor / prototype)

    7.77.0
  • Security: CVE-2025-67779, CVE-2025-55184, CVE-2025-55183, CVE-2025-55182

    7.69.0

Release by release

  1. 7.91.0

    23 Oct 202646 fixes
    • fixed

      useFieldArray not registering array rules again after reset

    • fixed

      setValue not updating field array rows when a parent object is set

    • fixed

      createFormControl keeping a newer change's error when an older isValid pass settles

    • fixed

      validate treating an empty message array as valid

  2. 7.90.0

    11 Oct 202616 fixes
    • fixed

      Fields named after Object.prototype members not being marked as touched on blur and setValue

    • fixed

      Dirty values extraction for fields named hasOwnProperty

    • fixed

      cloneObject dropping the length of sparse arrays

    • fixed

      cloneObject failing on objects with a null prototype

  3. 7.89.0

    26 Sep 20261 new ยท 18 fixes
    • new

      Add optional @types/react peer dependency

    • fixed

      validateField calling setCustomValidity on refs that don't implement it under native validation

    • fixed

      Form-level validate running a stale function instead of the latest one

    • fixed

      Form-level validation leaving stale errors after a successful re-validation

  4. 7.88.0

    11 Sep 20261 new ยท 29 fixes
    • new

      <ErrorMessage /> component for rendering a field's validation error

    • fixed

      setValue dirty state comparison ignoring valueAs* / setValueAs transforms

    • fixed

      Nested delayError timers not being cancelled when a parent is cleared or unregistered

    • fixed

      Cleared delayError errors coming back once the pending timer fires

  5. 7.87.0

    30 Aug 20262 new ยท 7 fixes
    • new

      shouldTouch option for trigger()

    • new

      OpaqueTypes registry for opaque leaf types

    • fixed

      Inconsistent behavior among useController().field.onChange()-like APIs

    • fixed

      Controller under a null parent submitting undefined instead of a value

  6. 7.86.0

    21 Aug 20264 new ยท 8 fixes
    • new

      Type-safe getErrors method

    • new

      Improve createFormControl

    • new

      Improve clone object check

    • new

      Avoid cloning values in unregister without subscribers

  7. 7.85.0

    8 Aug 20261 new ยท 6 fixes
    • new

      Support <Activity />

    • fixed

      getFieldState error resolution from a field path

    • fixed

      useWatch discarding useForm({ defaultValues }) in favor of its own defaultValue before the form mounts

    • fixed

      setValue emitting a duplicate values state notification for fields without a native input ref

    • fixed

      Stale render re-creating a field array path vacated by an array action

    • fixed

      useFieldArray root-level error (errors.name.root) being lost on append/prepend/insert/remove

    • fixed

      min/max validation being skipped for valueAsDate fields

  8. 7.84.0

    1 Aug 20263 new ยท 3 fixes
    • new

      handleSubmit returns the typed result of the onValid callback instead of discarding it

    • new

      <Form /> supports a function-based action (Server Action style) in addition to URL-string actions

    • new

      Improve performance and reduce bundle size

    • fixed

      reset() with resetOptions.keepDirtyValues freezing clean sibling fields in a nested object when another field in that object is dirty

    • fixed

      Restore missing FieldArray and FormState type exports

    • fixed

      setValues not notifying useFieldArray subscribers, leaving rendered fields stale

84 other lines we could not sort, mostly version bumps
  • Improve performance of Form by reading control from context to avoid unnecessary re-renders

    7.91.0
  • Improve performance of getValues by avoiding unnecessary shallow copies

    7.91.0
  • Simplify multipart content-type header filtering

    7.91.0
  • Align form-level validation error types

    7.91.0
  • Improve performance of watch, subscribe, scoped subscriptions, dirty field checks and form state fan-out

    7.90.0
  • Reduce bundle size

    7.90.0
  • Update dirtyFields typing for field arrays with undefined entries

    7.78.0
  • Separate control context to prevent unnecessary rerenders

    7.71.0
  • Memoize FormProvider context value to prevent unnecessary rerenders

    7.71.0
  • useForm return methods will be memorized based formState update

    7.54.0