Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Codemod add-override-access-true silently skips calls with spread or non-literal options

Open
#18,874 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@RafalFilipek is already working on this.

Since Oct 20, 2026.

  • #18881 by @RafalFilipek — open

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Tech stack
node.js, typescript
Domain
tooling

Research direction

The issue links to the proposed fix branch, which includes failing tests, migration guide updates, and README changes. Start by reviewing the add-override-access-true transform and its tests there; the issue does not name their paths. Done means skipped calls with spread or non-literal options produce a note with the file, line, callee, and reason, with the guide and README updated. An open pull request already addresses this work.

Written by the indexing model from the issue text.

Description

area: core Bug created-by: Contributor
Describe the Bug

add-override-access-true leaves two kinds of Local API calls unchanged, and says nothing about them:

  • calls whose options contain a spread, e.g. payload.find({ ...opts, collection });
  • calls whose argument is not an object literal, e.g. payload.find(args) or payload.jobs.queue(args).

In v4 overrideAccess defaults to false, so these calls start enforcing access control without anyone being told. A typecheck doesn't catch it either, because the property is optional.

The runner already has a notes channel (TransformResult.notes) for this. Other transforms use it with file:line: messages.

Link to the code that reproduces this issue

https://github.com/RafalFilipek/payload/tree/fix/codemod-report-skipped-override-access

This branch has the proposed fix and tests that fail without it. It adds a note for each skipped call (file, line, callee, reason) without guessing a value, and updates the migration guide and the README. (Area: @payloadcms/codemod, which is not in the list.)

Reproduction Steps

Run the codemod on:

const quiet = { overrideAccess: false }
await payload.find({ ...quiet, collection: 'posts' })
await payload.find(args)

Actual: no change and no message.

Which area(s) are affected?

area: core

Environment Info
Payload 4.0.0-beta, main

Generated by Claude Code

Dominant language
TypeScript
Stars
45.5k
Forks
4.3k
Avg merge
1d 19h
Merged PRs (30d)
295

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from payloadcms/payload

All issues in payloadcms/payload

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.