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
- Retry — the Convex auth token usually propagates shortly after sign-in
- 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
- Authentication and authorization failures — expired tokens, bad credentials, and missing scopes.
AI-assisted analysis of koala73/worldmonitor@eeab0a219f (2026-08-21).
Data as JSON: /api/errors/47f550a32ce1cd96.
Report an issue: GitHub.