hermes - 💡(How to fix) Fix [Bug]: xAI Grok OAuth fails in headless Docker/LAN setup with code_challenge_method must be S256 [1 pull requests]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

Operating System

Ubuntu Server 24.04

Python Version

3.13.5

Hermes Version

0.14.0 (2026.5.16)

Additional Logs / Traceback (optional)

Root Cause

Root Cause Analysis (optional)

Fix Action

Fixed

Code Example

xAI authorization failed: code_challenge_method must be S256

---

xAI authorization failed: code_challenge_method must be S256

### Affected Component

Setup / Installation

### Messaging Platform (if gateway-related)

_No response_

### Debug Report

---

### Operating System

Ubuntu Server 24.04

### Python Version

3.13.5

### Hermes Version

0.14.0 (2026.5.16)

### Additional Logs / Traceback (optional)
RAW_BUFFERClick to expand / collapse

Bug Description

Environment

  • Hermes Agent version: 0.14.0 (2026.5.16)
  • Ubuntu Server on LAN
  • Accessed via Tabby SSH from Windows 11
  • Hermes running sandboxed in Docker
  • Using xAI Grok OAuth (SuperGrok Subscription)

What I am trying to do

I am trying to connect Hermes Agent to my SuperGrok subscription using the built-in xAI Grok OAuth provider.

What happens

Hermes prints the OAuth URL correctly in the CLI. I open the URL in my Windows browser and the xAI login flow opens correctly.

However, after authentication, Hermes never successfully completes the OAuth flow.

I tested:

  • normal Docker networking
  • --network host
  • SSH port forwarding: ssh -L 56121:127.0.0.1:56121 user@server

The browser sometimes displays a code, but Hermes does not provide any prompt/place to paste the code manually into the CLI.

The final Hermes CLI error is:

xAI authorization failed: code_challenge_method must be S256

Additional observations

  • Hermes setup otherwise completes successfully
  • xAI plugin appears to load correctly
  • provider remains unset afterward: Active provider: none
  • hermes debug share output was redacted and does not appear to include the actual Grok OAuth failure line

Question

Is this:

  • a bug/regression in the xAI OAuth flow,
  • an unsupported headless/LAN Docker scenario,
  • or is there currently another supported workflow for SuperGrok OAuth in headless environments?

Steps to Reproduce

  1. Run Hermes Agent in Docker on a headless Ubuntu Server accessed via SSH from Windows 11 (Tabby CLI).
  2. Run hermes model
  3. Select xAI Grok OAuth (SuperGrok Subscription)
  4. Open the generated OAuth URL in a Windows browser.
  5. Complete xAI authentication.
  6. Hermes fails to complete OAuth and returns: xAI authorization failed: code_challenge_method must be S256
  7. Provider remains unset (Active provider: none)

Expected Behavior

  1. Run Hermes Agent in Docker on a headless Ubuntu Server accessed via SSH from Windows 11 (Tabby CLI).
  2. Run hermes model
  3. Select xAI Grok OAuth (SuperGrok Subscription)
  4. Open the generated OAuth URL in a Windows browser.
  5. Complete xAI authentication.
  6. Hermes fails to complete OAuth and returns: xAI authorization failed: code_challenge_method must be S256
  7. Provider remains unset (Active provider: none)

Actual Behavior

After completing the xAI login flow in the browser, Hermes never successfully completes OAuth authentication.

The browser sometimes displays a code, but Hermes does not provide any prompt/place to paste the code manually into the CLI.

The final Hermes CLI error is:

xAI authorization failed: code_challenge_method must be S256

### Affected Component

Setup / Installation

### Messaging Platform (if gateway-related)

_No response_

### Debug Report

```shell
[hermes debug share: log content redacted at upload time. run with --no-redact to disable]
--- hermes dump ---
version:          0.14.0 (2026.5.16) [(unknown)]
os:               Linux 6.8.0-106-generic x86_64
python:           3.13.5
openai_sdk:       2.24.0
profile:          default
hermes_home:      ~/.
model:            anthropic/claude-opus-4.6
provider:         auto
terminal:         local

api_keys:
  openrouter           not set
  openai               not set
  anthropic            not set
  anthropic_token      not set
  nous                 not set
  google/gemini        not set
  gemini               not set
  glm/zai              not set
  zai                  not set
  kimi                 not set
  minimax              not set
  deepseek             not set
  dashscope            not set
  huggingface          not set
  nvidia               not set
  ai_gateway           not set
  opencode_zen         not set
  opencode_go          not set
  kilocode             not set
  firecrawl            not set
  tavily               not set
  browserbase          not set
  fal                  not set
  elevenlabs           not set
  github               not set

features:
  toolsets:           hermes-cli
  mcp_servers:        0
  memory_provider:    built-in
  gateway:            stopped (docker (foreground))
  platforms:          telegram
  cron_jobs:          0
  skills:             87

config_overrides:
  display.streaming: True
--- end dump ---

--- agent.log (last 200 lines) ---
2026-05-17 18:52:27,170 INFO hermes_cli.plugins: Plugin 'openai' registered image_gen provider: openai
2026-05-17 18:52:27,184 INFO hermes_cli.plugins: Plugin 'openai-codex' registered image_gen provider: openai-codex
2026-05-17 18:52:27,201 INFO hermes_cli.plugins: Plugin 'xai' registered image_gen provider: xai
2026-05-17 18:52:27,268 INFO hermes_cli.plugins: Plugin 'fal' registered video_gen provider: fal
2026-05-17 18:52:27,284 INFO hermes_cli.plugins: Plugin 'xai' registered video_gen provider: xai
2026-05-17 18:52:27,314 INFO hermes_cli.plugins: Plugin 'web-brave-free' registered web provider: brave-free
2026-05-17 18:52:27,327 INFO hermes_cli.plugins: Plugin 'web-ddgs' registered web provider: ddgs
2026-05-17 18:52:27,342 INFO hermes_cli.plugins: Plugin 'web-exa' registered web provider: exa
2026-05-17 18:52:27,371 INFO hermes_cli.plugins: Plugin 'web-firecrawl' registered web provider: firecrawl
2026-05-17 18:52:27,387 INFO hermes_cli.plugins: Plugin 'web-parallel' registered web provider: parallel
2026-05-17 18:52:27,401 INFO hermes_cli.plugins: Plugin 'web-searxng' registered web provider: searxng
2026-05-17 18:52:27,417 INFO hermes_cli.plugins: Plugin 'web-tavily' registered web provider: tavily
2026-05-17 18:52:28,614 INFO hermes_cli.plugins: Plugin discovery complete: 22 found, 18 enabled
2026-05-17 18:56:42,891 WARNING agent.auxiliary_client: Auxiliary: marking openrouter unhealthy for 60s (payment / credit error). Subsequent auxiliary calls will skip it until 18:57:42.
2026-05-17 18:56:42,904 WARNING agent.auxiliary_client: Auxiliary Nous client unavailable: no Nous authentication found (run: hermes auth).
2026-05-17 18:56:42,905 WARNING agent.auxiliary_client: Auxiliary: marking nous unhealthy for 60s (payment / credit error). Subsequent auxiliary calls will skip it until 18:57:42.

--- errors.log (last 100 lines) ---
2026-05-17 18:56:42,891 WARNING agent.auxiliary_client: Auxiliary: marking openrouter unhealthy for 60s (payment / credit error). Subsequent auxiliary calls will skip it until 18:57:42.
2026-05-17 18:56:42,904 WARNING agent.auxiliary_client: Auxiliary Nous client unavailable: no Nous authentication found (run: hermes auth).
2026-05-17 18:56:42,905 WARNING agent.auxiliary_client: Auxiliary: marking nous unhealthy for 60s (payment / credit error). Subsequent auxiliary calls will skip it until 18:57:42.

--- gateway.log (last 100 lines) ---
(file not found)

Operating System

Ubuntu Server 24.04

Python Version

3.13.5

Hermes Version

0.14.0 (2026.5.16)

Additional Logs / Traceback (optional)

Root Cause Analysis (optional)

No response

Proposed Fix (optional)

No response

Are you willing to submit a PR for this?

  • I'd like to fix this myself and submit a PR

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix [Bug]: xAI Grok OAuth fails in headless Docker/LAN setup with code_challenge_method must be S256 [1 pull requests]