Skip to content

[Bug] opencode-go provider silently returns empty response / hangs on machines with broken IPv6 connectivity #40095

Closed as not planned

Description

@banemeng

Description

opencode 1.18.11 中使用内置 opencode-go provider(OpenCode Zen Go,https://opencode.ai/zen/go/v1)时:

  • TUI 发送消息后无任何输出、无报错,会话一直无响应
  • opencode run --model opencode-go/deepseek-v4-flash "hi" → 只打印 > build · deepseek-v4-flash 头,exit 0,无内容输出
  • 同机器上内置 deepseek provider 正常工作

Environment

  • opencode 1.18.11(官方二进制,SHA 已验证)
  • Debian 12 / Ubuntu,x86_64
  • Network: machine has an IPv6 address, but the IPv6 route to Cloudflare (opencode.ai) is broken (IPv6 direct connection fails)

Debug findings

  1. Direct curl / node fetch calls to https://opencode.ai/zen/go/v1/chat/completions → all work fine (curl has happy-eyeballs and falls back to IPv4)
  2. Request capture confirms opencode sends correct params (model, key)
  3. Key difference found: opencode's bundled bun fetch resolves the DNS to IPv6 and connects over IPv6, but on this machine IPv6 to Cloudflare is unreachable → connection established but stream data never arrives → empty output / hang
  4. The same opencode works perfectly on another machine without IPv6 (phone Termux environment)

Verification
After disabling IPv6 system-wide (net.ipv6.conf.all.disable_ipv6=1), native opencode-go immediately works again — all models reply correctly.

Root cause
opencode's bundled runtime (bun fetch) has no happy-eyeballs / IPv4 fallback: when IPv6 is unavailable, it waits forever instead of falling back to IPv4.

Suggested fix
Implement happy-eyeballs (RFC 6555) dual-stack fallback in the bundled runtime: if the IPv6 connection fails or stalls, automatically fall back to IPv4 instead of waiting indefinitely.

Plugins

none

OpenCode version

1.18.11

Steps to reproduce

  1. Configure opencode-go provider in auth.json with a valid API key
  2. Ensure the machine has an IPv6 address but broken IPv6 connectivity to Cloudflare (e.g. home broadband with unreachable IPv6 route)
  3. Run opencode run --model opencode-go/deepseek-v4-flash "hi" → prints only the > build header, exits 0 with no output
  4. Control: opencode run --model deepseek/deepseek-v4-flash "hi" works fine

Screenshot and/or share link

No response

Operating System

debian12

Terminal

bash

Activity

  1. github-actions commented on Aug 1, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    If your issue is the same, please add a reaction or comment there instead to help consolidate the discussion.

  2. github-actions commented on Oct 1, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions