tinyhumansai/openhuman · error

Core rejected the meet_agent_get_call_detail request.

Error message

Core rejected the meet_agent_get_call_detail request.

What it means

Same application-level rejection pattern as list calls: openhuman.meet_agent_get_call_detail returned ok:false for the given request_id. This is distinct from the designed 'no detail' case — the function returns null when ok:true and detail is absent (older calls recorded before the feature, or a failed transcript write), and only throws when the core explicitly rejects the request.

Solutions

  1. Catch this error where the row expands and render the same 'no transcript yet' state used for a null detail — the user experience is identical
  2. Confirm the request_id came from listMeetCalls in the same session/workspace
  3. Check core logs for why the handler rejected (read error vs unknown id)
  4. Update the core if the handler predates tolerant get-detail semantics

Example fix

// before
const detail = await getMeetCallDetail(requestId);

// after
let detail: MeetCallDetail | null = null;
try { detail = await getMeetCallDetail(requestId); }
catch { detail = null; } // panel already renders a 'no transcript yet' state for null
setDetail(detail);
Defensive patterns

Strategy: fallback

Validate before calling

function isExpandableRequestId(id: string, calls: MeetCallRecord[]): boolean {
  return calls.some(c => c.requestId === id); // only expand IDs from the current list
}

Type guard

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

Try / catch

try {
  setDetail(await getMeetCallDetail(requestId));
} catch {
  setDetail(null); // same UI state as 'no transcript yet'
}

Prevention

When it happens

Trigger: Calling getMeetCallDetail(requestId) with a malformed/unresolvable request_id that the handler rejects outright; the detail store being unreadable; a request_id from a different workspace/core instance.

Common situations: Expanding a history row after switching workspaces; stale request IDs persisted in UI state across core restarts; corrupt detail files on disk.

Related errors


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

Appendix: source

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

  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.');
  }
  return result.detail ?? null;
}

// ---------------------------------------------------------------------------
// Transcript parsing
// ---------------------------------------------------------------------------

/** A transcript line with its parsed timestamp/speaker prefix stripped out. */
interface ParsedTranscriptLine {
  timestamp: string | null;
  speaker: string | null;
  text: string;
  role: string;
}

const TRANSCRIPT_PREFIX_RE = /^\[(\d{1,2}:\d{2})\]\s*\[([^\]]+)\]\s*(.*)/s;

View on GitHub (pinned to 7491200858)