Skip to content

[muse] chat/completions returns empty content for muse-spark models, responses works #5426

Open

Description

@wukuwuye-code

Summary

Models served through the 9Router muse provider (upstream: Moonshot/Kimi muse-spark family) return empty choices[0].message.content on POST /v1/chat/completions, both streaming and non-streaming. The same models, same key, same gateway return correct answers on POST /v1/responses.

Environment

  • 9Router version: 0.5.112 (-p 20128 -H 0.0.0.0 -n --skip-update)
  • OS: Linux x86_64, kernel 6.18.54-instabox
  • Provider in 9Router: muse (upstream Moonshot/Kimi)
  • Auth: API key (redacted, placeholder below)

Affected models (all fail identically on chat/completions)

  • muse/muse-spark-1.1
  • muse/muse-spark-1.2
  • muse/muse-spark-1.2-contributor
  • muse/muse-spark-1.3
  • muse/muse-spark-1.3-contributor

Actual behavior — chat/completions (non-stream)

{"id":"resp_xxx","object":"chat.completion","created":1793694104,"model":"muse-spark-1.3","choices":[{"index":0,"message":{"role":"assistant","content":""},"finish_reason":"in_progress"}],"usage":{"prompt_tokens":0,"completion_tokens":0,"all_tokens":0}}

Empty content, zero usage, finish_reason: in_progress.

Actual behavior — chat/completions (stream)

Single chunk {"delta":{},"finish_reason":"stop"}, no text deltas.

Variations tried (all still empty)

System prompt, tools: [], reasoning_effort: medium, temperature: 0.7 — identical empty result.

Control test — /v1/responses WORKS (same key, same gateway)

{"model":"muse/muse-spark-1.3","input":"Tulis fungsi python faktorial(n).","max_output_tokens":500,"reasoning":{"effort":"low"}}

Result: status: completed, correct factorial code, output_tokens: 364 (reasoning 302).

Free-tier variants (separate failure mode)

  • oc/muse-spark-1.2-contributor-free
  • oc/muse-spark-1.3-contributor-free
  • oc/union-alpha
  • All return 400 Upstream request failed: Model is unavailable.

Minimal reproduction (replace placeholder with a real key)

curl -s http://localhost:20128/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_9ROUTER_KEY" \
  -d '{"model":"muse/muse-spark-1.3","messages":[{"role":"user","content":"Katakan OK"}],"max_tokens":100}'

Expected: choices[0].message.content contains "OK". Actual: empty string.

Hypothesis

The muse provider's Responses-to-chat/completions translation does not map the upstream output message into choices[0].message.content.

Activity

  1. changed the title [-][metis] /v1/chat/completions returns empty content for all muse-spark models, /v1/responses works[/-] [+][muse] chat/completions returns empty content for muse-spark models, responses works[/+] on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions