tinyhumansai/openhuman · error

Core rejected the meet_get_event_policies request.

Error message

Core rejected the meet_get_event_policies request.

What it means

The batch fetch openhuman.meet_get_event_policies returned ok:false. Note the early return: an empty calendarEventIds array never reaches the wire, so this only fires for non-empty batches the core rejects. The contract is that only explicitly-overridden IDs appear in the returned map — ok:false means the read failed, not 'no overrides exist'.

Solutions

  1. Catch and degrade to {} (treated as 'no overrides') so the UI falls back to per-platform/global policy display
  2. Filter/normalize IDs to non-empty strings before batching
  3. Check core logs for the policy-store read error if overrides silently vanish
  4. Retry once — a transient store lock during a concurrent setEventPolicy can surface as ok:false

Example fix

// before
const policies = await getEventPolicies(ids);

// after
const policies = await getEventPolicies(ids.filter(id => typeof id === 'string' && id.length > 0));
Defensive patterns

Strategy: fallback

Validate before calling

function sanitizeIds(ids: string[]): string[] {
  return ids.filter(id => typeof id === 'string' && id.trim().length > 0);
}

Type guard

function isGetPoliciesRejected(err: unknown): boolean {
  return err instanceof Error && err.message.includes('meet_get_event_policies');
}

Try / catch

try {
  return await getEventPolicies(sanitizeIds(ids));
} catch {
  return {}; // no overrides resolvable → UI falls back to per-platform/global policy
}

Prevention

When it happens

Trigger: getEventPolicies([...ids]) when the policy store is unreadable; IDs of a type/format the handler rejects (non-string, empty strings slipping through); calendar disconnected so the store context is unavailable.

Common situations: Rendering a list of upcoming events and batch-fetching policies while the workspace store is mid-migration; mixed ID sources (external calendar IDs vs internal IDs); store locked by a concurrent write.

Related errors


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/2fe30fbfeb41328d. Report an issue: GitHub.

Appendix: source

Thrown at app/src/services/meetCallService.ts:457

  if (!result?.ok) {
    throw new Error('Core rejected the meet_set_event_policy request.');
  }
}

/**
 * Batch-fetch per-event join-policy overrides for the given calendar event IDs.
 * Only IDs that have an explicit override are present in the returned map.
 */
export async function getEventPolicies(
  calendarEventIds: string[]
): Promise<Record<string, string>> {
  if (calendarEventIds.length === 0) return {};
  const result = await callCoreRpc<CoreGetEventPoliciesResponse>({
    method: 'openhuman.meet_get_event_policies',
    params: { calendar_event_ids: calendarEventIds },
  });
  if (!result?.ok) {
    throw new Error('Core rejected the meet_get_event_policies request.');
  }
  return result.policies ?? {};
}

export async function joinMeetingViaMascotBot(
  input: MascotJoinMeetingInput
): Promise<MascotJoinMeetingResult> {
  const meetUrl = input.meetUrl.trim();
  if (!meetUrl) {
    throw { message: 'Please paste a meeting link.', isCapacityGated: false };
  }
  try {
    return await apiClient.post<MascotJoinMeetingResult>('/mascots/join-meeting', {
      platform: input.platform,
      meetUrl,
      displayName: input.displayName?.trim() || undefined,
    });
  } catch (err) {

View on GitHub (pinned to 7491200858)