koala73/worldmonitor · error · Error
[pauseRamp] no ramp configured
Error message
[pauseRamp] no ramp configured
What it means
Operator guard in the pauseRamp internal mutation: loadConfig returned no broadcastRampConfig row, so there is no ramp to pause. This fires when the ramp was never configured (configureRamp not run) on this deployment.
Solutions
- Run configureRamp to create the broadcastRampConfig row before pausing
- If the ramp was intentionally never set up in this environment, remove the pause call from the operator runbook
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at convex/broadcast/rampRunner.ts:223 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/95319139fd6ad688.
Report an issue: GitHub.
Appendix: source
Thrown at convex/broadcast/rampRunner.ts:223
lastWaveBroadcastId: args.seedLastWaveBroadcastId,
lastWaveSentAt: args.seedLastWaveSentAt,
lastWaveLabel: args.seedLastWaveLabel,
lastWaveSegmentId: args.seedLastWaveSegmentId,
lastWaveAssigned: args.seedLastWaveAssigned,
// Default-FALSE on insert when arg omitted. Per the design doc:
// explicit, never silently true — existing-ramp byte-identical
// behavior is the default; operators opt in for wave-8+.
excludeNonEnglish: args.excludeNonEnglish ?? false,
});
return { ok: true };
},
});
export const pauseRamp = internalMutation({
args: {},
handler: async (ctx) => {
const row = await loadConfig(ctx);
if (!row) throw new Error("[pauseRamp] no ramp configured");
await ctx.db.patch(row._id, { active: false });
return { ok: true, prevActive: row.active };
},
});
export const resumeRamp = internalMutation({
args: {},
handler: async (ctx) => {
const row = await loadConfig(ctx);
if (!row) throw new Error("[resumeRamp] no ramp configured");
if (row.killGateTripped) {
throw new Error(
"[resumeRamp] kill-gate is tripped; clearKillGate first after investigating.",
);
}
await ctx.db.patch(row._id, { active: true });
return { ok: true };
},View on GitHub (pinned to 7d06c8633d)