Repository navigation
这个模型没有办法使用,如果开启代理,就无法使用. #3424
Description
Activity
- addedcatalogModel catalog, slugs, visibility, routed entriesModel catalog, slugs, visibility, routed entriesserviceService lifecycle (WinSW/launchd/scheduler)Service lifecycle (WinSW/launchd/scheduler)
on Sep 4, 2026 리뷰 · 우선순위 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 Claudemessages→ 명시 네임스페이스opencode-go/muse-spark-1.3-contributor로 갔고, 시도 한 번이adapter: openai-chat로 Zen에 붙어 약 283ms 만에 upstream 500 (Provider error 500: Internal server error)으로 끝났습니다. 즉 프록시 연결 자체가 타임아웃/거부된 모양이 아니라, 업스트림이 요청을 받은 뒤 서버 오류로 닫은 형태입니다.지금
devHEAD(072df52eb, package 2.42.0)의 카탈로그를 기준으로 보면,src/providers/registry.ts의opencode-go항목은 제공자 기본 어댑터가openai-chat(baseUrlhttps://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부터 들어가 있고, 현재dev2.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(undeclareddefault.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 /dev072df52eb) 로 올린 뒤 같은 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이 작성했습니다
OpenCode Go(muse-spark-1.3-contributor) (以及muse 1.2)的请求和其它模型走的端点不一样,/v1/responses和/chat/completion 无法互通。Opencode的repo有很多相关issue,应该和opencodex没有关系
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, upstream500 Internal server errorin 283ms withsendCount: 1. The registry row atsrc/providers/registry.ts:1572isadapter: "openai-chat"againsthttps://opencode.ai/zen/go/v1, so requests for this model go out as Chat Completions. If the upstream servesmuse-spark-1.3-contributoronly 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
devas20011a1c):opencode-gorequests now carry a stablex-opencode-sessionheader, and the Muse sanitizer dropsindexed_web_accessalongsidesearch_content_typesfor plainweb_searchon Spark models. Separately, #3394 is an open PR routing OpenCode Go'sgrok-4.6specifically 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:
- 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.
- 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-infopending the re-test on current.- addedneeds-infoWaiting on reporter for a concrete spec or reproductionWaiting on reporter for a concrete spec or reproduction
on Sep 4, 2026 Closing as fixed on
dev.The routing defect this report describes —
opencode-go/muse-spark-1.3-contributorleaving the proxy as a Chat Completions request againsthttps://opencode.ai/zen/go/v1and 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 GomodelWireDefaults(src/providers/registry.ts:1629on currentdev445742966), 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 bytests/providers/muse-spark-web-search-compat.test.ts, which asserts both Contributor models resolve toopenai-responses.An explicit
providers.opencode-go.modelAdaptersentry in your config would override that default; if you still see a 500 on 2.43.0 or later with the request log showingadapter: openai-responses, please open a fresh report with that redacted log line and it will be looked at separately.
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