Preconditions
Fixture event has credentialed guests, QR-capable email design, and one empty-audience segment.
Happy path
Insert QR block.
QR block includes alt text and a visible fallback code setting.
Send sample.
Validation samples a signed QR render before fan-out.
Round-trip to check-in.
Signed URL resolves to the event-day check-in credential.
Failure modes
Send blocked on validation failure
Trigger: QR block cannot render a credential.
Resolution: 400 blocks send and no email leaves.
Bounced recipient tracked and suppressed
Trigger: QR email bounces.
Resolution: email_events records bounce and suppression blocks future sends.
Scheduled-message edit window
Trigger: QR scheduled send is edited after cutoff.
Resolution: 409 PAST_EDIT_WINDOW.
Retry on transient failure
Trigger: provider 5xx.
Resolution: retry uses the same Idempotency-Key and sent_count is one.
Idempotency-key on test-send
Trigger: double-click Send test.
Resolution: one QR test email is sent.
Recipient resolution empty
Trigger: QR audience resolves to zero.
Resolution: 409 NO_RECIPIENTS and visible empty-audience copy.
Token rendering fallback
Trigger: guest name token near QR is missing.
Resolution: fallback copy renders and QR code still has alt text.
Cancel scheduled before send
Trigger: scheduled QR email is cancelled.
Resolution: queue drains and audit logs cancellation.
QR accessibility fallback
Trigger: email client blocks inline image.
Resolution: alt text and the same code as plain text are present.
Signed URL tamper
Trigger: QR URL signature is modified.
Resolution: check-in endpoint rejects with tampered physical scan result.
Deployed-runtime gap
Trigger: deployed run on 2026-04-29 observed QR mailing send 409 NO_RECIPIENTS, so QR render round-trip could not be exercised; the probe locks this in until the gap is closed.
Resolution: story expects the 409 until deployed QR send reaches a real recipient.
Stable test attributes
Visibility teeth. Each attribute must be effectively visible when active.
qr-email-page | Page | QR email design |
qr-email-editor | Editor | Design body |
qr-email-block | Editor | QR block |
qr-email-preview | Preview | Rendered QR |
qr-email-alt-text | Preview | Alt text |
qr-email-fallback-code | Preview | Plain code |
qr-email-send-cta | Toolbar | Send |
qr-email-warning | Page | Validation |
qr-email-gap-panel | Page | Runtime gap |
Agent test plan
- qr-email-renders
- qr-sample-render
- qr-round-trip
- deployed-runtime-gap