mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 09:27:39 +00:00
fix: include provider and model name in billing error message (#20510)
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 40dbdf62e8
Co-authored-by: echoVic <16428813+echoVic@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
This commit is contained in:
@@ -160,6 +160,17 @@ const toNormalizedUsage = (usage: UsageAccumulator) => {
|
||||
};
|
||||
};
|
||||
|
||||
function resolveActiveErrorContext(params: {
|
||||
lastAssistant: { provider?: string; model?: string } | undefined;
|
||||
provider: string;
|
||||
model: string;
|
||||
}): { provider: string; model: string } {
|
||||
return {
|
||||
provider: params.lastAssistant?.provider ?? params.provider,
|
||||
model: params.lastAssistant?.model ?? params.model,
|
||||
};
|
||||
}
|
||||
|
||||
export async function runEmbeddedPiAgent(
|
||||
params: RunEmbeddedPiAgentParams,
|
||||
): Promise<EmbeddedPiRunResult> {
|
||||
@@ -549,11 +560,17 @@ export async function runEmbeddedPiAgent(
|
||||
const lastTurnTotal = lastAssistantUsage?.total ?? attemptUsage?.total;
|
||||
const attemptCompactionCount = Math.max(0, attempt.compactionCount ?? 0);
|
||||
autoCompactionCount += attemptCompactionCount;
|
||||
const activeErrorContext = resolveActiveErrorContext({
|
||||
lastAssistant,
|
||||
provider,
|
||||
model: modelId,
|
||||
});
|
||||
const formattedAssistantErrorText = lastAssistant
|
||||
? formatAssistantErrorText(lastAssistant, {
|
||||
cfg: params.config,
|
||||
sessionKey: params.sessionKey ?? params.sessionId,
|
||||
provider,
|
||||
provider: activeErrorContext.provider,
|
||||
model: activeErrorContext.model,
|
||||
})
|
||||
: undefined;
|
||||
const assistantErrorText =
|
||||
@@ -919,7 +936,8 @@ export async function runEmbeddedPiAgent(
|
||||
? formatAssistantErrorText(lastAssistant, {
|
||||
cfg: params.config,
|
||||
sessionKey: params.sessionKey ?? params.sessionId,
|
||||
provider,
|
||||
provider: activeErrorContext.provider,
|
||||
model: activeErrorContext.model,
|
||||
})
|
||||
: undefined) ||
|
||||
lastAssistant?.errorMessage?.trim() ||
|
||||
@@ -928,7 +946,10 @@ export async function runEmbeddedPiAgent(
|
||||
: rateLimitFailure
|
||||
? "LLM request rate limited."
|
||||
: billingFailure
|
||||
? formatBillingErrorMessage(provider)
|
||||
? formatBillingErrorMessage(
|
||||
activeErrorContext.provider,
|
||||
activeErrorContext.model,
|
||||
)
|
||||
: authFailure
|
||||
? "LLM request unauthorized."
|
||||
: "LLM request failed.");
|
||||
@@ -937,8 +958,8 @@ export async function runEmbeddedPiAgent(
|
||||
(isTimeoutErrorMessage(message) ? 408 : undefined);
|
||||
throw new FailoverError(message, {
|
||||
reason: assistantFailoverReason ?? "unknown",
|
||||
provider,
|
||||
model: modelId,
|
||||
provider: activeErrorContext.provider,
|
||||
model: activeErrorContext.model,
|
||||
profileId: lastProfileId,
|
||||
status,
|
||||
});
|
||||
@@ -973,7 +994,8 @@ export async function runEmbeddedPiAgent(
|
||||
lastToolError: attempt.lastToolError,
|
||||
config: params.config,
|
||||
sessionKey: params.sessionKey ?? params.sessionId,
|
||||
provider,
|
||||
provider: activeErrorContext.provider,
|
||||
model: activeErrorContext.model,
|
||||
verboseLevel: params.verboseLevel,
|
||||
reasoningLevel: params.reasoningLevel,
|
||||
toolResultFormat: resolvedToolResultFormat,
|
||||
|
||||
Reference in New Issue
Block a user