tinyhumansai/openhuman · error
${LOG} provider read failed kind=${errorKind(err)} — treatin
Error message
${LOG} provider read failed kind=${errorKind(err)} — treating as unmanaged What it means
Degraded-path warning in useEmbeddingBudgetState: the provider (managed-inference) status read failed and the hook deliberately downgrades the session to 'unmanaged' rather than erroring out. Consequence: no usage ceiling is displayed and BYO-style behavior is assumed even though the account may actually be managed.
Source
Thrown at app/src/hooks/useEmbeddingBudgetState.ts:222
if (!cancelled) setFallbackUsage(null);
} else {
console.warn(`${LOG} fallback budget read failed kind=${errorKind(err)}`);
if (!cancelled) setFallbackUsage(null);
}
}
} else if (!cancelled) {
// Not needed (BYO/local, or `useUsageState` already has the figure).
console.debug(
`${LOG} fallback budget read not needed ` +
`(managed=${managed} hasUsage=${hasUsage} usageLoading=${usageLoading})`
);
setFallbackUsage(null);
}
} catch (err) {
// Conservative on failure: an unknown provider is treated as
// NOT managed, so a transient RPC error can never manufacture a
// budget warning for a user who funds their own embeddings.
console.warn(`${LOG} provider read failed kind=${errorKind(err)} — treating as unmanaged`);
if (!cancelled) {
setProvider(null);
setFallbackUsage(null);
}
} finally {
if (!cancelled) setProviderLoading(false);
}
})();
return () => {
cancelled = true;
};
}, [reloadCount, isAuthenticated, hasUsage, usageLoading]);
const isManagedEmbeddings = isManagedEmbeddingProvider(provider);
// Without this the warning outlives its own fix. The banner is mounted for
// the app's lifetime, so a single mount-time read means a user who follows
// the CTA and switches to local Ollama keeps being told their memory isView on GitHub (pinned to 7491200858)
Solutions
- Accept the downgrade for the session but re-attempt the provider read on reconnect
- Distinguish auth failures (prompt re-login) from transient network kinds
- Log the endpoint that failed to make persistent cases diagnosable
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at app/src/hooks/useEmbeddingBudgetState.ts:222 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/aaf5b06ec184ffa2.
Report an issue: GitHub.