Fixed caller context being dropped from lazy URL compare reports - #29301
Conversation
ref https://linear.app/ghost/issue/HKG-1822 @tryghost/errors copies the wrapped error's enumerable properties over the new error, so when the lazy service throws with its own errorDetails (the thin-resource report), it clobbered the compare context — the caller stack and resource keys never reached the logs. Re-merge the two after construction so both survive.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
Walkthrough
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
| Command | Status | Duration | Result |
|---|---|---|---|
nx run ghost:test:ci:integration |
✅ Succeeded | 2m 42s | View ↗ |
nx run ghost:test:integration |
✅ Succeeded | 2m 36s | View ↗ |
nx run ghost:test:e2e |
✅ Succeeded | 2m 20s | View ↗ |
nx run ghost:test:legacy |
✅ Succeeded | 2m 4s | View ↗ |
nx run-many --target=build --projects=tag:publi... |
✅ Succeeded | <1s | View ↗ |
nx run @tryghost/admin:build |
✅ Succeeded | 4s | View ↗ |
nx run ghost:build:assets |
✅ Succeeded | 1s | View ↗ |
nx run ghost:build:tsc |
✅ Succeeded | 7s | View ↗ |
Additional runs (3) |
✅ Succeeded | ... | View ↗ |
💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗
☁️ Nx Cloud last updated this comment at 2026-07-14 02:16:15 UTC

ref https://linear.app/ghost/issue/HKG-1822
Follow-up to #29190. The caller-context diagnostics added there never reached the logs:
@tryghost/errorscopies the wrapped error's enumerable properties over the new error, so when the lazy service throws an error carrying its ownerrorDetails(the thin-resource report), it clobbered the compare context —callerandresourceKeyswere silently dropped. Plain test errors carried noerrorDetails, which is why the unit tests passed while production reports lost the context.The report now re-merges both after construction, so log entries carry the thin-resource details and the caller stack + resource shape. This is what's needed to attribute the remaining
missing:["tags"]error class (router filters liketag:[newsletter,hash-newsletter]evaluated against resources without atagsarray).🤖 Generated with Claude Code