mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-07 22:09:57 +00:00
fix(agents): prevent false billing error replacing valid response text (#40616)
Merged via squash.
Prepared head SHA: 05179362b4
Co-authored-by: ingyukoh <6015960+ingyukoh@users.noreply.github.com>
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Reviewed-by: @altaywtf
This commit is contained in:
@@ -101,6 +101,18 @@ describe("buildEmbeddedRunPayloads", () => {
|
||||
expect(payloads[0]?.isError).toBe(true);
|
||||
});
|
||||
|
||||
it("does not emit a synthetic billing error for successful turns with stale errorMessage", () => {
|
||||
const payloads = buildPayloads({
|
||||
lastAssistant: makeAssistant({
|
||||
stopReason: "stop",
|
||||
errorMessage: "insufficient credits for embedding model",
|
||||
content: [{ type: "text", text: "Handle payment required errors in your API." }],
|
||||
}),
|
||||
});
|
||||
|
||||
expectSinglePayloadText(payloads, "Handle payment required errors in your API.");
|
||||
});
|
||||
|
||||
it("suppresses raw error JSON even when errorMessage is missing", () => {
|
||||
const payloads = buildPayloads({
|
||||
assistantTexts: [errorJsonPretty],
|
||||
|
||||
@@ -128,16 +128,17 @@ export function buildEmbeddedRunPayloads(params: {
|
||||
const useMarkdown = params.toolResultFormat === "markdown";
|
||||
const suppressAssistantArtifacts = params.didSendDeterministicApprovalPrompt === true;
|
||||
const lastAssistantErrored = params.lastAssistant?.stopReason === "error";
|
||||
const errorText = params.lastAssistant
|
||||
? suppressAssistantArtifacts
|
||||
? undefined
|
||||
: formatAssistantErrorText(params.lastAssistant, {
|
||||
cfg: params.config,
|
||||
sessionKey: params.sessionKey,
|
||||
provider: params.provider,
|
||||
model: params.model,
|
||||
})
|
||||
: undefined;
|
||||
const errorText =
|
||||
params.lastAssistant && lastAssistantErrored
|
||||
? suppressAssistantArtifacts
|
||||
? undefined
|
||||
: formatAssistantErrorText(params.lastAssistant, {
|
||||
cfg: params.config,
|
||||
sessionKey: params.sessionKey,
|
||||
provider: params.provider,
|
||||
model: params.model,
|
||||
})
|
||||
: undefined;
|
||||
const rawErrorMessage = lastAssistantErrored
|
||||
? params.lastAssistant?.errorMessage?.trim() || undefined
|
||||
: undefined;
|
||||
|
||||
Reference in New Issue
Block a user