fix: handle non-JSON Squeak API responses in community widgets#18115
Draft
posthog[bot] wants to merge 1 commit into
Draft
fix: handle non-JSON Squeak API responses in community widgets#18115posthog[bot] wants to merge 1 commit into
posthog[bot] wants to merge 1 commit into
Conversation
The Newbies, Anniversaries, and WIP widgets fetched from the Squeak API and piped the response straight into res.json() with no res.ok check and no .catch(). When the upstream returned an HTML error page, res.json() threw an unhandled SyntaxError and loading never flipped to false, leaving the skeleton spinner stuck forever. Now each widget checks res.ok before parsing and catches errors, degrading to an empty list (Newbies, Anniversaries) or rendering nothing (WIP) instead of hanging on the skeleton. Generated-By: PostHog Code Task-Id: 537aa304-78e6-4ffe-8458-cd099ec8f1fb
Contributor
Deploy preview
|
Contributor
Bundle reportTotal JS (gzip)6.29 MiB (+0.1 KiB / +0.0%) Eager graph (static-import closure per entrypoint)
Largest modules in the
|
| Module | Size |
|---|---|
css ./node_modules/.pnpm/css-loader@5.2.7_webpack@5.101.3/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[1]!./node_modules/.pnpm/postcss-loader@4.3.0_postcss@8.5.6_webpack@5.101.3/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[2]!./src/styles/global.css |
708.0 KiB |
./src/components/Stickers/Stickers.tsx |
696.4 KiB |
./.cache/caches/gatsby-plugin-mdx/mdx-scopes-dir/31a094f140f119e73085d847ae81b99b.js + 2 modules |
579.3 KiB |
./node_modules/.pnpm/@radix-ui+react-icons@1.3.2_react@18.3.1/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js |
481.4 KiB |
./node_modules/.pnpm/@codemirror+view@6.38.2/node_modules/@codemirror/view/dist/index.js |
458.1 KiB |
./node_modules/.pnpm/rehype-raw@7.0.0/node_modules/rehype-raw/lib/index.js + 29 modules |
395.1 KiB |
./node_modules/.pnpm/@posthog+icons@0.36.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.cjs.js |
364.8 KiB |
./node_modules/.pnpm/@posthog+icons@0.36.6_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
354.8 KiB |
./src/hooks/useCustomers.tsx + 54 modules |
353.9 KiB |
./node_modules/.pnpm/react-markdown@8.0.7_@types+react@16.14.66_react@18.3.1/node_modules/react-markdown/lib/react-markdown.js + 88 modules |
351.4 KiB |
./node_modules/.pnpm/cloudinary-core@2.14.0_lodash@4.17.21/node_modules/cloudinary-core/cloudinary-core.js |
281.9 KiB |
./src/components/ProductComparisonTable/index.tsx + 116 modules |
267.6 KiB |
./node_modules/.pnpm/@codesandbox+sandpack-react@2.20.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@codesandbox/sandpack-react/dist/index.mjs |
266.6 KiB |
./node_modules/.pnpm/d3@7.9.0/node_modules/d3/src/index.js + 208 modules |
247.4 KiB |
./src/components/Pricing/PricingSlider/Slider.tsx + 87 modules |
239.9 KiB |
Eager-graph budgets are report-only until a baseline is established. Sizes are gzip of public/**/*.js; eager size is webpack module source bytes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
The community page's Newbies, Anniversaries, and WIP widgets fetched profiles/team-updates from the Squeak API and piped the response straight into
res.json()with nores.okcheck and no.catch(). When the upstream returned an HTML error page (a 404/500/gateway error starting with<!DOCTYPE ...),res.json()threw an unhandledSyntaxError: Unexpected token '<',loadingnever flipped tofalse, and the skeleton spinner was stuck forever.Each widget now:
res.okbefore parsing and throws on a bad status.loadingtofalse, and degrades gracefully — empty list for Newbies/Anniversaries, render nothing for WIP.WIP.tsxadditionally had itsloadingstate gated entirely on a truthy response, so even a successful empty response (not just an error) left it hanging; loading now always resolves via.finally(), and the render bails out cleanly when there's no update.No visual change in the happy path; the fix only affects the previously-broken error path.
Checklist
vercel.jsonCreated with PostHog Code from an inbox report.