diff --git a/src/cron/isolated-agent/run.cron-model-override.test.ts b/src/cron/isolated-agent/run.cron-model-override.test.ts index 890392163de..6ef22e8e374 100644 --- a/src/cron/isolated-agent/run.cron-model-override.test.ts +++ b/src/cron/isolated-agent/run.cron-model-override.test.ts @@ -168,13 +168,13 @@ describe("runCronIsolatedAgentTurn — cron model override (#21057)", () => { it("returns error without persisting model when payload model is disallowed", async () => { resolveAllowedModelRefMock.mockReturnValueOnce({ - error: "Model not allowed: anthropic/claude-sonnet-4-6", + error: "model not allowed: anthropic/claude-sonnet-4-6", }); const result = await runCronIsolatedAgentTurn(makeParams()); expect(result.status).toBe("error"); - expect(result.error).toContain("Model not allowed"); + expect(result.error).toContain("model not allowed"); // Model should remain undefined — the early return happens before the // pre-run persist block, so neither the session entry nor the store // should be touched with a rejected model. diff --git a/src/cron/isolated-agent/run.skill-filter.test.ts b/src/cron/isolated-agent/run.skill-filter.test.ts index b0d34ad2f40..ca1240bd836 100644 --- a/src/cron/isolated-agent/run.skill-filter.test.ts +++ b/src/cron/isolated-agent/run.skill-filter.test.ts @@ -207,30 +207,27 @@ describe("runCronIsolatedAgentTurn — skill filter", () => { expect(runParams.model).toBe("claude-sonnet-4-6"); }); - it("falls back to agent defaults when payload.model is not allowed", async () => { + it("returns error when payload.model is not allowed", async () => { resolveAllowedModelRefMock.mockReturnValueOnce({ error: "model not allowed: anthropic/claude-sonnet-4-6", }); - await runSkillFilterCase({ - cfg: { - agents: { - defaults: { - model: { primary: "openai-codex/gpt-5.3-codex", fallbacks: defaultFallbacks }, + const result = await runCronIsolatedAgentTurn( + makeSkillParams({ + cfg: { + agents: { + defaults: { + model: { primary: "openai-codex/gpt-5.3-codex", fallbacks: defaultFallbacks }, + }, }, }, - }, - job: makeSkillJob({ - payload: { kind: "agentTurn", message: "test", model: "anthropic/claude-sonnet-4-6" }, + job: makeSkillJob({ + payload: { kind: "agentTurn", message: "test", model: "anthropic/claude-sonnet-4-6" }, + }), }), - }); - expect(logWarnMock).toHaveBeenCalledWith( - "cron: payload.model 'anthropic/claude-sonnet-4-6' not allowed, falling back to agent defaults", ); - expectDefaultModelCall({ - primary: "openai-codex/gpt-5.3-codex", - fallbacks: defaultFallbacks, - }); + expect(result.status).toBe("error"); + expect(result.error).toContain("model not allowed"); }); it("returns an error when payload.model is invalid", async () => { diff --git a/src/cron/isolated-agent/run.ts b/src/cron/isolated-agent/run.ts index 2e6020a1fe1..a53d037437d 100644 --- a/src/cron/isolated-agent/run.ts +++ b/src/cron/isolated-agent/run.ts @@ -223,13 +223,7 @@ export async function runCronIsolatedAgentTurn(params: { defaultModel: resolvedDefault.model, }); if ("error" in resolvedOverride) { - if (resolvedOverride.error.startsWith("model not allowed:")) { - logWarn( - `cron: payload.model '${modelOverride}' not allowed, falling back to agent defaults`, - ); - } else { - return { status: "error", error: resolvedOverride.error }; - } + return { status: "error", error: resolvedOverride.error }; } else { provider = resolvedOverride.ref.provider; model = resolvedOverride.ref.model;