koala73/worldmonitor · error · Error

Sign in to acknowledge API plan-limit notices.

Error message

Sign in to acknowledge API plan-limit notices.

What it means

UI service error in acknowledgePlanLimitNotice: no Clerk user is authenticated, so there is no account to acknowledge the notice against. Precondition guard fired before any Convex mutation.

Solutions

  1. Sign in and retry acknowledging the notice
  2. Wait for the auth session to load if sign-in just completed
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at src/services/api-plan-limit-notices.ts:53 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/7155192f9c2e1c71. Report an issue: GitHub.

Appendix: source

Thrown at src/services/api-plan-limit-notices.ts:53

export async function listCurrentPlanLimitNotices(): Promise<ApiPlanLimitNotice[]> {
  const userId = getCurrentClerkUser()?.id;
  if (!userId) return [];
  const [client, api] = await Promise.all([getConvexClient(), getConvexApi()]);
  if (!client || !api) return [];
  if (!await waitForConvexAuthForUser(userId)) {
    assertAccountStillCurrent(userId, 'loading API plan-limit notices');
    throw new Error('Authentication unavailable while loading API plan-limit notices. Try again.');
  }
  return settleAccountOperation(
    userId,
    'loading API plan-limit notices',
    () => client.query((api as any).apiPlanLimitNotices.listCurrentForUser, {}),
  );
}

export async function acknowledgePlanLimitNotice(noticeId: string): Promise<void> {
  const userId = getCurrentClerkUser()?.id;
  if (!userId) throw new Error('Sign in to acknowledge API plan-limit notices.');
  const [client, api] = await Promise.all([getConvexClient(), getConvexApi()]);
  if (!client || !api) throw new Error('Convex unavailable');
  if (!await waitForConvexAuthForUser(userId)) {
    throw new Error('Account changed while acknowledging the API plan-limit notice. Try again.');
  }
  await settleAccountOperation(
    userId,
    'acknowledging the API plan-limit notice',
    () => client.mutation((api as any).apiPlanLimitNotices.acknowledgeNotice, { noticeId }),
  );
}

View on GitHub (pinned to eeab0a219f)