koala73/worldmonitor · error · ConvexError
activation outcome revision must be an integer from 1 to ${M
Error message
activation outcome revision must be an integer from 1 to ${MAX_PRO_ACTIVATION_OUTCOME_REVISION} What it means
ConvexError guard in the Pro activation outcome recorder validating the revision argument: it must be a safe integer between 1 and MAX_PRO_ACTIVATION_OUTCOME_REVISION. Fires when the client reports an outcome with an out-of-range, zero, negative, or fractional revision number, protecting the append-only outcome revision history.
Source
Thrown at convex/payments/billing.ts:983
ctx,
args.activationKey,
args.cohort,
);
if (
presentation === null ||
presentation.userId !== userId ||
presentation.claimNonce !== args.claimNonce ||
presentation.exitedAt !== undefined
) {
return false;
}
if (
!Number.isSafeInteger(args.revision) ||
args.revision < 1 ||
args.revision > MAX_PRO_ACTIVATION_OUTCOME_REVISION
) {
throw new ConvexError(
`activation outcome revision must be an integer from 1 to ${MAX_PRO_ACTIVATION_OUTCOME_REVISION}`,
);
}
const allSteps = [
...args.confirmedSteps,
...args.skippedSteps,
...(args.blockedSteps ?? []),
...args.failedSteps,
];
if (
allSteps.length > proActivationStepIdValidator.members.length ||
new Set(allSteps).size !== allSteps.length
) {
throw new ConvexError(
`activation outcome buckets must be disjoint and contain at most ${proActivationStepIdValidator.members.length} steps`,
);
}
if (args.revision <= (presentation.outcomeRevision ?? 0)) {View on GitHub (pinned to 9361220cc0)
Solutions
- Send revision as the next integer after the last recorded revision for the presentation
- Never reset or reuse revision numbers; cap updates at MAX_PRO_ACTIVATION_OUTCOME_REVISION
- Regenerate the client's revision counter from the server's current presentation state
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at convex/payments/billing.ts:967 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of koala73/worldmonitor@9361220cc0 (2026-08-21).
Data as JSON: /api/errors/a8b1635654fa89b4.
Report an issue: GitHub.