tinyhumansai/openhuman · error
Model test RPC returned no result for ${workload} via ${prov
Error message
Model test RPC returned no result for ${workload} via ${provider} (openhuman.inference_test_provider_model). What it means
testProviderModel got a response from openhuman.inference_test_provider_model but res.result was null/undefined — the envelope has no result object to read workload/provider outcome from. This is a protocol-shape mismatch, not a failed inference: the RPC layer answered, the payload did not match the expected { result: ProviderModelTestResult } shape.
Source
Thrown at app/src/services/api/aiSettingsApi.ts:818
});
return res?.result?.errors ?? [];
}
export async function testProviderModel(
workload: WorkloadId,
provider: string,
prompt = 'Hello world'
): Promise<ProviderModelTestResult> {
if (!isTauri()) {
throw new Error('Model testing is only available in the desktop app.');
}
const res = await callCoreRpc<{ result: ProviderModelTestResult }>({
method: 'openhuman.inference_test_provider_model',
params: { workload, provider, prompt },
timeoutMs: PROVIDER_MODEL_TEST_TIMEOUT_MS,
});
if (!res?.result) {
throw new Error(
`Model test RPC returned no result for ${workload} via ${provider} (openhuman.inference_test_provider_model).`
);
}
return res.result;
}
// ─── Local provider façade (Ollama install / detect / model manage) ───────
/** Snapshot of the Ollama daemon + installed-model state for the AI panel. */
export interface LocalProviderSnapshot {
status: LocalAiStatus | null;
diagnostics: LocalAiDiagnostics | null;
presets: PresetsResponse | null;
installedModels: InstalledModelInfo[];
}
export async function loadLocalProviderSnapshot(): Promise<LocalProviderSnapshot> {
const [statusRes, diag, presets] = await Promise.all([View on GitHub (pinned to a221052e0d)
Solutions
- Restart the desktop app / core process so the bundled core matches the frontend
- If using OPENHUMAN_CORE_REUSE_EXISTING, clear it and let the fresh core spawn, then retest
- Check the core-side handler for inference_test_provider_model (what it returns on skip/failure) in logs
- Catch the error and show 'model test unavailable in this build' rather than a raw stack
Example fix
// before
const r = await testProviderModel(workload, provider);
setOutcome(r);
// after
try {
const r = await testProviderModel(workload, provider);
setOutcome(r);
} catch (e) {
setOutcome({ error: 'Model test unavailable — restart the app and try again.' });
} Defensive patterns
Strategy: try-catch
Type guard
const hasResult = <T>(r: unknown): r is { result: T } =>
typeof r === 'object' && r !== null && 'result' in r && (r as { result: unknown }).result != null; Try / catch
try { const r = await testProviderModel(workload, provider); setOutcome(r); }
catch (e) { if (String(e.message).includes('no result')) { promptRestartCore('Model test unavailable — restart the app.'); } else throw e; } Prevention
- Restart the embedded core after frontend/core updates before debugging 'shape' errors
- Don't pin an old core with OPENHUMAN_CORE_REUSE_EXISTING while testing new frontend code
- Make mocks return the full { result: ... } envelope so tests match production
When it happens
Trigger: A core version whose handler returns {} or a differently-named envelope for inference_test_provider_model; a proxy/mock returning an empty object; result explicitly nulled by the handler on some internal skip path.
Common situations: Version skew between an updated frontend and an older (or not-yet-restarted) embedded core; OPENHUMAN_CORE_REUSE_EXISTING=1 pinning an older core during development; mock backends that answer success without the result body.
Related errors
- OPENAI_CODEX_OAUTH_MISSING_AUTH_URL
- ${context} returned an invalid response shape
- Local model runtime is unavailable in this core build. Resta
- consume login token response missing jwt
- Invalid ${paramName}: '${value}'. Must be a valid integer ID
AI-assisted analysis of tinyhumansai/openhuman@a221052e0d (2026-08-16).
Data as JSON: /api/errors/828744b5c1e52480.
Report an issue: GitHub.