Skip to content

Handle API loading, error, and empty states consistently (#367) #324

Handle API loading, error, and empty states consistently (#367)

Handle API loading, error, and empty states consistently (#367) #324

Triggered via pull request August 31, 2026 12:43
Status Failure
Total duration 1m 41s
Artifacts

build.yml

on: pull_request
Frontend build
44s
Frontend build
Build contracts
3s
Build contracts
Test contracts
3s
Test contracts
Backend lint
30s
Backend lint
Backend tests
32s
Backend tests
Frontend lint
37s
Frontend lint
Frontend tests
43s
Frontend tests
Frontend production smoke test
51s
Frontend production smoke test
Fit to window
Zoom out
Zoom in

Annotations

26 errors and 16 warnings
Test contracts
This request has been automatically failed because it uses a deprecated version of `actions/cache: 0c45773b623bea8c8e75f6c82b208c3cf94ea4f9`. Please update your workflow to use v3/v4 of actions/cache to avoid interruptions. Learn more: https://github.blog/changelog/2024-12-05-notice-of-upcoming-releases-and-breaking-changes-for-github-actions/#actions-cache-v1-v2-and-actions-toolkit-cache-package-closing-down
Build contracts
This request has been automatically failed because it uses a deprecated version of `actions/cache: 0c45773b623bea8c8e75f6c82b208c3cf94ea4f9`. Please update your workflow to use v3/v4 of actions/cache to avoid interruptions. Learn more: https://github.blog/changelog/2024-12-05-notice-of-upcoming-releases-and-breaking-changes-for-github-actions/#actions-cache-v1-v2-and-actions-toolkit-cache-package-closing-down
Backend lint: backend/src/audit-log/audit-log.controller.ts#L15
'ApiQuery' is defined but never used
Backend lint: backend/src/app.module.ts#L53
'PuzzleForkModule' is defined but never used
Backend lint: backend/src/app.module.ts#L5
'join' is defined but never used
Backend lint: backend/src/api-key/api-key.controller.ts#L26
'Type' is defined but never used
Backend lint: backend/src/api-key/api-key.controller.ts#L17
'ApiKeyStatus' is defined but never used
Backend lint: backend/src/admin/admin.service.ts#L8
'LoginAdminDto' is defined but never used
Backend lint: backend/src/admin/admin.module.ts#L13
'AdminRole' is defined but never used
Backend lint: backend/src/activity/activity.controller.ts#L16
'ApiQuery' is defined but never used
Backend lint: backend/src/activity/activity.controller.ts#L5
'UseGuards' is defined but never used
Backend lint: backend/src/achievement/achievement.service.ts#L43
'achievement' is assigned a value but never used
Backend tests
Process completed with exit code 1.
Frontend lint
Process completed with exit code 1.
tests/useReferral.test.js > useReferral > getRewardTier > returns 10 tier for NaN invites: frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one ❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10 ❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17 ❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9 ❯ useApiQuery hooks/useApiQuery.js:36:10 ❯ Module.useReferral hooks/useReferral.js:17:25 ❯ tests/useReferral.test.js:97:43 ❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27 ❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18 ❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13 ❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
tests/useReferral.test.js > useReferral > getRewardTier > returns 8 tier for NaN invites: frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one ❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10 ❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17 ❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9 ❯ useApiQuery hooks/useApiQuery.js:36:10 ❯ Module.useReferral hooks/useReferral.js:17:25 ❯ tests/useReferral.test.js:97:43 ❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27 ❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18 ❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13 ❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
tests/useReferral.test.js > useReferral > getRewardTier > returns 5 tier for NaN invites: frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one ❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10 ❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17 ❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9 ❯ useApiQuery hooks/useApiQuery.js:36:10 ❯ Module.useReferral hooks/useReferral.js:17:25 ❯ tests/useReferral.test.js:97:43 ❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27 ❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18 ❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13 ❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
tests/useReferral.test.js > useReferral > getRewardTier > returns 3 tier for NaN invites: frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one ❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10 ❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17 ❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9 ❯ useApiQuery hooks/useApiQuery.js:36:10 ❯ Module.useReferral hooks/useReferral.js:17:25 ❯ tests/useReferral.test.js:97:43 ❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27 ❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18 ❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13 ❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
tests/useReferral.test.js > useReferral > getRewardTier > returns 0 tier for NaN invites: frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one ❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10 ❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17 ❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9 ❯ useApiQuery hooks/useApiQuery.js:36:10 ❯ Module.useReferral hooks/useReferral.js:17:25 ❯ tests/useReferral.test.js:97:43 ❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27 ❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18 ❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13 ❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
tests/useReferral.test.js > useReferral > fetchReferralData > does nothing when no userId is provided: frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one ❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10 ❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17 ❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9 ❯ useApiQuery hooks/useApiQuery.js:36:10 ❯ Module.useReferral hooks/useReferral.js:17:25 ❯ tests/useReferral.test.js:73:43 ❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27 ❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18 ❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13 ❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
tests/useReferral.test.js > useReferral > fetchReferralData > sets an error when the API call fails: frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one ❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10 ❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17 ❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9 ❯ useApiQuery hooks/useApiQuery.js:36:10 ❯ Module.useReferral hooks/useReferral.js:17:25 ❯ tests/useReferral.test.js:59:43 ❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27 ❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18 ❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13 ❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
tests/useReferral.test.js > useReferral > fetchReferralData > sets loading and fetches referral data successfully: frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one ❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10 ❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17 ❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9 ❯ useApiQuery hooks/useApiQuery.js:36:10 ❯ Module.useReferral hooks/useReferral.js:17:25 ❯ tests/useReferral.test.js:40:43 ❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27 ❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18 ❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13 ❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
tests/useReferral.test.js > useReferral > generateReferralLink > generates the correct referral link for a given user ID: frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one ❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10 ❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17 ❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9 ❯ useApiQuery hooks/useApiQuery.js:36:10 ❯ Module.useReferral hooks/useReferral.js:17:25 ❯ tests/useReferral.test.js:24:43 ❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27 ❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18 ❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13 ❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
tests/apiRoutes.test.js > useGameStore — route call sites > game and user routes hit /api/v1/*: frontend/store/useGameStore.js#L257
TypeError: nfts is not iterable ❯ Object.addNFT store/useGameStore.js:257:30 ❯ tests/apiRoutes.test.js:110:35
Frontend build
Process completed with exit code 1.
Frontend production smoke test
Process completed with exit code 1.
Backend lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Backend lint
Failed to save: <h2>Our services aren't available right now</h2><p>We're working to restore all services as soon as possible. Please check back soon.</p>0KXeVagAAAAAe8po3n89NTqr7QOK+LDULTVNQMzExMDAwMTA4MDExAEVkZ2U=
Backend lint
Failed to restore: Cache service responded with 400
Backend tests
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Backend tests
Failed to save: <h2>Our services aren't available right now</h2><p>We're working to restore all services as soon as possible. Please check back soon.</p>0KneVagAAAADkC5S46BBBQIcWefk5OdWMTVNQMzExMDAwMTA4MDI3AEVkZ2U=
Backend tests
Failed to restore: Cache service responded with 400
Frontend lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Frontend lint
Failed to save: <h2>Our services aren't available right now</h2><p>We're working to restore all services as soon as possible. Please check back soon.</p>0L3eVagAAAABhVzF+Jk38SoZb2IKdh3EvUEhYMzFFREdFMDUwNgBFZGdl
Frontend lint
Failed to restore: Cache service responded with 400
Frontend tests
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Frontend tests
Failed to restore: Cache service responded with 400
Frontend build
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Frontend build
Failed to save: <h2>Our services aren't available right now</h2><p>We're working to restore all services as soon as possible. Please check back soon.</p>0N3eVagAAAABnHr/n6Ls/RJMK1o9nUVYHQ0gxQUEyMDMwODEzMDM2AEVkZ2U=
Frontend build
Failed to restore: Cache service responded with 400
Frontend production smoke test
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
Frontend production smoke test
Failed to restore: Cache service responded with 400