musistudio/claude-code-router · error · Error
Plugin app did not become available at ${appUrl}. Last probe
Error message
Plugin app did not become available at ${appUrl}. Last probe: ${lastProbe} What it means
Error "Plugin app did not become available at ${appUrl}. Last probe: ${lastProbe}" thrown in musistudio/claude-code-router.
Source
Thrown at packages/electron/src/main/deep-link.ts:250
async function waitForPluginAppUrl(appUrl: string, timeoutMs: number): Promise<void> {
const deadline = Date.now() + timeoutMs;
let lastProbe = "timeout";
while (Date.now() <= deadline) {
const probe = await probePluginAppUrl(appUrl);
if (probe.ok) {
return;
}
lastProbe = probe.detail;
const remainingMs = deadline - Date.now();
if (remainingMs <= 0) {
break;
}
await delay(Math.min(pluginAppProbeIntervalMs, remainingMs));
}
throw new Error(`Plugin app did not become available at ${appUrl}. Last probe: ${lastProbe}`);
}
async function probePluginAppUrl(appUrl: string): Promise<{ ok: true } | { detail: string; ok: false }> {
const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), pluginAppProbeRequestTimeoutMs);
try {
const response = await fetch(appUrl, {
cache: "no-store",
method: "HEAD",
signal: controller.signal
});
if (response.ok) {
return { ok: true };
}
return {
detail: `HTTP ${response.status}${response.statusText ? ` ${response.statusText}` : ""}`,
ok: false
};View on GitHub (pinned to 99f24806c6)
When it happens
Trigger: Thrown at packages/electron/src/main/deep-link.ts:250 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of musistudio/claude-code-router@99f24806c6 (2026-08-27).
Data as JSON: /api/errors/a6f73c8c075edf89.
Report an issue: GitHub.