nextjs - ✅(Solved) Fix Next 16.2 router cache issue, if search param name is used multiple times [1 pull requests, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
vercel/next.js#92152Fetched 2026-04-08 01:56:48
View on GitHub
Comments
0
Participants
1
Timeline
12
Reactions
7
Participants
Timeline (top)
subscribed ×6cross-referenced ×2labeled ×2issue_type_added ×1

Error Message

PR fix notes

PR #5: feat: transactions page with filtering and inline editing

Description (problem / solution / changelog)

Summary

  • Builds out the /transactions stub into a full transaction browser
  • Month navigation, category dropdown, and debounced text search — all URL-driven (server component, no client-side data fetching)
  • Click any row to open an edit dialog: set category override, notes, mark as transfer, or hide the transaction
  • New PATCH /api/transactions/[id] route handles transaction edits
  • New getTransactions() query supports month/category/search filtering; updateTransaction() handles edits

Test plan

  • Navigate to /transactions — current month's transactions appear in a table
  • Use prev/next buttons to change month — table reloads
  • Select a category from the dropdown — table filters correctly
  • Type a search term — table narrows after ~400ms debounce
  • Click a row — edit dialog opens pre-filled with existing values
  • Change category and save — row reflects change after refresh
  • Mark a transaction as hidden — it disappears from the table
  • npx tsc --noEmit passes clean

🤖 Generated with Claude Code

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

Summary by CodeRabbit

  • New Features

    • Full transactions page with month-based navigation and dynamic rendering
    • Transaction filters: month, category, debounced search
    • Transactions table with selectable rows, empty-state messaging, and inline edit dialog
    • Server endpoint for partial transaction updates and improved search matching
    • Database-unavailable banner with recovery instructions
  • Tests

    • Comprehensive test suites for API, page, and transaction components
  • Chores

    • Testing setup and Vitest configuration; npm scripts for running tests
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Changed files

  • package-lock.json (modified, +4432/-2804)
  • package.json (modified, +11/-3)
  • src/app/api/transactions/[id]/route.test.ts (added, +237/-0)
  • src/app/api/transactions/[id]/route.ts (added, +65/-0)
  • src/app/transactions/page.tsx (modified, +52/-3)
  • src/components/cashflow/MonthSelector.tsx (modified, +1/-1)
  • src/components/transactions/TransactionEditDialog.test.tsx (added, +365/-0)
  • src/components/transactions/TransactionEditDialog.tsx (added, +167/-0)
  • src/components/transactions/TransactionFilters.test.tsx (added, +213/-0)
  • src/components/transactions/TransactionFilters.tsx (added, +111/-0)
  • src/components/transactions/TransactionTable.test.tsx (added, +224/-0)
  • src/components/transactions/TransactionTable.tsx (added, +111/-0)
  • src/lib/queries/transactions.test.ts (added, +220/-0)
  • src/lib/queries/transactions.ts (modified, +64/-1)
  • src/test/setup.ts (added, +1/-0)
  • vitest.config.ts (added, +18/-0)

Code Example

Operating System:
  Platform: darwin
  Arch: arm64
  Version: Darwin Kernel Version 25.3.0: Wed Jan 28 20:51:28 PST 2026; root:xnu-12377.91.3~2/RELEASE_ARM64_T6041
  Available memory (MB): 65536
  Available CPU cores: 16
Binaries:
  Node: 24.11.0
  npm: 11.8.0
  Yarn: 1.22.22
  pnpm: 10.33.0
Relevant Packages:
  next: 16.2.1 // Latest available version is detected (16.2.1).
  eslint-config-next: N/A
  react: 19.2.3
  react-dom: 19.2.3
  typescript: 5.9.3
Next.js Config:
  output: N/A
RAW_BUFFERClick to expand / collapse

Link to the code that reproduces this issue

https://github.com/JonasSeegers/next-16-error-example/tree/main/src/app

To Reproduce

  1. Start the application
  2. Select every color
  3. Deselect "green"

Current vs. Expected behavior

Current behavior: I don't see the Suspense fallback, the list doesn't show the state correctly Expected behavior: After deselecting "green", I want to see "loading..." immediately and the correct list after 1500ms

Provide environment information

Operating System:
  Platform: darwin
  Arch: arm64
  Version: Darwin Kernel Version 25.3.0: Wed Jan 28 20:51:28 PST 2026; root:xnu-12377.91.3~2/RELEASE_ARM64_T6041
  Available memory (MB): 65536
  Available CPU cores: 16
Binaries:
  Node: 24.11.0
  npm: 11.8.0
  Yarn: 1.22.22
  pnpm: 10.33.0
Relevant Packages:
  next: 16.2.1 // Latest available version is detected (16.2.1).
  eslint-config-next: N/A
  react: 19.2.3
  react-dom: 19.2.3
  typescript: 5.9.3
Next.js Config:
  output: N/A

Which area(s) are affected? (Select all that apply)

Linking and Navigating

Which stage(s) are affected? (Select all that apply)

next dev (local), next start (local)

Additional context

In our application we're following this guide to provide a page with filtering options. This used to work very well, but since we updated next to 16.2.x we run into the same issue that you can reproduce from the given repository

extent analysis

TL;DR

The issue can likely be resolved by adjusting the Suspense fallback handling in the Next.js application to correctly display the loading state after deselecting an option.

Guidance

  • Review the next version upgrade changes and check if there are any breaking changes related to Suspense fallback handling in version 16.2.x.
  • Verify that the use client directive is correctly used in the affected components to ensure proper client-side rendering.
  • Check the implementation of the filtering options and the Suspense fallback to ensure it is correctly handling the deselect event.
  • Test the application with different filtering options to identify if the issue is specific to the "green" option or a more general problem.

Example

No specific code example can be provided without further information about the implementation details.

Notes

The issue seems to be related to the upgrade of next to version 16.2.x, and it is recommended to review the release notes and documentation for any changes that might affect the Suspense fallback handling.

Recommendation

Apply workaround: Adjust the Suspense fallback handling to correctly display the loading state after deselecting an option, as the issue seems to be related to the upgrade of next to version 16.2.x and not a specific bug that can be fixed by upgrading to a newer version.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING