koala73/worldmonitor · error · Error
[clearPartialFailure] no ramp configured
Error message
[clearPartialFailure] no ramp configured
What it means
Operator guard in the clearPartialFailure internal mutation: loadConfig returned no broadcastRampConfig row, so there is no partial-failure state to clear — the ramp was never configured on this deployment.
Solutions
- Run configureRamp before attempting failure-state recovery
- Verify the Convex deployment/environment actually hosts the broadcast ramp
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at convex/broadcast/rampRunner.ts:297 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of koala73/worldmonitor@7d06c8633d (2026-08-21).
Data as JSON: /api/errors/b2cf2e4bd2b70835.
Report an issue: GitHub.
Appendix: source
Thrown at convex/broadcast/rampRunner.ts:297
* audience tables AND verify no broadcast in the Resend dashboard before
* calling.
*
* For ANY case where the export ran (segment created, contacts stamped,
* broadcast created, or send fired), use `recoverFromPartialFailure` —
* `manual-finished` if the wave actually went out, `discard-and-rotate` if
* not.
*/
export const clearPartialFailure = internalMutation({
args: {
reason: v.string(),
// Literal-true forces the operator to actively assert "I have verified no
// export happened." A future caller can't accidentally pass `false` to
// bypass this.
confirmNoExport: v.literal(true),
},
handler: async (ctx, { reason }) => {
const row = await loadConfig(ctx);
if (!row) throw new Error("[clearPartialFailure] no ramp configured");
if (row.lastRunStatus !== "partial-failure") {
return {
ok: true as const,
noop: true as const,
currentStatus: row.lastRunStatus,
};
}
// Fail-closed: if any pending-progress marker exists, the export DID make
// progress past `assignAndExportWave` — clearing here would mask a stamped
// / sent wave. Force the operator to use recoverFromPartialFailure.
if (
row.pendingWaveLabel ||
row.pendingSegmentId ||
row.pendingBroadcastId
) {
throw new Error(
`[clearPartialFailure] refused: pending progress markers present (waveLabel=${row.pendingWaveLabel ?? "-"}, segmentId=${row.pendingSegmentId ?? "-"}, broadcastId=${row.pendingBroadcastId ?? "-"}). The export DID run; clearing here would mask stamped contacts. Use recoverFromPartialFailure instead.`,
);View on GitHub (pinned to 7d06c8633d)