tinyhumansai/openhuman · error

Core rejected the meet_agent_list_calls request.

Error message

Core rejected the meet_agent_list_calls request.

What it means

Thrown when the `openhuman.meet_agent_list_calls` RPC resolves but `result.ok` is falsy (`!result?.ok` — this also covers a result object that is null/undefined or missing the `ok` field). Transport-level failures (unknown method, auth) already throw earlier as `CoreRpcError`, so reaching this line means the meet-agent controller ran and explicitly reported failure — by design a missing recordings JSONL is treated as 'no rows', so a genuine IO error (unreadable/corrupt file, permissions) is the usual cause.

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 a221052e0d)

Solutions

  1. Check the core log for the `meet_agent` recordings read error at the same timestamp
  2. Verify the workspace recordings directory exists and is writable by the core process
  3. Confirm the core build includes the meet agent feature (GET /schema lists `meet_agent_list_calls`)
  4. Restart or rebuild the core if the response shape is stale (`pnpm dev:app`)

Example fix

// before
const calls = await listMeetCalls();

// after — history list is non-critical, degrade gracefully
let calls: MeetCallRecord[] = [];
try { calls = await listMeetCalls(20); }
catch (e) { console.warn('meet history unavailable', e); }
Defensive patterns

Strategy: try-catch

Try / catch

let calls: MeetCallRecord[] = [];
try { calls = await listMeetCalls(limit); }
catch (e) {
  // history is a nice-to-have; degrade instead of blocking the join form
  console.warn('[meet] history unavailable', e);
}

Prevention

When it happens

Trigger: The Rust `meet_agent_list_calls` handler returns `{ok:false}` — recordings directory not writable, JSONL corrupted mid-line beyond tolerance, or a disk/permissions failure while listing. Also a core build where the handler's success shape differs (older core returning a payload without `ok`).

Common situations: Upgraded app reusing an old workspace whose recordings path moved; workspace on a synced/read-only drive; core version older than the frontend's expected response shape.

Related errors


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