Repository navigation
Conversation
A test send that the email worker declined, for example to a suppressed recipient or from a paused workflow, came back from the test invocation endpoint as a success. The endpoint now reports `skipped` when the email step was skipped, and keeps the next step for step-through. A recipient without an email address now records its reason in `emailSendResult` like the other skips. Refs Silthus/personal#204 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 27, 2026
The frontend reads the skip from emailSendResult (PostHog#123846), so the endpoint keeps reporting success for a send the worker skipped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
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.
Problem
A test email to a recipient with no email address reports success, so the sender waits for mail that never arrives.
PostHog#123846 shows the worker's skip reason on the test-send surfaces, reading
emailSendResult.The worker sets
emailSendResulton every skip path except this one, so PostHog#123846 still shows "Success" here.Refs Silthus/personal#204. Replaces the Node half of #591. Its frontend half (#627) is closed in favor of PostHog#123846.
Merge Danger
Note
🔵 Merge risk: low · two-way door (merge-risk rubric)
email.service.tsruns for real sends too. Here it only addsemailSendResultto the missing-recipient skip, which already skips and already countsemail_missing_recipient. Sending, metrics and the run status do not change.Changes
emailSendResult, like the other skip paths. With fix(workflows): report a skipped test email as skipped PostHog/posthog#123846, the template test send and the email step test show "the recipient has no email address" instead of "Success".statusis unchanged. An earlier version of this PR returnedskippedthere. It was dropped because fix(workflows): report a skipped test email as skipped PostHog/posthog#123846 reads the skip fromemailSendResult, and its step pane treatsskippedas a trigger mismatch.Changed production lines: 6 (
git diff --numstat, tests excluded).How did you test this code?
email.service.test.ts): extends the missing-recipient case to expect askippedemailSendResultwith its reason. Red on master:Received: undefined. Green ond4632808423, whosenodejs/src/cdp/services/messaging/files are byte-identical to this head.cdp-api.tsandcdp-api.serial.test.tsto their master versions.hogli ci:preflight --strictpassed on push. Fork CI cannot run (missing GitHub App secret), recorded as a gap.Test rationale: the test catches a skip reason that fails to reach the user. It extends the nearest existing case.
Release status
Docs update
None.
🤖 Agent context
Autonomy: Fully autonomous
Agent: Claude Code, Opus 5.5 (claude-opus-5-5). Design pass and review by GPT-6.1 Sol through T3 Code.
Built test-first as a slice of a re-slice plan (Silthus/personal#204), split out of #591 by lane, then trimmed to complement PostHog#123846. All test data is invented.
emailSendResult🤖 Generated with Claude Code