diff --git a/.changeset/spicy-poems-refuse.md b/.changeset/spicy-poems-refuse.md deleted file mode 100644 index f0bdeecd9e..0000000000 --- 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 15fca607dd..adfb1e1b52 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 0fabbfc05f..c627b7ec77 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 59e333a7fe..d7e679dacf 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 907570b902..afa0022b15 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 0dd656cf1c..fe884c9783 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 0fa658bb7d..e634fba251 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 e8b713e0ea..ae1d38a4f3 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 0dd656cf1c..fe884c9783 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 6516afc6bc..446240ad94 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 2b5a624171..920a17b42f 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 1a244f735d..1827084e1c 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 8527cc26e8..cd4f2e82bb 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 68f54ead1d..0436584c0c 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 805b4e70f1..163bf7df3e 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 36806770ec..5cad652a8a 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 518c7f7634..d6e9698e7d 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/",