From 392282c51881dc62766efc3c539b7359e7a520cc Mon Sep 17 00:00:00 2001 From: Hongming Wang Date: Tue, 21 Apr 2026 10:24:58 -0700 Subject: [PATCH] fix(e2e): set MODEL_PROVIDER=openai for Hermes runtime MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hermes's provider resolver checks ANTHROPIC_API_KEY first (resolution order puts anthropic before openai). Without MODEL_PROVIDER=openai explicitly set, Hermes defaults to claude-sonnet-4-6 against the OpenAI endpoint and 404s with model_not_found. Staging E2E run 2026-04-21T17:24Z hit this after every earlier fix landed (workspace online, A2A ready) — last remaining blocker for the happy path. Co-Authored-By: Claude Opus 4.7 (1M context) --- tests/e2e/test_staging_full_saas.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/e2e/test_staging_full_saas.sh b/tests/e2e/test_staging_full_saas.sh index 46014e35..b1d78345 100755 --- a/tests/e2e/test_staging_full_saas.sh +++ b/tests/e2e/test_staging_full_saas.sh @@ -238,7 +238,11 @@ tenant_call() { # expected and actionable. SECRETS_JSON='{}' if [ -n "${E2E_OPENAI_API_KEY:-}" ]; then - SECRETS_JSON="{\"OPENAI_API_KEY\":\"$E2E_OPENAI_API_KEY\"}" + # MODEL_PROVIDER=openai forces Hermes's resolver to pick the OpenAI + # path. Without it Hermes defaults to Claude (resolution order puts + # anthropic before openai) and you get 404 model_not_found because + # the OpenAI endpoint doesn't serve claude-sonnet-* models. + SECRETS_JSON="{\"OPENAI_API_KEY\":\"$E2E_OPENAI_API_KEY\",\"MODEL_PROVIDER\":\"openai\"}" fi log "5/11 Provisioning parent workspace (runtime=$RUNTIME)..."