tinyhumansai/openhuman · error
Core rejected the meet_list_upcoming request.
Error message
Core rejected the meet_list_upcoming request.
What it means
`openhuman.meet_list_upcoming` resolved with `ok` falsy — the meet controller ran but refused the listing. Upcoming meetings come from the calendar connection plus per-event join-policy data, so failures usually trace to calendar state: not connected, token expired, or event fetch failing core-side. Both `lookahead_minutes` and `limit` are optional and omitted when null; bad values (negative, huge) can also be rejected by the handler.
Source
Thrown at app/src/services/meetCallService.ts:409
}
/**
* Fetch upcoming calendar meetings that have a conferencing link.
* Returns an empty array when no Google Calendar is connected.
*/
export async function listUpcomingMeetings(
lookaheadMinutes?: number,
limit?: number
): Promise<UpcomingMeeting[]> {
const result = await callCoreRpc<CoreListUpcomingResponse>({
method: 'openhuman.meet_list_upcoming',
params: {
...(lookaheadMinutes != null ? { lookahead_minutes: lookaheadMinutes } : {}),
...(limit != null ? { limit } : {}),
},
});
if (!result?.ok) {
throw new Error('Core rejected the meet_list_upcoming request.');
}
return result.meetings ?? [];
}
// ---------------------------------------------------------------------------
// Per-event join-policy overrides
// ---------------------------------------------------------------------------
interface CoreSetEventPolicyResponse {
ok: boolean;
}
interface CoreGetEventPoliciesResponse {
ok: boolean;
policies: Record<string, string>;
}
/**View on GitHub (pinned to a221052e0d)
Solutions
- Check calendar connection status in Settings → Connections and reconnect if needed
- Clamp `lookaheadMinutes` (>0) and `limit` (>=1) before calling, or omit them to use defaults
- Inspect core logs for the meet_list_upcoming handler error
- Retry after reconnecting the calendar provider
Example fix
// before const meetings = await listUpcomingMeetings(lookahead ?? -1, limit); // after const meetings = await listUpcomingMeetings( lookahead != null && lookahead > 0 ? Math.min(lookahead, 1440) : undefined, limit != null && limit > 0 ? Math.min(limit, 100) : undefined );
Defensive patterns
Strategy: try-catch
Validate before calling
const args = {
...(lookaheadMinutes != null && lookaheadMinutes > 0 ? { lookahead_minutes: Math.min(lookaheadMinutes, 1440) } : {}),
...(limit != null && limit > 0 ? { limit: Math.min(limit, 100) } : {}),
}; Try / catch
let meetings: UpcomingMeeting[] = [];
try { meetings = await listUpcomingMeetings(); }
catch (e) {
// usually calendar auth — prompt reconnect instead of crashing the view
showCalendarReconnectPrompt();
} Prevention
- Clamp or omit optional numeric params instead of forwarding raw UI values
- Check calendar connection status before rendering upcoming-meeting views
- Re-request calendar access on auth-style failures instead of retrying blindly
When it happens
Trigger: Calendar integration disconnected or its OAuth token expired mid-session; a negative `lookaheadMinutes` or `limit` of 0; backend calendar sync error propagating as ok:false.
Common situations: Fresh install where calendar was never connected but the UI assumes it is; revoked calendar grant; sleep/wake leaving the sync stale; passing `limit: 0` from an unclamped UI control.
Related errors
- Core rejected the meet_set_event_policy request.
- Core rejected the meet_get_event_policies request.
- Core RPC response missing result
- Core rejected the meet_agent_list_calls request.
- Core rejected the meet_agent_get_call_detail request.
AI-assisted analysis of tinyhumansai/openhuman@a221052e0d (2026-08-16).
Data as JSON: /api/errors/712dcdefe01d9f53.
Report an issue: GitHub.