fix: stop triggerRefresh() after note creation to prevent stale cache overwrite in production
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 44s

In production (Docker/Next.js standalone), getAllNotes() can return cached results
when called immediately after createNote(skipRevalidation:true). This caused newly
created notes to disappear after the cache reload overwrote the optimistic local state.

Fix: remove triggerRefresh() from both handleCreateNote (NotesTabsView) and
handleNoteCreated (HomeClient). The note is already added optimistically to local
state and does not need a server round-trip.
This commit is contained in:
2026-05-02 20:28:03 +02:00
parent f93752de14
commit 547c5ffecb
2 changed files with 8 additions and 4 deletions

View File

@@ -123,7 +123,9 @@ export function HomeClient({ initialNotes, initialSettings }: HomeClientProps) {
}
})
triggerRefresh()
// NOTE: No triggerRefresh() — note is added optimistically above.
// triggerRefresh() → getAllNotes() can return stale Next.js cache (note
// created with skipRevalidation:true) and overwrite the freshly-added note.
if (!note.notebookId) {
const wordCount = (note.content || '').trim().split(/\s+/).filter(w => w.length > 0).length
@@ -131,7 +133,7 @@ export function HomeClient({ initialNotes, initialSettings }: HomeClientProps) {
setNotebookSuggestion({ noteId: note.id, content: note.content || '' })
}
}
}, [searchParams, labels, router, triggerRefresh])
}, [searchParams, labels, router])
const handleOpenNote = (noteId: string) => {
const note = notes.find(n => n.id === noteId)