koala73/worldmonitor · error · Error
[resumeRamp] kill-gate is tripped; clearKillGate first…
Error message
[resumeRamp] kill-gate is tripped; clearKillGate first after investigating.
What it means
Safety interlock in resumeRamp: the config row has killGateTripped set, meaning an automatic kill gate stopped the ramp. Resuming without investigation would restart sends blindly, so the operator must explicitly run clearKillGate (with a reason) first.
Solutions
- Investigate why the kill gate tripped (Convex logs, Resend dashboard, failure metrics) before doing anything else
- Once the cause is understood and fixed, run clearKillGate with a documented reason, then resumeRamp
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at convex/broadcast/rampRunner.ts:235 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/8811b067a4510a9b.
Report an issue: GitHub.
Appendix: source
Thrown at convex/broadcast/rampRunner.ts:235
});
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 };
},
});
export const clearKillGate = internalMutation({
args: { reason: v.string() },
handler: async (ctx, { reason }) => {
const row = await loadConfig(ctx);
if (!row) throw new Error("[clearKillGate] no ramp configured");
if (!row.killGateTripped) {
return { ok: true, noop: true };
}
await ctx.db.patch(row._id, {
killGateTripped: false,View on GitHub (pinned to 7d06c8633d)