tinyhumansai/openhuman · error

[ai-panel] backfill status check failed

Error message

[ai-panel] backfill status check failed

What it means

The initial memory-tree backfill status check failed after a successful settings save: memoryTreeBackfillStatus rejected, so the hook could not determine whether a re-embed backfill was triggered (st.in_progress). Consequently the backfill progress modal is never opened — a running backfill proceeds unmonitored rather than being surfaced to the user.

Source

Thrown at app/src/components/settings/panels/useReembedBackfillModal.ts:46

const POLL_MS = 2000;

/**
 * @param save Persists settings; resolves `true` only on a successful write
 *   (a failed save did not change the embedder, so nothing to surface).
 */
export function useReembedBackfillModal(save: () => Promise<boolean>): ReembedBackfillModal {
  const [reembed, setReembed] = useState<ReembedState>({ open: false, pending: 0 });

  const handleSave = useCallback(async () => {
    const ok = await save();
    if (!ok) return;
    try {
      const st = await memoryTreeBackfillStatus();
      if (st.in_progress) {
        setReembed({ open: true, pending: st.pending_jobs });
      }
    } catch (e) {
      console.warn('[ai-panel] backfill status check failed', e);
    }
  }, [save]);

  const dismissReembed = useCallback(() => setReembed({ open: false, pending: 0 }), []);

  useEffect(() => {
    if (!reembed.open) return;
    let cancelled = false;
    // Serialize polls — if a status call takes >POLL_MS, skip the next tick
    // rather than overlapping requests.
    let inFlight = false;
    const id = window.setInterval(() => {
      if (inFlight) return;
      inFlight = true;
      void (async () => {
        try {
          const st = await memoryTreeBackfillStatus();
          if (cancelled) return;

View on GitHub (pinned to 7491200858)

Solutions

  1. Check the warned error — core RPC transport or auth expiry are the usual causes
  2. Re-save the embedder setting to re-trigger the status check once healthy
  3. The backfill itself runs core-side regardless; verify progress later via the AI/memory settings status
  4. Persistent failures: inspect core logs for the memory tree backfill status handler
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at app/src/components/settings/panels/useReembedBackfillModal.ts:46 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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