koala73/worldmonitor · error · Error

Authentication unavailable while loading API plan-limit noti

Error message

Authentication unavailable while loading API plan-limit notices. Try again.

What it means

UI service error in listCurrentPlanLimitNotices: the user is signed in but Convex auth had not propagated for that user when the query ran. A session-propagation timing failure, mirroring the same guard used across Convex-backed services.

Source

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

  dimension: ApiPlanLimitDimension;
  state: ApiPlanLimitNoticeState;
  windowKey: string;
  usage: number;
  limit: number | null;
  usageRatio: number | null;
  upgradeTargetPlanKey?: string;
  ctaKind: ApiPlanLimitCtaKind;
  blockedReason?: string;
}

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,

View on GitHub (pinned to eeab0a219f)

Solutions

  1. Retry — the Convex auth token usually propagates shortly after sign-in
  2. Reload the page if the error keeps recurring
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at src/services/api-plan-limit-notices.ts:42 when the library encounters an invalid state.

Common situations: See trigger scenarios.

Understand the failure class


AI-assisted analysis of koala73/worldmonitor@eeab0a219f (2026-08-21). Data as JSON: /api/errors/47f550a32ce1cd96. Report an issue: GitHub.