Skip to content

这个模型没有办法使用,如果开启代理,就无法使用. #3424

Description

@mszero

Client or integration

Claude Code

Area

Catalog / models

Summary

OpenCode Go(muse-spark-1.3-contributor) 其他的open code 模型都可以使用,只有这个不行...但是在其他的软件就可以正常使用.

Reproduction

export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;
ocx service start

Version

2.40

Operating system

Mac

Provider and model

No response

Logs or error output

{
  "requestId": "ocx-7ab1bef139ff182f4b4e5d55f886ba92",
  "timestamp": 1788494695763,
  "model": "muse-spark-1.3-contributor",
  "provider": "opencode-go",
  "surface": "claude",
  "admissionKind": "loopback",
  "inboundProtocol": "messages",
  "conversationId": "29b25a8f4e6ff06283c4b84227939c27",
  "requestedModel": "opencode-go/muse-spark-1.3-contributor",
  "requestedAlias": "opencode-go/muse-spark-1.3-contributor",
  "requestedEffort": "high",
  "effectiveEffort": "high",
  "reasoningWireField": "reasoning_effort",
  "reasoningWireValue": "high",
  "modelSupportsServiceTier": false,
  "tierOutcome": {
    "wireKind": null,
    "wireValue": null,
    "fastOutcome": "unknown",
    "confirmation": "unknown"
  },
  "status": 500,
  "durationMs": 293,
  "errorCode": "upstream_server_error",
  "closeReason": "non_stream",
  "upstreamError": "Provider error 500: {\"type\":\"error\",\"error\":{\"type\":\"error\",\"message\":\"Internal server error\"}}",
  "usageStatus": "unreported",
  "attempts": [
    {
      "ordinal": 1,
      "provider": "opencode-go",
      "model": "muse-spark-1.3-contributor",
      "adapter": "openai-chat",
      "status": 500,
      "durationMs": 283,
      "sendCount": 1,
      "recoveryKinds": [],
      "usageStatus": "unreported",
      "requestedEffort": "high",
      "effectiveEffort": "high",
      "reasoningWireField": "reasoning_effort",
      "reasoningWireValue": "high",
      "tierOutcome": {
        "wireKind": null,
        "wireValue": null,
        "fastOutcome": "unknown",
        "confirmation": "unknown"
      },
      "errorCode": "upstream_server_error",
      "displayMetrics": {
        "tokPerSecond": {
          "kind": "unavailable",
          "reason": "usage_missing"
        },
        "cost": {
          "kind": "unavailable",
          "reason": "usage_missing"
        }
      }
    }
  ],
  "routeDecision": {
    "version": 1,
    "decisionId": "e7beede40ff6",
    "createdAt": 1788494695773,
    "requestedModel": "opencode-go/muse-spark-1.3-contributor",
    "routeKind": "explicit-provider",
    "requirements": [],
    "candidates": [
      {
        "provider": "opencode-go",
        "model": "muse-spark-1.3-contributor",
        "eligible": true,
        "exclusions": []
      }
    ],
    "selected": {
      "candidateIndex": 0,
      "provider": "opencode-go",
      "model": "muse-spark-1.3-contributor",
      "reason": "explicit-provider-namespace"
    }
  },
  "displayMetrics": {
    "tokPerSecond": {
      "kind": "unavailable",
      "reason": "usage_missing"
    },
    "cost": {
      "kind": "unavailable",
      "reason": "combo_attempt_unavailable"
    }
  }
}

Screenshots and supporting files

No response

Redacted configuration

Checks

  • I searched existing issues and documentation.
  • I removed secrets, tokens, account details, request credentials, and personal data.

Activity

  1. added
    catalogModel catalog, slugs, visibility, routed entries
    serviceService lifecycle (WinSW/launchd/scheduler)
    on Sep 4, 2026
  2. lidge-jun commented on Sep 4, 2026

    @lidge-jun
    Owner

    리뷰 · 우선순위 48 / 80

    이 이슈는 Mac + Claude Code에서 opencode-go/muse-spark-1.3-contributor만 실패하고, 같은 OpenCode Go의 다른 모델은 되고, 다른 소프트웨어에서는 그 모델도 된다는 보고입니다. 재현으로 http_proxy/https_proxy를 127.0.0.1:1087에 켠 뒤 ocx service start를 했고, 보고 버전은 2.40입니다. 붙여 주신 진단 JSON이 핵심 증거입니다. 요청은 loopback Claude messages → 명시 네임스페이스 opencode-go/muse-spark-1.3-contributor로 갔고, 시도 한 번이 adapter: openai-chat 로 Zen에 붙어 약 283ms 만에 upstream 500 (Provider error 500: Internal server error)으로 끝났습니다. 즉 프록시 연결 자체가 타임아웃/거부된 모양이 아니라, 업스트림이 요청을 받은 뒤 서버 오류로 닫은 형태입니다.

    지금 dev HEAD(072df52eb, package 2.42.0)의 카탈로그를 기준으로 보면, src/providers/registry.ts의 opencode-go 항목은 제공자 기본 어댑터가 openai-chat(baseUrl https://opencode.ai/zen/go/v1)이지만, Muse Spark Contributor처럼 Zen Go가 Responses 엔드포인트로 문서화한 모델만 modelWireDefaults로 openai-responses를 붙입니다. 현재 HEAD에는 muse-spark-1.3-contributor와 muse-spark-1.2-contributor(그리고 gpt-5.6-luna)가 그 맵에 들어 있고, 1M 컨텍스트·text+image modality도 같이 선언되어 있습니다. 이 맵은 #2617 계열(1.2)과 #3317(1.3을 1.2와 같은 스펙으로 추가)로 맞춰졌습니다. 커밋 메시지에도 나와 있듯, 1.3만 Chat 기본값에 두면 /chat/completions로 가서 깨지고, 레지스트리 선언이 없으면 컨텍스트가 128k로 떨어지고 Codex 쪽이 이미지 첨부를 막아 버리는 회귀가 납니다.

    반대로 태그 v2.40.0의 같은 파일을 보면 opencode-go의 modelWireDefaults에는 gpt-5.6-luna와 muse-spark-1.2-contributor만 있고 muse-spark-1.3-contributor 줄이 없습니다. 그래서 보고 버전 2.40에서는 1.3 Contributor가 제공자 기본값인 openai-chat으로 떨어지고, 진단 JSON의 adapter: openai-chat 와 정확히 일치합니다. 같은 Go 제공자의 다른 모델(Chat wire가 맞는 것들)은 되고, Muse만 500이 나는 패턴과도 맞습니다. 다른 소프트웨어에서 되는 이유도, 그쪽이 Zen Go의 Responses 경로를 쓰거나 올바른 엔드포인트를 고르기 쉽기 때문입니다. 이 수정은 v2.41.0부터 들어가 있고, 현재 dev 2.42.0 HEAD에도 포함되어 있습니다.

    제목의 “프록시를 켜면 안 된다”는 상관관계일 가능성이 큽니다. ocx service start는 src/service.ts의 resolvedProxyEnv()로 셸의 HTTP(S)_PROXY를 launchd plist에 심습니다. 아웃바운드는 src/lib/provider-outbound.ts가 Bun 프록시/NO_PROXY를 보존한 채 나갑니다. 그런데 로그는 DNS/프록시 핀 실패가 아니라 업스트림 500 본문이고, 본문도 “다른 Go 모델은 OK, Muse만 NG”입니다. 프록시 자체가 Muse만 골라 깨뜨린다기보다, 2.40 + Chat wire로 Muse 1.3을 친 결과로 읽는 편이 증거와 잘 맞습니다. 최근 dev 방향(#3423 메인 카드 뱃지, #3418 Integrations 복원, astra 정렬)과는 별 트랙이고, types.ts/config.ts 스플릿 close-don't-rebase 대상도 아닙니다. 참고로 Muse Go 경로의 다른 열린 이슈로 #3402(undeclared default.apply_patch), #3378(Go wire contract)이 있지만, 이번 500/Chat-adapter 증상과는 원인이 다릅니다.

    진단 JSON attempts[0].adapter - 2.40에서 1.3이 Chat으로 떨어진 증거 (HEAD의 modelWireDefaults와 불일치)
    src/providers/registry.ts modelWireDefaults (opencode-go) - HEAD는 1.3→openai-responses, v2.40.0은 1.3 줄 없음 (#3317)
    src/providers/registry.ts modelContextWindows / modelInputModalities - 1.3 Contributor 1M·vision 선언도 #3317과 함께 옴
    재현 버전 2.40 - 이미 고쳐진 빌드를 쓰는 중; 프록시 env는 service start에 심히지만 이번 500의 주원인으로 보기 어려움
    관련 #3402 / #3378 - Muse·Go 호환 백로그이나 이번 Chat→500과는 별개로 유지

    메인테이너의 판단이 필요한 지점

    • 보고자에게 2.41.0 이상(또는 현재 2.42.0)으로 올린 뒤 같은 프록시 on/off로 재현이 사라지는지 한 번만 확인할지
    • 업그레이드 후에도 500이면 config의 명시적 modelAdapters가 Chat으로 고정했는지, Zen 측 장애인지 가를지
    • 확인되면 이슈를 feat(models): add Muse Spark 1.3 on the 1.2 spec #3317 landed / version-upgrade로 닫을지, 아니면 needs-info로 남길지

    너의 추천
    코드 추가 PR은 지금 필요 없음. 보고자에게 ≥2.41.0(권장: 현재 2.42.0 / dev 072df52eb) 로 올린 뒤 같은 Claude Code → opencode-go/muse-spark-1.3-contributor 시도를 해 달라고 하고, 새 진단 JSON에서 adapter가 openai-responses인지 확인. 그때 성공하면 이 이슈는 #3317로 해결된 것으로 close. 실패하면 redacted config의 modelAdapters/providers.opencode-go와 프록시 on·off 두 로그를 받은 뒤 #3402와 겹치는지 재분류. 프록시 전용 버그로 새 트레인 열지 말 것.

    이 댓글은 grok-bot이 작성했습니다

  3. Tao-Yida commented on Sep 4, 2026

    @Tao-Yida

    OpenCode Go(muse-spark-1.3-contributor) (以及muse 1.2)的请求和其它模型走的端点不一样,/v1/responses和/chat/completion 无法互通。Opencode的repo有很多相关issue,应该和opencodex没有关系

  4. lidge-jun commented on Sep 4, 2026

    @lidge-jun
    Owner

    Reviewed during the 260904 backlog review. Thanks @Tao-Yida — your reading matches the code, and I want to add what changed since this was filed.

    The log confirms the shape: provider: opencode-go, adapter: openai-chat, upstream 500 Internal server error in 283ms with sendCount: 1. The registry row at src/providers/registry.ts:1572 is adapter: "openai-chat" against https://opencode.ai/zen/go/v1, so requests for this model go out as Chat Completions. If the upstream serves muse-spark-1.3-contributor only on its Responses endpoint, a Chat request returning 500 is exactly what you would see, and it is not something the client can work around by configuration.

    Two things landed today that bear on this. #3405 fixed two wire-contract defects on this same provider (merged to dev as 20011a1c): opencode-go requests now carry a stable x-opencode-session header, and the Muse sanitizer drops indexed_web_access alongside search_content_types for plain web_search on Spark models. Separately, #3394 is an open PR routing OpenCode Go's grok-4.6 specifically through Responses rather than Chat — the same class of per-model routing this issue needs, which suggests the mechanism for a fix already exists.

    Two questions before I change anything:

    1. Does it still fail on 2.42.x or later? You filed against 2.40, and the session-header fix in fix(opencode-go): satisfy provider wire contract #3405 is a plausible cause for an upstream 500 on this provider — worth ruling out before adding a routing exception.
    2. Is the endpoint difference confirmed from OpenCode Go's side, or inferred from the failure? If you have an issue link from their repo stating that Muse Spark 1.2/1.3 is Responses-only there, that would settle whether the fix is a per-model Responses route (like fix(opencode-go): support Grok 4.6 Responses #3394 does for grok-4.6) or something else entirely.

    One correction, gently: "应该和opencodex没有关系" — if the upstream serves this model only on Responses and OpenCodex sends Chat, that is ours to fix. Routing a model to the endpoint its provider actually serves is the proxy's job. The upstream 500 is their error message, but choosing the wrong endpoint would be our defect.

    Labeling needs-info pending the re-test on current.

  5. added
    needs-infoWaiting on reporter for a concrete spec or reproduction
    on Sep 4, 2026
  6. lidge-jun commented on Sep 5, 2026

    @lidge-jun
    Owner

    Closing as fixed on dev.

    The routing defect this report describes — opencode-go/muse-spark-1.3-contributor leaving the proxy as a Chat Completions request against https://opencode.ai/zen/go/v1 and being answered with an upstream 500 — is already resolved by #3317 (878f75417, merged 2026-09-03). That change registers "muse-spark-1.3-contributor": "openai-responses" in the OpenCode Go modelWireDefaults (src/providers/registry.ts:1629 on current dev 445742966), so the model is sent to the Responses endpoint from every inbound surface, matching @Tao-Yida's reading of the OpenCode side. The 1.2 Contributor row had the same default already. It is pinned by tests/providers/muse-spark-web-search-compat.test.ts, which asserts both Contributor models resolve to openai-responses.

    An explicit providers.opencode-go.modelAdapters entry in your config would override that default; if you still see a 500 on 2.43.0 or later with the request log showing adapter: openai-responses, please open a fresh report with that redacted log line and it will be looked at separately.

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

    bugSomething isn't workingcatalogModel catalog, slugs, visibility, routed entriesneeds-infoWaiting on reporter for a concrete spec or reproductionserviceService lifecycle (WinSW/launchd/scheduler)

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions