chore(persona-quiz): log resolver failures explicitly#3877
Merged
Conversation
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>
|
🍹 The Update (preview) for dailydotdev/api/prod (at 10d5d92) was successful. ✨ Neo ExplanationStandard image rollout with logging improvements to the persona quiz resolvers; new DB and Clickhouse migration jobs run as part of the deploy. ✅ Low RiskThis is a routine application deployment rolling out commit 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>
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.
Summary
logger.warnentries topersonaQuizNextQuestionandpersonaQuizRevealresolvers so failures and empty-reveal responses are greppable by feature name instead of being hidden by the GraphQL middleware's generic "unexpected graphql error".bragiHasRevealflag between the log site and the response shape.Test plan
personaQuizNextQuestionfailure (e.g. bragi unavailable) and confirm the resolver-tagged warn entry appears with userId/askedCount/seedTagCount/priorAnswerCount.personaQuizRevealfailure and confirm the resolver-tagged warn entry appears.revealand confirm the "bragi returned empty reveal" warn entry fires and the response still returnsreveal: null.