restoreQueries and persisterGc throw on malformed persisted entries
Les mainteneurs répondent en général sous 1 jour
@VGontier-cmd y travaille déjà.
Depuis le 6/10/2026.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 72/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- typescript
- Domaine
- backend
Piste de recherche
Start by locating experimental_createQueryPersister and the implementations of restoreQueries() and persisterGc(); compare how they handle invalid JSON with parsed values such as null or {}. Run the reproduction linked in the issue and relevant persister tests. Done means malformed entries are removed without throwing, remaining valid queries are processed, and valid query data of null still restores correctly.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Describe the bug
When using experimental_createQueryPersister, restoreQueries() throws if a stored entry contains "null", "{}" or '{"state":null}'. The entry stays in storage and the next valid query is not restored.
persisterGc() also throws on these entries.
With invalid JSON like "not-json{", the entry is removed and processing continues. I would expect the same behavior for these values.
Your minimal, reproducible example
https://stackblitz.com/edit/bqs8bszm?file=index.js
Steps to reproduce
- Open the reproduction; it runs automatically.
- Each case stores a broken entry followed by a valid query, then calls restoreQueries() or persisterGc().
- The invalid JSON cases pass, but "null", "{}" and '{"state":null}' cause a TypeError. For restoreQueries(), the next valid query is not restored.
Expected behavior
The malformed entry should be removed without throwing, and processing should continue with the remaining entries.
How often does this bug happen?
Every time
Screenshots or Videos
No response
Platform
- OS: macOS 27.0
- Browser: Chromium 154.0.8037.98 (verified with Playwright)
Tanstack Query adapter
vanilla
TanStack Query version
5.104.1 for both @tanstack/query-core and @tanstack/query-persist-client-core
TypeScript version
No response
Additional context
The valid query in the reproduction has null as its data. This is intentional: null query data should still be restored correctly.
- Langage dominant
- TypeScript
- Étoiles
- 50.5k
- Forks
- 4.2k
- Merge moyen
- 8 h 21 min
- PR mergées (30 j)
- 621
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de TanStack/query
-
solid-query: STRICT_READ_UNTRACKED on Solid 2 — client()/options() read in component body (useMutation, useBaseQuery)Peut-être à nouveau libre @LeonxLJX l’a pris il y a 53 jours, et aucune pull request n’est ouverte. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
TanStack/query#11358 · 2 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
useBaseQuery fetches the old query key when an <Activity> tree is revealedPeut-être pris @lazerg l’a pris il y a 7 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
Les mainteneurs répondent en général sous 1 jour
-
[query-broadcast-client-experimental] broadcastQueryClient: an `added` event overwrites a receiving query that has no data (e.g. in error) with the sender's empty statePeut-être pris @lazerg l’a pris il y a 7 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 25/100
Les mainteneurs répondent en général sous 1 jour
-
solid-query 6.0.0-rc.5: onCacheEvent throws NotReadyError during a Solid 2 (rc.14+) transition landingPeut-être pris @UzumakiODZ l’a pris il y a 12 jours. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 28/100
TanStack/query#12031 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Explicit gcTime schedules a GC timer during SSR, retaining the whole render in memoryPeut-être pris @AdzerKI l’a pris il y a 13 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 25/100
TanStack/query#12025 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de TanStack/query
Issues similaires
-
Plugin: sheet music can't be scrolled by hand before playbackPeut-être pris @snakajima l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
receptron/jinglescript#51 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 9 jours
-
clawsweeper:needs-maintainer-review clawsweeper:needs-product-decision clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster P3
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
openclaw/openclaw#186424 · 1 commentaire · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
chore(worker): five module header comments describe the code from before later issues changed itOuvertearea:dev U2-later
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
bentleypark/aiwatch#1824 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Pal-AI-Lab/Coopanion#469 ·
Les mainteneurs répondent en général sous 1 jour