{"record":{"id":"0e425418a80add29","repo":"paperclipai/paperclip","slug":"claude-cli-usage-probe-ended-before-rendering-usag","errorCode":null,"errorMessage":"Claude CLI usage probe ended before rendering usage.","messagePattern":"Claude CLI usage probe ended before rendering usage\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/adapters/claude-local/src/server/quota.ts","lineNumber":513,"sourceCode":"  const claudeCommand = \"claude --tools \\\"\\\"\";\n  if (process.platform === \"darwin\") {\n    return `${feed} | script -q /dev/null ${claudeCommand}`;\n  }\n  return `${feed} | script -q -e -f -c ${quoteForShell(claudeCommand)} /dev/null`;\n}\n\nexport async function captureClaudeCliUsageText(timeoutMs = 12_000): Promise<string> {\n  const command = buildClaudeCliShellProbeCommand();\n  try {\n    const { stdout, stderr } = await execFileAsync(\"sh\", [\"-c\", command], {\n      env: createClaudeQuotaEnv(),\n      timeout: timeoutMs,\n      maxBuffer: 8 * 1024 * 1024,\n    });\n    const output = `${stdout}${stderr}`;\n    const cleaned = cleanTerminalText(output);\n    if (usageOutputLooksComplete(cleaned)) return output;\n    throw new Error(\"Claude CLI usage probe ended before rendering usage.\");\n  } catch (error) {\n    const stdout =\n      typeof error === \"object\" && error !== null && \"stdout\" in error && typeof error.stdout === \"string\"\n        ? error.stdout\n        : \"\";\n    const stderr =\n      typeof error === \"object\" && error !== null && \"stderr\" in error && typeof error.stderr === \"string\"\n        ? error.stderr\n        : \"\";\n    const output = `${stdout}${stderr}`;\n    const cleaned = cleanTerminalText(output);\n    if (usageOutputLooksComplete(cleaned)) return output;\n    if (usageOutputLooksRelevant(cleaned)) {\n      throw new Error(\"Claude CLI usage probe ended before rendering usage.\");\n    }\n    throw error instanceof Error ? error : new Error(String(error));\n  }\n}","sourceCodeStart":495,"sourceCodeEnd":531,"githubUrl":"https://github.com/paperclipai/paperclip/blob/3f1d897a7c018d76563a21c6e39c3c9b03933622/packages/adapters/claude-local/src/server/quota.ts#L495-L531","documentation":"Error \"Claude CLI usage probe ended before rendering usage.\" thrown in paperclipai/paperclip.","triggerScenarios":"Thrown at packages/adapters/claude-local/src/server/quota.ts:451 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry the usage probe.","Check that the Claude CLI renders `/usage` non-interactively."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"3f1d897a7c018d76563a21c6e39c3c9b03933622","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}