tinyhumansai/openhuman · error

Core rejected the meet_agent_list_calls request.

Error message

Core rejected the meet_agent_list_calls request.

What it means

The RPC transport succeeded and returned a result envelope, but the meet_agent_list_calls handler answered with ok:false (or a falsy result) — an application-level rejection from the Meet agent domain, not an HTTP/JSON-RPC failure. The doc comment notes the happy 'no data' case is a missing JSONL file treated as zero rows, so ok:false indicates the core actively failed the read.

Solutions

  1. Check core logs for the meet_agent read failure (the Rust side logs before returning ok:false)
  2. Verify the workspace call-history JSONL exists / is readable; repair or remove a corrupt file so it regenerates
  3. Update core and frontend together — newer handlers treat a missing file as empty rather than failing
  4. Wrap the call and fall back to [] in the UI so the Meeting Bots modal still renders the join form

Example fix

// before
export async function listMeetCallsSafe(): Promise<MeetCallRecord[]> {
  return listMeetCalls(20);
}

// after
export async function listMeetCallsSafe(): Promise<MeetCallRecord[]> {
  try { return await listMeetCalls(20); }
  catch (err) { logger.warn('meet history unavailable', err); return []; }
}
Defensive patterns

Strategy: fallback

Type guard

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

Try / catch

try {
  return await listMeetCalls(20);
} catch (err) {
  logger.warn('meet history unavailable', err);
  return [] as MeetCallRecord[]; // modal renders join form with empty history
}

Prevention

When it happens

Trigger: Calling listMeetCalls(limit) when the core's call-history JSONL store is unreadable/corrupt; the meet_agent domain failing to open its data directory; older core builds whose handler returns ok:false on read errors instead of an empty list.

Common situations: Meet history file locked or truncated after a crash; permissions on the workspace directory; running a core build predating the 'missing file = no rows' semantics; limit values the handler rejects.

Related errors


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

Appendix: source

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

interface CoreGetCallDetailResponse {
  ok: boolean;
  detail: MeetCallDetail | null;
}

/**
 * Fetch the most recent completed Meet calls (newest first). Used
 * by the Skills "Meeting Bots" modal to render a history list
 * underneath the join form. Returns an empty array on a fresh
 * install (no recorded calls yet) — the core treats a missing
 * JSONL file as "no rows" rather than an error.
 */
export async function listMeetCalls(limit = 20): Promise<MeetCallRecord[]> {
  const result = await callCoreRpc<CoreListCallsResponse>({
    method: 'openhuman.meet_agent_list_calls',
    params: { limit },
  });
  if (!result?.ok) {
    throw new Error('Core rejected the meet_agent_list_calls request.');
  }
  return result.calls ?? [];
}

/**
 * Fetch the transcript + summary for one completed call. Lazy-loaded when the
 * user expands a recent-call row. Returns `null` when the core has no detail
 * for this call (older calls recorded before the feature, or a failed write) —
 * the panel renders a "no transcript yet" state in that case.
 */
export async function getMeetCallDetail(requestId: string): Promise<MeetCallDetail | null> {
  const result = await callCoreRpc<CoreGetCallDetailResponse>({
    method: 'openhuman.meet_agent_get_call_detail',
    params: { request_id: requestId },
  });
  if (!result?.ok) {
    throw new Error('Core rejected the meet_agent_get_call_detail request.');
  }

View on GitHub (pinned to 7491200858)