diff --git a/.changeset/spicy-poems-refuse.md b/.changeset/spicy-poems-refuse.md deleted file mode 100644 index f0bdeecd..00000000 --- a/.changeset/spicy-poems-refuse.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'urql': patch ---- - -Fix suspense cache entries getting poisoned when an operation ends without a result. When an operation was torn down while a `useQuery` was suspended, its suspense promise could never resolve and was re-thrown on every future render, permanently stuck on its `Suspense` fallback. Similarly, a settled promise entry would be re-thrown on every render, locking React into an infinite render loop. Such entries are now evicted from the suspense cache and the query is executed again. diff --git a/examples/with-apq/package.json b/examples/with-apq/package.json index 15fca607..adfb1e1b 100644 --- a/examples/with-apq/package.json +++ b/examples/with-apq/package.json @@ -11,7 +11,7 @@ "graphql": "^16.6.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "urql": "^5.0.3" + "urql": "^5.0.4" }, "devDependencies": { "@vitejs/plugin-react": "^3.1.0", diff --git a/examples/with-defer-stream-directives/package.json b/examples/with-defer-stream-directives/package.json index 0fabbfc0..c627b7ec 100644 --- a/examples/with-defer-stream-directives/package.json +++ b/examples/with-defer-stream-directives/package.json @@ -22,7 +22,7 @@ "graphql": "17.0.0-alpha.2", "react": "^18.2.0", "react-dom": "^18.2.0", - "urql": "^5.0.3" + "urql": "^5.0.4" }, "devDependencies": { "@apollo/server": "^4.4.1", diff --git a/examples/with-graphcache-pagination/package.json b/examples/with-graphcache-pagination/package.json index 59e333a7..d7e679da 100644 --- a/examples/with-graphcache-pagination/package.json +++ b/examples/with-graphcache-pagination/package.json @@ -11,7 +11,7 @@ "graphql": "^16.6.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "urql": "^5.0.3" + "urql": "^5.0.4" }, "devDependencies": { "@vitejs/plugin-react": "^3.1.0", diff --git a/examples/with-graphcache-updates/package.json b/examples/with-graphcache-updates/package.json index 907570b9..afa0022b 100644 --- a/examples/with-graphcache-updates/package.json +++ b/examples/with-graphcache-updates/package.json @@ -12,7 +12,7 @@ "graphql": "^16.6.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "urql": "^5.0.3" + "urql": "^5.0.4" }, "devDependencies": { "@vitejs/plugin-react": "^3.1.0", diff --git a/examples/with-infinite-pagination/package.json b/examples/with-infinite-pagination/package.json index 0dd656cf..fe884c97 100644 --- a/examples/with-infinite-pagination/package.json +++ b/examples/with-infinite-pagination/package.json @@ -10,7 +10,7 @@ "graphql": "^16.6.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "urql": "^5.0.3" + "urql": "^5.0.4" }, "devDependencies": { "@vitejs/plugin-react": "^3.1.0", diff --git a/examples/with-multipart/package.json b/examples/with-multipart/package.json index 0fa658bb..e634fba2 100644 --- a/examples/with-multipart/package.json +++ b/examples/with-multipart/package.json @@ -10,7 +10,7 @@ "graphql": "^16.6.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "urql": "^5.0.3" + "urql": "^5.0.4" }, "devDependencies": { "@vitejs/plugin-react": "^3.1.0", diff --git a/examples/with-next/package.json b/examples/with-next/package.json index e8b713e0..ae1d38a4 100644 --- a/examples/with-next/package.json +++ b/examples/with-next/package.json @@ -9,7 +9,7 @@ "next": "13.4.2", "react": "^18.2.0", "react-dom": "^18.2.0", - "urql": "^5.0.3" + "urql": "^5.0.4" }, "scripts": { "dev": "next dev", diff --git a/examples/with-pagination/package.json b/examples/with-pagination/package.json index 0dd656cf..fe884c97 100644 --- a/examples/with-pagination/package.json +++ b/examples/with-pagination/package.json @@ -10,7 +10,7 @@ "graphql": "^16.6.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "urql": "^5.0.3" + "urql": "^5.0.4" }, "devDependencies": { "@vitejs/plugin-react": "^3.1.0", diff --git a/examples/with-react-native/package.json b/examples/with-react-native/package.json index 6516afc6..446240ad 100644 --- a/examples/with-react-native/package.json +++ b/examples/with-react-native/package.json @@ -12,7 +12,7 @@ "graphql": "^16.6.0", "react": "18.2.0", "react-native": "0.71.4", - "urql": "^5.0.3" + "urql": "^5.0.4" }, "devDependencies": { "@babel/core": "^7.12.9", diff --git a/examples/with-react/package.json b/examples/with-react/package.json index 2b5a6241..920a17b4 100644 --- a/examples/with-react/package.json +++ b/examples/with-react/package.json @@ -10,7 +10,7 @@ "graphql": "^16.6.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "urql": "^5.0.3" + "urql": "^5.0.4" }, "devDependencies": { "@vitejs/plugin-react": "^3.1.0", diff --git a/examples/with-refresh-auth/package.json b/examples/with-refresh-auth/package.json index 1a244f73..1827084e 100644 --- a/examples/with-refresh-auth/package.json +++ b/examples/with-refresh-auth/package.json @@ -11,7 +11,7 @@ "graphql": "^16.6.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "urql": "^5.0.3" + "urql": "^5.0.4" }, "devDependencies": { "@vitejs/plugin-react": "^3.1.0", diff --git a/examples/with-retry/package.json b/examples/with-retry/package.json index 8527cc26..cd4f2e82 100644 --- a/examples/with-retry/package.json +++ b/examples/with-retry/package.json @@ -11,7 +11,7 @@ "graphql": "^16.6.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "urql": "^5.0.3" + "urql": "^5.0.4" }, "devDependencies": { "@vitejs/plugin-react": "^3.1.0", diff --git a/examples/with-subscriptions-via-fetch/package.json b/examples/with-subscriptions-via-fetch/package.json index 68f54ead..0436584c 100644 --- a/examples/with-subscriptions-via-fetch/package.json +++ b/examples/with-subscriptions-via-fetch/package.json @@ -13,7 +13,7 @@ "graphql": "^16.6.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "urql": "^5.0.3" + "urql": "^5.0.4" }, "devDependencies": { "@vitejs/plugin-react": "^3.1.0", diff --git a/packages/react-urql/CHANGELOG.md b/packages/react-urql/CHANGELOG.md index 805b4e70..163bf7df 100644 --- a/packages/react-urql/CHANGELOG.md +++ b/packages/react-urql/CHANGELOG.md @@ -1,5 +1,12 @@ # urql +## 5.0.4 + +### Patch Changes + +- ⚠️ Fix suspense cache entries getting poisoned when an operation ends without a result. When an operation was torn down while a `useQuery` was suspended, its suspense promise could never resolve and was re-thrown on every future render, permanently stuck on its `Suspense` fallback. Similarly, a settled promise entry would be re-thrown on every render, locking React into an infinite render loop. Such entries are now evicted from the suspense cache and the query is executed again + Submitted by [@cornedor](https://github.com/cornedor) (See [#3898](https://github.com/urql-graphql/urql/pull/3898)) + ## 5.0.3 ### Patch Changes diff --git a/packages/react-urql/jsr.json b/packages/react-urql/jsr.json index 36806770..5cad652a 100644 --- a/packages/react-urql/jsr.json +++ b/packages/react-urql/jsr.json @@ -1,6 +1,6 @@ { "name": "urql", - "version": "5.0.3", + "version": "5.0.4", "exports": "src/index.ts", "exclude": [ "node_modules", diff --git a/packages/react-urql/package.json b/packages/react-urql/package.json index 518c7f76..d6e9698e 100644 --- a/packages/react-urql/package.json +++ b/packages/react-urql/package.json @@ -1,6 +1,6 @@ { "name": "urql", - "version": "5.0.3", + "version": "5.0.4", "description": "A highly customizable and versatile GraphQL client for React", "sideEffects": false, "homepage": "https://formidable.com/open-source/urql/docs/",