koala73/worldmonitor · error · Error
[createProLaunchBroadcast] PRO_LAUNCH_PHYSICAL_ADDRESS is…
Error message
[createProLaunchBroadcast] PRO_LAUNCH_PHYSICAL_ADDRESS is still a placeholder ("${PRO_LAUNCH_PHYSICAL_ADDRESS}"). Set the real CAN-SPAM postal address in convex/broadcast/proLaunchEmailContent.ts before sending. What it means
Error "[createProLaunchBroadcast] PRO_LAUNCH_PHYSICAL_ADDRESS is still a placeholder ("${PRO_LAUNCH_PHYSICAL_ADDRESS}"). Set the real CAN-SPAM postal address in convex/broadcast/proLaunchEmailContent.ts before sending." thrown in koala73/worldmonitor.
Solutions
- Edit PRO_LAUNCH_PHYSICAL_ADDRESS in convex/broadcast/proLaunchEmailContent.ts to the real CAN-SPAM postal address, then regenerate content and retry
- Keep a pre-launch checklist item asserting the address is not the placeholder before any broadcast create or send
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at convex/broadcast/sendBroadcast.ts:81 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of koala73/worldmonitor@eeab0a219f (2026-08-21).
Data as JSON: /api/errors/a990e0c1fb8f2868.
Report an issue: GitHub.
Appendix: source
Thrown at convex/broadcast/sendBroadcast.ts:81
nameSuffix: v.optional(v.string()),
},
handler: async (_ctx, { segmentId, nameSuffix }) => {
const apiKey = process.env.RESEND_API_KEY;
if (!apiKey) {
throw new Error("[createProLaunchBroadcast] RESEND_API_KEY not set");
}
// Hard-gate: refuse to ship the placeholder physical address.
// CAN-SPAM requires a valid postal address in every commercial
// email footer; sending the literal "physical address TBD" string
// is non-compliant and embarrassing. Edit
// `PRO_LAUNCH_PHYSICAL_ADDRESS` in proLaunchEmailContent.ts to the
// real postal address before invoking this action.
if (
PRO_LAUNCH_PHYSICAL_ADDRESS.includes("TBD") ||
PRO_LAUNCH_PHYSICAL_ADDRESS.includes("placeholder")
) {
throw new Error(
`[createProLaunchBroadcast] PRO_LAUNCH_PHYSICAL_ADDRESS is still a placeholder ("${PRO_LAUNCH_PHYSICAL_ADDRESS}"). ` +
"Set the real CAN-SPAM postal address in convex/broadcast/proLaunchEmailContent.ts before sending.",
);
}
const name =
nameSuffix && nameSuffix.length > 0
? `PRO Launch — ${nameSuffix}`
: `PRO Launch — ${new Date().toISOString().slice(0, 10)}`;
const res = await fetch(`${RESEND_API_BASE}/broadcasts`, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${apiKey}`,
"User-Agent": USER_AGENT,
},
body: JSON.stringify({View on GitHub (pinned to eeab0a219f)