Skip to content

chore(persona-quiz): log resolver failures explicitly#3877

Merged
davidercruz merged 3 commits into
mainfrom
davidercruz/porto-v3
May 14, 2026
Merged

chore(persona-quiz): log resolver failures explicitly#3877
davidercruz merged 3 commits into
mainfrom
davidercruz/porto-v3

Conversation

@davidercruz
Copy link
Copy Markdown
Contributor

Summary

  • Add logger.warn entries to personaQuizNextQuestion and personaQuizReveal resolvers so failures and empty-reveal responses are greppable by feature name instead of being hidden by the GraphQL middleware's generic "unexpected graphql error".
  • Surface a specific warning when bragi returns success but an empty reveal payload — the frontend silently falls back to the seed-tag headline today, so the root cause was invisible.
  • Refactor the reveal response to share a bragiHasReveal flag between the log site and the response shape.

Test plan

  • Trigger a personaQuizNextQuestion failure (e.g. bragi unavailable) and confirm the resolver-tagged warn entry appears with userId/askedCount/seedTagCount/priorAnswerCount.
  • Trigger a personaQuizReveal failure and confirm the resolver-tagged warn entry appears.
  • Force bragi to return success with empty reveal and confirm the "bragi returned empty reveal" warn entry fires and the response still returns reveal: null.

davidercruz and others added 2 commits May 14, 2026 16:48
Both `personaQuizReveal` and `personaQuizNextQuestion` re-throw caught
errors and relied on the GraphQL middleware's generic "unexpected
graphql error" entry. That entry doesn't tag the resolver name, so
filtering for "personaQuizReveal request failed" returned nothing
during the recent on-call investigation. Add resolver-scoped
`logger.warn` calls in both catch blocks.

Also flag the silent "bragi returned OK but reveal is empty" case in
`personaQuizReveal` — without this the frontend falls back to the
seed-tag headline and the root cause is invisible from server logs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@pulumi
Copy link
Copy Markdown

pulumi Bot commented May 14, 2026

🍹 The Update (preview) for dailydotdev/api/prod (at 10d5d92) was successful.

✨ Neo Explanation

Standard image rollout with logging improvements to the persona quiz resolvers; new DB and Clickhouse migration jobs run as part of the deploy. ✅ Low Risk

This is a routine application deployment rolling out commit b367bf30 (previously f25a1be8). The code change adds structured warning logs to the personaQuizNextQuestion and personaQuizReveal GraphQL resolvers — improved observability only, no behavioral changes except that personaQuizReveal now correctly returns null for reveal data when bragi responds with an empty reveal object (previously it would have passed the truthy-but-empty object through).

All deployments and cron jobs are updated solely to reflect the new image tag. The migration Jobs follow the standard pattern: new jobs for the new commit are created and old ones from the previous commit are deleted.

Resource Changes

    Name                                                   Type                           Operation
+   vpc-native-api-clickhouse-migration-b367bf30           kubernetes:batch/v1:Job        create
~   vpc-native-validate-active-users-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-opportunities-cron             kubernetes:batch/v1:CronJob    update
~   vpc-native-update-source-public-threshold-cron         kubernetes:batch/v1:CronJob    update
~   vpc-native-update-views-cron                           kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-stale-user-transactions-cron          kubernetes:batch/v1:CronJob    update
~   vpc-native-user-profile-updated-sync-cron              kubernetes:batch/v1:CronJob    update
~   vpc-native-update-highlighted-views-cron               kubernetes:batch/v1:CronJob    update
~   vpc-native-post-analytics-history-day-clickhouse-cron  kubernetes:batch/v1:CronJob    update
+   vpc-native-api-db-migration-b367bf30                   kubernetes:batch/v1:Job        create
~   vpc-native-worker-job-deployment                       kubernetes:apps/v1:Deployment  update
~   vpc-native-ws-deployment                               kubernetes:apps/v1:Deployment  update
~   vpc-native-daily-digest-cron                           kubernetes:batch/v1:CronJob    update
~   vpc-native-temporal-deployment                         kubernetes:apps/v1:Deployment  update
~   vpc-native-update-current-streak-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-expire-super-agent-trial-cron               kubernetes:batch/v1:CronJob    update
~   vpc-native-squad-posts-analytics-refresh-cron          kubernetes:batch/v1:CronJob    update
~   vpc-native-materialize-yearly-best-post-archives-cron  kubernetes:batch/v1:CronJob    update
~   vpc-native-deployment                                  kubernetes:apps/v1:Deployment  update
-   vpc-native-api-clickhouse-migration-f25a1be8           kubernetes:batch/v1:Job        delete
~   vpc-native-clean-zombie-user-companies-cron            kubernetes:batch/v1:CronJob    update
~   vpc-native-sync-subscription-with-cio-cron             kubernetes:batch/v1:CronJob    update
~   vpc-native-check-analytics-report-cron                 kubernetes:batch/v1:CronJob    update
~   vpc-native-bg-deployment                               kubernetes:apps/v1:Deployment  update
~   vpc-native-clean-zombie-users-cron                     kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-expired-better-auth-sessions-cron     kubernetes:batch/v1:CronJob    update
~   vpc-native-channel-highlights-cron                     kubernetes:batch/v1:CronJob    update
~   vpc-native-personalized-digest-cron                    kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-channel-highlights-cron               kubernetes:batch/v1:CronJob    update
~   vpc-native-update-trending-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-personalized-digest-deployment              kubernetes:apps/v1:Deployment  update
~   vpc-native-update-tag-materialized-views-cron          kubernetes:batch/v1:CronJob    update
-   vpc-native-api-db-migration-f25a1be8                   kubernetes:batch/v1:Job        delete
~   vpc-native-update-tags-str-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-rotate-weekly-quests-cron                   kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-gifted-plus-cron                      kubernetes:batch/v1:CronJob    update
~   vpc-native-rotate-daily-quests-cron                    kubernetes:batch/v1:CronJob    update
~   vpc-native-calculate-top-readers-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-images-cron                    kubernetes:batch/v1:CronJob    update
~   vpc-native-user-profile-analytics-clickhouse-cron      kubernetes:batch/v1:CronJob    update
~   vpc-native-private-deployment                          kubernetes:apps/v1:Deployment  update
... and 11 other changes

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@davidercruz davidercruz merged commit 5bbe15b into main May 14, 2026
10 checks passed
@davidercruz davidercruz deleted the davidercruz/porto-v3 branch May 14, 2026 16:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant