Skip to content

test(live): classify xAI degraded availability#107887

Merged
steipete merged 1 commit into
mainfrom
codex/xai-live-provider-drift
Jul 15, 2026
Merged

test(live): classify xAI degraded availability#107887
steipete merged 1 commit into
mainfrom
codex/xai-live-provider-drift

Conversation

@steipete

Copy link
Copy Markdown
Contributor

What Problem This Solves

Full Release Validation failed the native xAI agent lane when Grok returned Service temporarily unavailable. The model's availability is currently degraded. One live tool-call assertion failed while 74 sibling native live tests passed; fail-fast then cancelled unrelated Docker, package, QA, and cross-OS work.

Failure: https://github.com/openclaw/openclaw/actions/runs/29379189220/job/87239480734

Why This Change Was Made

Route xAI live-test drift through the existing canonical live-provider classifier. Extend that classifier to consume the already-established overload and server-error matchers, including the exact observed xAI degradation response. Use the same classifier for returned web-search errors, not only thrown completion errors.

This does not relax tool payload, assistant text, citation, or provider assertions. Only recognized billing/upstream availability failures are skipped. xAI's official debugging guidance distinguishes service errors from request errors and directs ongoing disruptions to its status service: https://docs.x.ai/developers/debugging

User Impact

No runtime behavior change. Live release validation no longer treats a recognized temporary provider outage as an OpenClaw contract regression; deterministic response and payload regressions still fail.

Evidence

After PR CI, rerun native-live-src-agents on this exact head, then rerun Full Release Validation on the landed main SHA.

No changelog entry: test/release-harness robustness only.

@openclaw-barnacle openclaw-barnacle Bot added agents Agent runtime and tooling size: XS maintainer Maintainer-authored PR labels Jul 15, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8d8cc2e80c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

const msg = normalizeLowercaseStringOrEmpty(raw);
return (
isOverloadedErrorMessage(raw) ||
isServerErrorMessage(raw) ||

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Guard 4xx server_error payloads before skipping

When a provider returns a 4xx OpenAI-compatible error whose body still contains server_error (for example 422 ... {"error":{"type":"server_error"}}), this new branch makes shouldSkipLiveProviderDrift({ allowProviderUnavailable: true }) classify it as a provider outage. Existing failover coverage keeps explicit 4xx statuses ahead of server_error markers in src/agents/failover-error.test.ts:1264-1270, so live lanes that enable provider-unavailable skips can now hide request/auth/billing regressions instead of failing them.

Useful? React with 👍 / 👎.

@steipete

Copy link
Copy Markdown
Contributor Author

Land-ready proof for exact head 8d8cc2e80ce7d52da4ba1aea69ebc78a3b003a01:

Best-fix verdict: yes. The patch centralizes temporary provider-unavailability recognition, preserves unknown-error failures, and keeps xAI request, response, content, and citation assertions deterministic.

@steipete
steipete merged commit 3c0654c into main Jul 15, 2026
129 of 133 checks passed
@steipete
steipete deleted the codex/xai-live-provider-drift branch July 15, 2026 01:18
@steipete

Copy link
Copy Markdown
Contributor Author

Merged via squash.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling maintainer Maintainer-authored PR size: XS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant