为什么新版 codexapp 在回复前总是执行 5 次 Reconnecting... 才开始回答,之前旧的版本就不会

Resolved 💬 52 comments Opened Mar 11, 2026 by yaowenlei-go Closed Mar 11, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What version of the Codex App are you using (From “About Codex” dialog)?

26.305.950 (863)

What subscription do you have?

no

What platform is your computer?

mocos arm

What issue are you seeing?

<img width="770" height="199" alt="Image" src="https://github.com/user-attachments/assets/59852390-56e2-48cf-b599-2d19e0f6f509" />

What steps can reproduce the bug?

直接使用

What is the expected behavior?

_No response_

Additional information

_No response_

View original on GitHub ↗

52 Comments

github-actions[bot] contributor · 4 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #14209
  • #14260
  • #13725
  • #13519

Powered by Codex Action

Sheng-Charles · 4 months ago

same here, this always happens during the first conversation.
<img width="421" height="584" alt="Image" src="https://github.com/user-attachments/assets/a6098779-ea88-49e9-b588-330d5c20c800" />

wulidede · 4 months ago

<img width="247" height="306" alt="Image" src="https://github.com/user-attachments/assets/b2e3fcec-73aa-4ef5-bae1-c7e3dc6c1ee1" />

same here

wulidede · 4 months ago
same here, this always happens during the first conversation. <img alt="Image" width="421" height="584" src="https://private-user-images.githubusercontent.com/58870851/561904680-a6098779-ea88-49e9-b588-330d5c20c800.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzMyODAyNzUsIm5iZiI6MTc3MzI3OTk3NSwicGF0aCI6Ii81ODg3MDg1MS81NjE5MDQ2ODAtYTYwOTg3NzktZWE4OC00OWU5LWI1ODgtMzMwZDVjMjBjODAwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzEyVDAxNDYxNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk0YzcxNzkyODQ0MGY0MjMyNmYwOWYxYjEwMTQ2OTZiMDVlNmE1ODg5MmMxMTUyMmEyNjgwMzk2NzFkODk3M2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.bedbUmNDbu6rgVGwrhsrQHyKRwUGPlG6AyAs_rUUzmM">

请问你解决了吗

userlillk · 4 months ago

俺也一样

<img width="1276" height="251" alt="Image" src="https://github.com/user-attachments/assets/969aed6b-96b7-4c09-90f7-e71804ec9eaf" />

zmy-seu · 4 months ago

我也是,而且我在vscode插件中发消息,直接报错“开启对话时出错”;在cli中,会reconnecting五次

stillkernel · 4 months ago

我也是,节点似乎没发现问题

zmy-seu · 4 months ago
我也是,节点似乎没发现问题

我不知道为什么就自己好了哈哈哈,不管是插件、cli还是app,都完全没问题了

C-a-r-r-y · 3 months ago

+1

hikki1998 · 3 months ago

@zmy-seu 老哥咋解决的? 我还是这个情况

seablue2020 · 3 months ago

我也是,蹲一个好心人

zmy-seu · 3 months ago
@zmy-seu 老哥咋解决的? 我还是这个情况

我开香槟开早了,问题恢复了,哈哈哈

stillkernel · 3 months ago

codex.app端走的可能是终端的代理。试着从命令行启动。

hikki1998 · 3 months ago

Cli也有这个症状🥹

---- 回复的原邮件 ----
| 发件人 | @.*> |
| 发送日期 | 2026年03月27日 18:49 |
| 收件人 | openai/codex
@.*> |
| 抄送人 | 大白白 @.*>,
Comment
@.*> |
| 主题 | Re: [openai/codex] 为什么新版 codexapp 在回复前总是执行 5 次 Reconnecting... 才开始回答,之前旧的版本就不会 (Issue #14297) |
lomoyi left a comment (openai/codex#14297)

codex.app端走的可能是终端的代理。试着从命令行启动。


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>

tkchips · 3 months ago

@lomoyi @Sheng-Charles @C-a-r-r-y @hikki1998

简单粗糙的解法:
在 ~/.codex/config.toml中加入以下几行:

``` toml
model_provider = "openai_http"

[model_providers.openai_http]
name = "OpenAI HTTP only"
wire_api = "responses"
supports_websockets = false


**ps** : model_provider="openai_http"要放在配置文件开头,保证层级在最外侧,其余部分放在最后即可

**pps** : 我在codex vscode插件中验证有效,但是在**26.5325.21211**的版本中,会有一些预料之外的副作用: 如图,上面的方法会导致中间的的 **select reasoning effort** 选项消失

<img width="458" height="80" alt="Image" src="https://github.com/user-attachments/assets/d802c3d4-a158-41c1-9ea5-29818f7b3ba1" />  

**ppps** : 原因: 默认是使用websocket协议,在websocket重连等待五次(并且每次的超时时间足足有20s)之后才会切换到可以正常通信的HTTP协议,至于websocket协议为什么不通,可能是**代理不支持**websocket协议;

**pppps**: 代理使用**TUN**模式可以websocket直接访问;

``` log
2026-03-25T17:36:55.024290Z  INFO session_loop{ ...  model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: new
2026-03-25T17:36:55.024450Z  INFO session_loop{ ...  model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new
2026-03-25T17:37:16.154181Z  INFO session_loop{ ...  model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=16.2ms time.idle=21.1s
2026-03-25T17:37:16.154242Z  INFO session_loop{ ...  model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: close time.busy=16.5ms time.idle=21.1s

2026-03-25T17:37:16.154263Z  WARN session_loop{ ...  model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (1/5 in 207ms)...

2026-03-25T17:37:37.457304Z  WARN session_loop{ ...  model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (2/5 in 376ms)...

2026-03-25T17:37:58.883401Z  WARN session_loop{ ...  model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (3/5 in 845ms)...

2026-03-25T17:38:20.787056Z  WARN session_loop{ ...  model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (4/5 in 1.679s)...

2026-03-25T17:38:43.525159Z  WARN session_loop{ ...  model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (5/5 in 3.428s)...

2026-03-25T17:39:08.043164Z  WARN session_loop{ ...  model=gpt-5.4}: codex_core::client: falling back to HTTP

2026-03-25T17:39:08.043236Z  INFO session_loop{ ...  model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new
2026-03-25T17:39:10.673175Z  INFO session_loop{ ...  model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=6.20ms time.idle=2.62s
hikki1998 · 3 months ago

谢谢,明早试试

---- 回复的原邮件 ----
| 发件人 | @.*> |
| 发送日期 | 2026年03月27日 23:58 |
| 收件人 | openai/codex
@.*> |
| 抄送人 | 大白白 @.*>,
Mention
@.*> |
| 主题 | Re: [openai/codex] 为什么新版 codexapp 在回复前总是执行 5 次 Reconnecting... 才开始回答,之前旧的版本就不会 (Issue #14297) |
tkchips left a comment (openai/codex#14297)

@@.@@.

简单粗糙的解法:
在 ~/.codex/config.toml中加入以下几行:

model_provider = "openai_http"

[model_providers.openai_http]
name = "OpenAI HTTP only"wire_api = "responses"supports_websockets = false

ps : model_provider="openai_http"要放在配置文件开头,保证层级在最外侧,其余部分放在最后即可

pps : 我在codex vscode插件中验证有效,但是在26.5325.21211的版本中,会有一些预料之外的副作用: 如图,上面的方法会导致中间的的 select reasoning effort 选项消失

image.png (view on web)

ppps : 原因: 默认是使用websocket协议,在websocket重连等待五次(并且每次的超时时间足足有20s)之后才会切换到可以正常通信的HTTP协议,至于websocket协议为什么不通,可能是代理不支持websocket协议;

pppps: 代理使用TUN模式可以websocket直接访问;

2026-03-25T17:36:55.024290Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: new
2026-03-25T17:36:55.024450Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new
2026-03-25T17:37:16.154181Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=16.2ms time.idle=21.1s
2026-03-25T17:37:16.154242Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: close time.busy=16.5ms time.idle=21.1s

2026-03-25T17:37:16.154263Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (1/5 in 207ms)...

2026-03-25T17:37:37.457304Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (2/5 in 376ms)...

2026-03-25T17:37:58.883401Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (3/5 in 845ms)...

2026-03-25T17:38:20.787056Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (4/5 in 1.679s)...

2026-03-25T17:38:43.525159Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (5/5 in 3.428s)...

2026-03-25T17:39:08.043164Z WARN session_loop{ ... model=gpt-5.4}: codex_core::client: falling back to HTTP

2026-03-25T17:39:08.043236Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new
2026-03-25T17:39:10.673175Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=6.20ms time.idle=2.62s


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

Bulua · 3 months ago
@lomoyi @Sheng-Charles @C-a-r-r-y @hikki1998 简单粗糙的解法: 在 ~/.codex/config.toml中加入以下几行: model_provider = "openai_http" [model_providers.openai_http] name = "OpenAI HTTP only" wire_api = "responses" supports_websockets = false ps : model_provider="openai_http"要放在配置文件开头,保证层级在最外侧,其余部分放在最后即可 pps : 我在codex vscode插件中验证有效,但是在26.5325.21211的版本中,会有一些预料之外的副作用: 如图,上面的方法会导致中间的的 select reasoning effort 选项消失 <img alt="Image" width="458" height="80" src="https://private-user-images.githubusercontent.com/78489325/570500586-d802c3d4-a158-41c1-9ea5-29818f7b3ba1.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ4MzY4NzcsIm5iZiI6MTc3NDgzNjU3NywicGF0aCI6Ii83ODQ4OTMyNS81NzA1MDA1ODYtZDgwMmMzZDQtYTE1OC00MWMxLTllYTUtMjk4MThmN2IzYmExLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMzAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzMwVDAyMDkzN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTYzNTA2ZWQ2YjVhNjY5ZWNhYmQ2ZmJmZjEwZDAwNjkzYmVhYzY3NjI5Y2QxNWY5OTZmZDNmZGE4M2EwYjRlNDAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.1hjX4_dntsqr9duT3kNkAq1TnZ3yHPMqMDew8DzBYZo"> ppps : 原因: 默认是使用websocket协议,在websocket重连等待五次(并且每次的超时时间足足有20s)之后才会切换到可以正常通信的HTTP协议,至于websocket协议为什么不通,可能是代理不支持websocket协议; pppps: 代理使用TUN模式可以websocket直接访问; `` 2026-03-25T17:36:55.024290Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: new 2026-03-25T17:36:55.024450Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:37:16.154181Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=16.2ms time.idle=21.1s 2026-03-25T17:37:16.154242Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: close time.busy=16.5ms time.idle=21.1s 2026-03-25T17:37:16.154263Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (1/5 in 207ms)... 2026-03-25T17:37:37.457304Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (2/5 in 376ms)... 2026-03-25T17:37:58.883401Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (3/5 in 845ms)... 2026-03-25T17:38:20.787056Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (4/5 in 1.679s)... 2026-03-25T17:38:43.525159Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (5/5 in 3.428s)... 2026-03-25T17:39:08.043164Z WARN session_loop{ ... model=gpt-5.4}: codex_core::client: falling back to HTTP 2026-03-25T17:39:08.043236Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:39:10.673175Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=6.20ms time.idle=2.62s ``

成功解决了问题

7Kamma · 3 months ago

Nice~切tun后就好了。还是因为代理问题。

huhaobeiqwq · 3 months ago

https://linux.do/t/topic/1707720我找的这个也可以解决

zuiztster-max · 3 months ago

我也根据这个方法解决了,感谢

@lomoyi @Sheng-Charles @C-a-r-r-y @hikki1998 简单粗糙的解法: 在 ~/.codex/config.toml中加入以下几行: model_provider = "openai_http" [model_providers.openai_http] name = "OpenAI HTTP only" wire_api = "responses" supports_websockets = false ps : model_provider="openai_http"要放在配置文件开头,保证层级在最外侧,其余部分放在最后即可 pps : 我在codex vscode插件中验证有效,但是在26.5325.21211的版本中,会有一些预料之外的副作用: 如图,上面的方法会导致中间的的 select reasoning effort 选项消失 <img alt="Image" width="458" height="80" src="https://private-user-images.githubusercontent.com/78489325/570500586-d802c3d4-a158-41c1-9ea5-29818f7b3ba1.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUzNTM2MzIsIm5iZiI6MTc3NTM1MzMzMiwicGF0aCI6Ii83ODQ4OTMyNS81NzA1MDA1ODYtZDgwMmMzZDQtYTE1OC00MWMxLTllYTUtMjk4MThmN2IzYmExLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA1VDAxNDIxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBiODRmYTMwN2ZjZmRmZjhiMzNjMDU1NjllZGZkYWI0YTgzMGRlMTQ3ZTcxZTljNjAwNmM3ZTllYzgzYWQ0OGMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.kkBUnSqJO4k1FdQ5fAQSQZyNFZHYXSLq8W2ClHbllkg"> ppps : 原因: 默认是使用websocket协议,在websocket重连等待五次(并且每次的超时时间足足有20s)之后才会切换到可以正常通信的HTTP协议,至于websocket协议为什么不通,可能是代理不支持websocket协议; pppps: 代理使用TUN模式可以websocket直接访问; `` 2026-03-25T17:36:55.024290Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: new 2026-03-25T17:36:55.024450Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:37:16.154181Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=16.2ms time.idle=21.1s 2026-03-25T17:37:16.154242Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: close time.busy=16.5ms time.idle=21.1s 2026-03-25T17:37:16.154263Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (1/5 in 207ms)... 2026-03-25T17:37:37.457304Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (2/5 in 376ms)... 2026-03-25T17:37:58.883401Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (3/5 in 845ms)... 2026-03-25T17:38:20.787056Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (4/5 in 1.679s)... 2026-03-25T17:38:43.525159Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (5/5 in 3.428s)... 2026-03-25T17:39:08.043164Z WARN session_loop{ ... model=gpt-5.4}: codex_core::client: falling back to HTTP 2026-03-25T17:39:08.043236Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:39:10.673175Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=6.20ms time.idle=2.62s ``
Night-blue-rain · 3 months ago

我成功解决了,感谢!!!

@lomoyi @Sheng-Charles @C-a-r-r-y @hikki1998 简单粗糙的解法: 在 ~/.codex/config.toml中加入以下几行: model_provider = "openai_http" [model_providers.openai_http] name = "OpenAI HTTP only" wire_api = "responses" supports_websockets = false ps : model_provider="openai_http"要放在配置文件开头,保证层级在最外侧,其余部分放在最后即可 pps : 我在codex vscode插件中验证有效,但是在26.5325.21211的版本中,会有一些预料之外的副作用: 如图,上面的方法会导致中间的的 select reasoning effort 选项消失 <img alt="Image" width="458" height="80" src="https://private-user-images.githubusercontent.com/78489325/570500586-d802c3d4-a158-41c1-9ea5-29818f7b3ba1.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU2Mzk5OTksIm5iZiI6MTc3NTYzOTY5OSwicGF0aCI6Ii83ODQ4OTMyNS81NzA1MDA1ODYtZDgwMmMzZDQtYTE1OC00MWMxLTllYTUtMjk4MThmN2IzYmExLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA4VDA5MTQ1OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZiOWJiNTE5OTUwOWU5NTZkYTIzYzIyYjYxY2E5NzM0ZWM3NTc0ZTQzMDVkZjQ5Y2Q2ZThmYzk0OWExOTMwNTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.MpdW61lGuDGJ72FQKRtgQ2tpq2kgjWJZ92clXG60nDc"> ppps : 原因: 默认是使用websocket协议,在websocket重连等待五次(并且每次的超时时间足足有20s)之后才会切换到可以正常通信的HTTP协议,至于websocket协议为什么不通,可能是代理不支持websocket协议; pppps: 代理使用TUN模式可以websocket直接访问; `` 2026-03-25T17:36:55.024290Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: new 2026-03-25T17:36:55.024450Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:37:16.154181Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=16.2ms time.idle=21.1s 2026-03-25T17:37:16.154242Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: close time.busy=16.5ms time.idle=21.1s 2026-03-25T17:37:16.154263Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (1/5 in 207ms)... 2026-03-25T17:37:37.457304Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (2/5 in 376ms)... 2026-03-25T17:37:58.883401Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (3/5 in 845ms)... 2026-03-25T17:38:20.787056Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (4/5 in 1.679s)... 2026-03-25T17:38:43.525159Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (5/5 in 3.428s)... 2026-03-25T17:39:08.043164Z WARN session_loop{ ... model=gpt-5.4}: codex_core::client: falling back to HTTP 2026-03-25T17:39:08.043236Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:39:10.673175Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=6.20ms time.idle=2.62s ``
paulthe13 · 3 months ago
@lomoyi @Sheng-Charles @C-a-r-r-y @hikki1998 简单粗糙的解法: 在 ~/.codex/config.toml中加入以下几行: model_provider = "openai_http" [model_providers.openai_http] name = "OpenAI HTTP only" wire_api = "responses" supports_websockets = false ps : model_provider="openai_http"要放在配置文件开头,保证层级在最外侧,其余部分放在最后即可 pps : 我在codex vscode插件中验证有效,但是在26.5325.21211的版本中,会有一些预料之外的副作用: 如图,上面的方法会导致中间的的 select reasoning effort 选项消失

感谢,亲测有效!

YiBangRe · 3 months ago
@lomoyi @Sheng-Charles @C-a-r-r-y @hikki1998 简单粗糙的解法: 在 ~/.codex/config.toml中加入以下几行: model_provider = "openai_http" [model_providers.openai_http] name = "OpenAI HTTP only" wire_api = "responses" supports_websockets = false ps : model_provider="openai_http"要放在配置文件开头,保证层级在最外侧,其余部分放在最后即可 pps : 我在codex vscode插件中验证有效,但是在26.5325.21211的版本中,会有一些预料之外的副作用: 如图,上面的方法会导致中间的的 select reasoning effort 选项消失 <img alt="Image" width="458" height="80" src="https://private-user-images.githubusercontent.com/78489325/570500586-d802c3d4-a158-41c1-9ea5-29818f7b3ba1.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU5MjkzNDYsIm5iZiI6MTc3NTkyOTA0NiwicGF0aCI6Ii83ODQ4OTMyNS81NzA1MDA1ODYtZDgwMmMzZDQtYTE1OC00MWMxLTllYTUtMjk4MThmN2IzYmExLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDExVDE3MzcyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUxZTMwODFmMWIwMGE2YmIwMjcwMzQ4YjdjN2RkYmJlNDY1MDJhMTNjOGVkMzE1MjAwYjUyYWQ4NzI3OGJlNWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.8BNj2wCaS0ntTTMfFWhDDU52ddPKvSBfnEIKS9wDbOM"> ppps : 原因: 默认是使用websocket协议,在websocket重连等待五次(并且每次的超时时间足足有20s)之后才会切换到可以正常通信的HTTP协议,至于websocket协议为什么不通,可能是代理不支持websocket协议; pppps: 代理使用TUN模式可以websocket直接访问; `` 2026-03-25T17:36:55.024290Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: new 2026-03-25T17:36:55.024450Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:37:16.154181Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=16.2ms time.idle=21.1s 2026-03-25T17:37:16.154242Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: close time.busy=16.5ms time.idle=21.1s 2026-03-25T17:37:16.154263Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (1/5 in 207ms)... 2026-03-25T17:37:37.457304Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (2/5 in 376ms)... 2026-03-25T17:37:58.883401Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (3/5 in 845ms)... 2026-03-25T17:38:20.787056Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (4/5 in 1.679s)... 2026-03-25T17:38:43.525159Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (5/5 in 3.428s)... 2026-03-25T17:39:08.043164Z WARN session_loop{ ... model=gpt-5.4}: codex_core::client: falling back to HTTP 2026-03-25T17:39:08.043236Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:39:10.673175Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=6.20ms time.idle=2.62s ``

开了TUN模式就好了!

zhiqingchen · 3 months ago

解决不展示剩余额度等信息的问题,需要添加 requires_openai_auth = true
另外“线程” 是根据model_provider 进行过滤的,model_provider 更改后会导致旧的线程不展示

model_provider = "openai_https"

[model_providers.openai_https]
name = "OpenAI"
requires_openai_auth = true
supports_websockets = false
robotJie · 3 months ago

有没有开TUN也不work的...

sberry007 · 3 months ago
@lomoyi @Sheng-Charles @C-a-r-r-y @hikki1998 简单粗糙的解法: 在 ~/.codex/config.toml中加入以下几行: model_provider = "openai_http" [model_providers.openai_http] name = "OpenAI HTTP only" wire_api = "responses" supports_websockets = false ps : model_provider="openai_http"要放在配置文件开头,保证层级在最外侧,其余部分放在最后即可 pps : 我在codex vscode插件中验证有效,但是在26.5325.21211的版本中,会有一些预料之外的副作用: 如图,上面的方法会导致中间的的 select reasoning effort 选项消失 <img alt="Image" width="458" height="80" src="https://private-user-images.githubusercontent.com/78489325/570500586-d802c3d4-a158-41c1-9ea5-29818f7b3ba1.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzYzODk5ODAsIm5iZiI6MTc3NjM4OTY4MCwicGF0aCI6Ii83ODQ4OTMyNS81NzA1MDA1ODYtZDgwMmMzZDQtYTE1OC00MWMxLTllYTUtMjk4MThmN2IzYmExLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDE3VDAxMzQ0MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWVhZmQzZTdlNzYyMjE4NzRhMDVhOTNkZTg4MjM5MGViNDU2MzcyNzZiMmI2ZTVjYTEzYzE2Mjk1ZDkzYzRkMTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.g5qF--1mfZWH_2hphKXQuq2KtaxjwFlqgoR4WKRZOqM"> ppps : 原因: 默认是使用websocket协议,在websocket重连等待五次(并且每次的超时时间足足有20s)之后才会切换到可以正常通信的HTTP协议,至于websocket协议为什么不通,可能是代理不支持websocket协议; pppps: 代理使用TUN模式可以websocket直接访问; `` 2026-03-25T17:36:55.024290Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: new 2026-03-25T17:36:55.024450Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:37:16.154181Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=16.2ms time.idle=21.1s 2026-03-25T17:37:16.154242Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: close time.busy=16.5ms time.idle=21.1s 2026-03-25T17:37:16.154263Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (1/5 in 207ms)... 2026-03-25T17:37:37.457304Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (2/5 in 376ms)... 2026-03-25T17:37:58.883401Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (3/5 in 845ms)... 2026-03-25T17:38:20.787056Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (4/5 in 1.679s)... 2026-03-25T17:38:43.525159Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (5/5 in 3.428s)... 2026-03-25T17:39:08.043164Z WARN session_loop{ ... model=gpt-5.4}: codex_core::client: falling back to HTTP 2026-03-25T17:39:08.043236Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:39:10.673175Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=6.20ms time.idle=2.62s ``

感谢大佬已解决

dushaoshuai · 3 months ago

I hit what looks like the same problem on macOS: a new conversation would show Reconnecting... several times at the beginning and only start responding after those retries.

A workaround that consistently fixed it for me was to create ~/.codex/.env and set proxy environment variables there.

For example:

https_proxy=http://127.0.0.1:7892
http_proxy=http://127.0.0.1:7892
all_proxy=socks5://127.0.0.1:7892

or even just:

all_proxy=http://127.0.0.1:7892

After restarting Codex, the repeated Reconnecting... loop at the start of a conversation stopped for me.

This may not be the root cause for every report here, but it is a practical workaround worth testing, especially in environments where websocket / transport routing may be affected by local proxy settings.

yeebo3 · 3 months ago
@lomoyi @Sheng-Charles @C-a-r-r-y @hikki1998 简单粗糙的解法: 在 ~/.codex/config.toml中加入以下几行: model_provider = "openai_http" [model_providers.openai_http] name = "OpenAI HTTP only" wire_api = "responses" supports_websockets = false ps : model_provider="openai_http"要放在配置文件开头,保证层级在最外侧,其余部分放在最后即可 pps : 我在codex vscode插件中验证有效,但是在26.5325.21211的版本中,会有一些预料之外的副作用: 如图,上面的方法会导致中间的的 select reasoning effort 选项消失 <img alt="Image" width="458" height="80" src="https://private-user-images.githubusercontent.com/78489325/570500586-d802c3d4-a158-41c1-9ea5-29818f7b3ba1.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzY3MzEyNDYsIm5iZiI6MTc3NjczMDk0NiwicGF0aCI6Ii83ODQ4OTMyNS81NzA1MDA1ODYtZDgwMmMzZDQtYTE1OC00MWMxLTllYTUtMjk4MThmN2IzYmExLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MjElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDIxVDAwMjIyNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgzMmNmNjBmNWE3YjQzMTM5ODZmMTVlYWM1MTIxZDM0ZDQ1ZTliZTZmODE3NzIzNGU3ODQ1NGEwMmIyMDY2NGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.eaK0uxQboPVwj19hvOda1Zfo8FqtMoBgn91iVf1kPpg"> ppps : 原因: 默认是使用websocket协议,在websocket重连等待五次(并且每次的超时时间足足有20s)之后才会切换到可以正常通信的HTTP协议,至于websocket协议为什么不通,可能是代理不支持websocket协议; pppps: 代理使用TUN模式可以websocket直接访问; `` 2026-03-25T17:36:55.024290Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: new 2026-03-25T17:36:55.024450Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:37:16.154181Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=16.2ms time.idle=21.1s 2026-03-25T17:37:16.154242Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: close time.busy=16.5ms time.idle=21.1s 2026-03-25T17:37:16.154263Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (1/5 in 207ms)... 2026-03-25T17:37:37.457304Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (2/5 in 376ms)... 2026-03-25T17:37:58.883401Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (3/5 in 845ms)... 2026-03-25T17:38:20.787056Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (4/5 in 1.679s)... 2026-03-25T17:38:43.525159Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (5/5 in 3.428s)... 2026-03-25T17:39:08.043164Z WARN session_loop{ ... model=gpt-5.4}: codex_core::client: falling back to HTTP 2026-03-25T17:39:08.043236Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:39:10.673175Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=6.20ms time.idle=2.62s ``

解决,感谢

522485449 · 2 months ago

提供一个新思路:
我的也是开tun模式就好了,但是开tun模式很多其他软件也不能用了。
因此用了proxifier解决了。
强制让codex.exe;Codex.exe走v2rayN的socks5代理即可。
这样不用专门开tun模式,别的国内软件也能正常用了。

yangshulin-g · 2 months ago

<img width="2290" height="1638" alt="Image" src="https://github.com/user-attachments/assets/cd4c640d-dc13-4c09-9ff3-aaf55a0aff0f" />

可以尝试打开tun和把这个端口也打开,我的现在很流畅

aizela · 2 months ago

按照上边修改配置文件的方法改了之后,界面信息变了好多,不显示当前使用额度和刷新时间了..

<img width="908" height="264" alt="Image" src="https://github.com/user-attachments/assets/c0b86a2d-03ad-4ecb-8f5d-064fc3700183" />

SintonZZ · 2 months ago
<img alt="Image" width="2000" height="1431" src="https://private-user-images.githubusercontent.com/174770918/588046062-cd4c640d-dc13-4c09-9ff3-aaf55a0aff0f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Nzg2NTQyMjQsIm5iZiI6MTc3ODY1MzkyNCwicGF0aCI6Ii8xNzQ3NzA5MTgvNTg4MDQ2MDYyLWNkNGM2NDBkLWRjMTMtNGMwOS05ZmYzLWFhZjU1YTBhZmYwZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNTEzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDUxM1QwNjMyMDRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hM2E5NGY4NDBlODdmYzgwYTMwN2Q5ZTA2ZmE0OThiZDYxNzZlNjhiZmRhNzRkNmQxYTkwZGUxM2RhYjFlYjI5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.AvjMXMYJP0_ZH4uUItpC54cnecJYd9WI7D2ry7dYWbk"> 可以尝试打开tun和把这个端口也打开,我的现在很流畅

这个可行,改了后非常流畅

paulthe13 · 2 months ago
按照上边修改配置文件的方法改了之后,界面信息变了好多,不显示当前使用额度和刷新时间了..

这方法之前还好,现在不行了,更新之后副作用太多,bug满天飞了。
我现在连账户配置都显示不了,连不上,也无法log_out

<img width="616" height="637" alt="Image" src="https://github.com/user-attachments/assets/7a5c13a2-da86-4c66-a4b7-e9732a6ca439" />

<img width="613" height="231" alt="Image" src="https://github.com/user-attachments/assets/78b32612-dcb1-4a95-8db4-78f93036ad46" />

<img width="1365" height="490" alt="Image" src="https://github.com/user-attachments/assets/88c16696-58fb-4f48-9b62-37695eaa4fd7" />

benjojovip-bot · 2 months ago
> 按照上边修改配置文件的方法改了之后,界面信息变了好多,不显示当前使用额度和刷新时间了.. 这方法之前还好,现在不行了,更新之后副作用太多,bug满天飞了。 我现在连账户配置都显示不了,连不上,也无法log_out <img alt="Image" width="616" height="637" src="https://private-user-images.githubusercontent.com/175416482/591590295-7a5c13a2-da86-4c66-a4b7-e9732a6ca439.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Nzg3MzAxMzQsIm5iZiI6MTc3ODcyOTgzNCwicGF0aCI6Ii8xNzU0MTY0ODIvNTkxNTkwMjk1LTdhNWMxM2EyLWRhODYtNGM2Ni1hNGI3LWU5NzMyYTZjYTQzOS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNTE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDUxNFQwMzM3MTRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00NjJhYTIzNDQzMTQ4OTFmN2YzNWRkMTMwYzY1NWMzM2UwYTAzN2RjNmYxOWQ1OTljYTUxYjNhZDg3YTUwZjI0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.I24UDVti3ssxLLvm71MUOeWaCGSucas_fImtBq4rK1A"> <img alt="Image" width="613" height="231" src="https://private-user-images.githubusercontent.com/175416482/591590427-78b32612-dcb1-4a95-8db4-78f93036ad46.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Nzg3MzAxMzQsIm5iZiI6MTc3ODcyOTgzNCwicGF0aCI6Ii8xNzU0MTY0ODIvNTkxNTkwNDI3LTc4YjMyNjEyLWRjYjEtNGE5NS04ZGI0LTc4ZjkzMDM2YWQ0Ni5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNTE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDUxNFQwMzM3MTRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mYTJkZmExMDM2NTRkMjg4NDIyZGZjYTExNWVkZjVkNGNlZmVlMTYyMTM5MjdlNjg4MTIxY2M0ZDMyNzZiMzQwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.ZMLAhVytVvJ8TBZOhk-k84MJqWslXkeMaZHMGn9nHWU"> <img alt="Image" width="1365" height="490" src="https://private-user-images.githubusercontent.com/175416482/591590597-88c16696-58fb-4f48-9b62-37695eaa4fd7.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Nzg3MzAxMzQsIm5iZiI6MTc3ODcyOTgzNCwicGF0aCI6Ii8xNzU0MTY0ODIvNTkxNTkwNTk3LTg4YzE2Njk2LTU4ZmItNGY0OC05YjYyLTM3Njk1ZWFhNGZkNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNTE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDUxNFQwMzM3MTRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hNjVkZDQzYjYxZTE4NzFlZWIyMmJlMTVlYTIwNWY4Y2MzZWE1ZjVkNjVkNDM2YmE5MzU0ZmNmNDI2ZTcxNjYxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.gvk_CXF5GSqcs8Eqsd0T61LgXsz3DdAodXkoi2K9DVg">

我也是,持续关注下

Xueziq · 2 months ago

持续关注

kong876 · 2 months ago

持续关注

baalisgood · 2 months ago

我也碰到了,很奇怪,调用image2的复杂任务就是链接不上,文本任务反倒是秒回复。。。

yeebo3 · 1 month ago

修改codex配置文件(config.toml)不可取,会让app端bug满天飞。
可以在系统终端配置网络,无需选择tun模式或socks5
写入:
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
(7890切换为你自己vpn的端口)
这时候在终端里打开codex cli就不会出reconnecting了,之后使用
codex app指令打开codexapp,就不会出现重连五次的情况了。

若是不想通过指令打开,ai提供了一种配置网络的方法,但我没有尝试。终端运行(mac系统):
launchctl setenv http_proxy http://127.0.0.1:7890
launchctl setenv https_proxy http://127.0.0.1:7890
launchctl setenv HTTP_PROXY http://127.0.0.1:7890
launchctl setenv HTTPS_PROXY http://127.0.0.1:7890

ChaoQiezi · 1 month ago

直接在%USERPROFILE%\.codex中创建文件名为.env的文本文件,写入:
HTTP_PROXY=http://127.0.0.1:7897
HTTPS_PROXY=http://127.0.0.1:7897

其中7897端口必须修改为你本地计算机代理的端口,代理软件或者windows系统设置均可查看得到(如不清楚可询问AI):

<img width="3011" height="1390" alt="Image" src="https://github.com/user-attachments/assets/982d48a9-24a8-403e-a3fe-eed368c89bde" />

这样可以确保Codex 显式走 HTTP 代理

Leon-Waston · 1 month ago

我是win11,今天凌晨试了我这边可以解决的方案
powershell:
[Environment]::SetEnvironmentVariable("http_proxy","http://127.0.0.1:10808","User")
[Environment]::SetEnvironmentVariable("https_proxy","http://127.0.0.1:10808","User")
注意:10808是本地监听端口,从代理软件设置中找到并改成你自己的
重启电脑重新打开codex再试一下

Liu-Jincan · 1 month ago
@lomoyi @Sheng-Charles @C-a-r-r-y @hikki1998 简单粗糙的解法: 在 ~/.codex/config.toml中加入以下几行: model_provider = "openai_http" [model_providers.openai_http] name = "OpenAI HTTP only" wire_api = "responses" supports_websockets = false ps : model_provider="openai_http"要放在配置文件开头,保证层级在最外侧,其余部分放在最后即可 pps : 我在codex vscode插件中验证有效,但是在26.5325.21211的版本中,会有一些预料之外的副作用: 如图,上面的方法会导致中间的的 select reasoning effort 选项消失 <img alt="Image" width="458" height="80" src="https://private-user-images.githubusercontent.com/78489325/570500586-d802c3d4-a158-41c1-9ea5-29818f7b3ba1.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Nzk4NTQwODEsIm5iZiI6MTc3OTg1Mzc4MSwicGF0aCI6Ii83ODQ4OTMyNS81NzA1MDA1ODYtZDgwMmMzZDQtYTE1OC00MWMxLTllYTUtMjk4MThmN2IzYmExLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA1MjclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNTI3VDAzNDk0MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIyOTU4YTQzODFlNDQ0NzcyYjc2YzNmNTcyMDNjMzQ2MjEyNTNmMzgzZDlmMGJjZmI2ZWM2YTgyODUwYWE1MDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.91vrWBpdjKmLKG0t3bnuYUEuNXNLVpgdStclgTWt5A4"> ppps : 原因: 默认是使用websocket协议,在websocket重连等待五次(并且每次的超时时间足足有20s)之后才会切换到可以正常通信的HTTP协议,至于websocket协议为什么不通,可能是代理不支持websocket协议; pppps: 代理使用TUN模式可以websocket直接访问; `` 2026-03-25T17:36:55.024290Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: new 2026-03-25T17:36:55.024450Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:37:16.154181Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=16.2ms time.idle=21.1s 2026-03-25T17:37:16.154242Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: close time.busy=16.5ms time.idle=21.1s 2026-03-25T17:37:16.154263Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (1/5 in 207ms)... 2026-03-25T17:37:37.457304Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (2/5 in 376ms)... 2026-03-25T17:37:58.883401Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (3/5 in 845ms)... 2026-03-25T17:38:20.787056Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (4/5 in 1.679s)... 2026-03-25T17:38:43.525159Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (5/5 in 3.428s)... 2026-03-25T17:39:08.043164Z WARN session_loop{ ... model=gpt-5.4}: codex_core::client: falling back to HTTP 2026-03-25T17:39:08.043236Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:39:10.673175Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=6.20ms time.idle=2.62s ``

20260527, ubuntu vscode codex extension, ~/.codex/config.toml 修改好成功了, 十分感谢. model_provider = "openai_http" 放在第一行.

GitApan · 1 month ago

<img width="796" height="338" alt="Image" src="https://github.com/user-attachments/assets/aa79ae24-7f2c-425f-ac2c-c6fe5377a5fa" />

为什么我打开tun模式还是这样

JLiu4Coding · 1 month ago
@lomoyi @Sheng-Charles @C-a-r-r-y @hikki1998 简单粗糙的解法: 在 ~/.codex/config.toml中加入以下几行: model_provider = "openai_http" [model_providers.openai_http] name = "OpenAI HTTP only" wire_api = "responses" supports_websockets = false ps : model_provider="openai_http"要放在配置文件开头,保证层级在最外侧,其余部分放在最后即可 pps : 我在codex vscode插件中验证有效,但是在26.5325.21211的版本中,会有一些预料之外的副作用: 如图,上面的方法会导致中间的的 select reasoning effort 选项消失 <img alt="Image" width="458" height="80" src="https://private-user-images.githubusercontent.com/78489325/570500586-d802c3d4-a158-41c1-9ea5-29818f7b3ba1.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODAxMTM0MzMsIm5iZiI6MTc4MDExMzEzMywicGF0aCI6Ii83ODQ4OTMyNS81NzA1MDA1ODYtZDgwMmMzZDQtYTE1OC00MWMxLTllYTUtMjk4MThmN2IzYmExLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA1MzAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNTMwVDAzNTIxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU2NTdiNzJjODUyMGNkNzMxY2MyZjZiNjBjMDJhYWExMGIzMWUwYTQ1YzA1NTI4MDEwNjYyNzkwNzRkODNmODgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.obeZ-tuvul7oUeNSbrxhgRSEaBsEcQTIU4ELt-gLRwM"> ppps : 原因: 默认是使用websocket协议,在websocket重连等待五次(并且每次的超时时间足足有20s)之后才会切换到可以正常通信的HTTP协议,至于websocket协议为什么不通,可能是代理不支持websocket协议; pppps: 代理使用TUN模式可以websocket直接访问; `` 2026-03-25T17:36:55.024290Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: new 2026-03-25T17:36:55.024450Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:37:16.154181Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}:model_client.websocket_connection{provider=OpenAI wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=16.2ms time.idle=21.1s 2026-03-25T17:37:16.154242Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_websocket{model=gpt-5.4 wire_api=responses transport="responses_websocket" api.path="responses" turn.has_metadata_header=true websocket.warmup=false}: codex_core::client: close time.busy=16.5ms time.idle=21.1s 2026-03-25T17:37:16.154263Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (1/5 in 207ms)... 2026-03-25T17:37:37.457304Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (2/5 in 376ms)... 2026-03-25T17:37:58.883401Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (3/5 in 845ms)... 2026-03-25T17:38:20.787056Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (4/5 in 1.679s)... 2026-03-25T17:38:43.525159Z WARN session_loop{ ... model=gpt-5.4}: codex_core::codex: stream disconnected - retrying sampling request (5/5 in 3.428s)... 2026-03-25T17:39:08.043164Z WARN session_loop{ ... model=gpt-5.4}: codex_core::client: falling back to HTTP 2026-03-25T17:39:08.043236Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: new 2026-03-25T17:39:10.673175Z INFO session_loop{ ... model=gpt-5.4}:model_client.stream_responses_api{model=gpt-5.4 wire_api=responses transport="responses_http" http.method="POST" api.path="responses" turn.has_metadata_header=true}: codex_core::client: close time.busy=6.20ms time.idle=2.62s ``

谢谢大佬,成功解决了。你是怎么想到这个解决办法的,太强了

crisxuan · 1 month ago

原来大家都跟我有一样的问题!!这个问题苦恼很久了,于是我找各种资料、问 AI ,

再根据自己的亲身实践,写了一篇内容,用于解决这个问题的。

大家可以看看,希望能帮助大家解决这个问题!!

https://mp.weixin.qq.com/s/5r3qIzu7rG8rhUvd3HWoGA

idy534 · 1 month ago

I was able to resolve a repeated Reconnecting... loop without disabling WebSockets.

In my case, the proxy could handle WebSocket traffic, but Codex did not consistently pick up the proxy across all network paths. The fix was to make the proxy available through the common Windows mechanisms that different network stacks may use.

Sanitized steps:

  1. Verify your local proxy supports WebSocket upgrade traffic.

Use your own local proxy URL in place of the placeholder below:

curl.exe -i --max-time 8 `
  -x <LOCAL_PROXY_URL> `
  -H "Connection: Upgrade" `
  -H "Upgrade: websocket" `
  -H "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==" `
  -H "Sec-WebSocket-Version: 13" `
  <OPENAI_WEBSOCKET_ENDPOINT>

Expected: HTTP/1.1 101 Switching Protocols.

  1. Set user-level proxy environment variables.

Replace <LOCAL_PROXY_URL> with your own local proxy URL:

[Environment]::SetEnvironmentVariable("HTTP_PROXY", "<LOCAL_PROXY_URL>", "User")
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "<LOCAL_PROXY_URL>", "User")
[Environment]::SetEnvironmentVariable("ALL_PROXY", "<LOCAL_PROXY_URL>", "User")
[Environment]::SetEnvironmentVariable("NO_PROXY", "localhost,127.0.0.1,::1", "User")
  1. Sync WinHTTP proxy from the Windows system proxy:
netsh winhttp import proxy source=ie
netsh winhttp show proxy
  1. Fully quit Codex Desktop and start it again. Existing processes do not inherit newly added environment variables.
  1. Re-test HTTPS and WebSocket connectivity from the restarted environment.

The main point is that this keeps WebSockets enabled. It only ensures Codex, child processes, and WinHTTP-based code paths use the same proxy configuration. If it still fails, a system-level tunnel/TUN setup may be needed, because some network path may be bypassing both environment variables and normal Windows proxy settings.

yangfanLoveKQQ · 1 month ago

我使用了FlClash这个工具,他代理的本地端口是7890。
在C:\Users\Administrator\.codex下创建一个.env文件
内容如下:
HTTP_PROXY="http://127.0.0.1:7890"
HTTPS_PROXY="http://127.0.0.1:7890"
ALL_PROXY="socks5h://127.0.0.1:7890"
NO_PROXY="localhost,127.0.0.1,::1"

重启codex,就解决了该问题。

nelande · 1 month ago

我通过codex修改好了

我用的是clash,我看了一下代理配置文件,其中有
port: 7890
socks-port: 7891
说明以上是代理端口

prompt是:
port: 7890
socks-port: 7891
这是代理配置,请按照这个修改吧

caojiaolong · 1 month ago
直接在%USERPROFILE%\.codex中创建文件名为.env的文本文件,写入: HTTP_PROXY=http://127.0.0.1:7897 HTTPS_PROXY=http://127.0.0.1:7897 其中7897端口必须修改为你本地计算机代理的端口,代理软件或者windows系统设置均可查看得到(如不清楚可询问AI): <img alt="Image" width="2000" height="923" src="https://private-user-images.githubusercontent.com/134118911/597273525-982d48a9-24a8-403e-a3fe-eed368c89bde.jpg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODE3MTM2NzAsIm5iZiI6MTc4MTcxMzM3MCwicGF0aCI6Ii8xMzQxMTg5MTEvNTk3MjczNTI1LTk4MmQ0OGE5LTI0YTgtNDAzZS1hM2ZlLWVlZDM2OGM4OWJkZS5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNjE3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDYxN1QxNjIyNTBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kNzk2NzAyZjgwMWFjMTRjYWY2MDQ3MmMxMTliOThiZWY0YWUyN2Q5YzRlMmZmNTM2NWM5YjYzM2Y0YjNiNTVmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZqcGVnIn0.UvJu3EQMoCFVKo8m0FQSbYV9PvHp5DmbGTeYoq9_T2E"> 这样可以确保Codex 显式走 HTTP 代理

有用的,我这边重连以及自动审批超时的问题都通过这个解决了😂

shesung · 21 days ago

那用了cc-switch 又该怎么配?

Body209 · 13 days ago
那用了cc-switch 又该怎么配?

铁铁,你解决了不

willray88 · 13 days ago
> 那用了cc-switch 又该怎么配? 铁铁,你解决了不

现在上了.env文件,会导致沙盒错误。要按这个方法https://github.com/openai/codex/issues/29418#issuecomment-4831792926

手动修改config.toml和setup_marker.json,而CCS每次切换都会覆盖配置,导致修改还原。目前我的办法是让AI写了个py脚本,每次CCS 切换完,就运行这个脚本,又把这个config.toml和setup_marker.json里应该改的改回去。这也是没办法的办法了

jasonari · 13 days ago
现在上了.env文件,会导致沙盒错误。要按这个方法#29418 (comment) 手动修改config.toml和setup_marker.json,而CCS每次切换都会覆盖配置,导致修改还原。目前我的办法是让AI写了个py脚本,每次CCS 切换完,就运行这个脚本,又把这个config.toml和setup_marker.json里应该改的改回去。这也是没办法的办法了

亲测有效。造成原因应该是 .env 的代理配置影响了沙盒的代理端口。需要改 config.toml 和沙盒的 setup_marker.json

  1. 首先退出 Codex 所有进程
  1. 保留 %USERPROFILE%\.codex\.env 里配置代理
HTTP_PROXY="http://127.0.0.1:7890/"
HTTPS_PROXY="http://127.0.0.1:7890/"
  1. %USERPROFILE%\.codex\config.toml[features] 添加 network_proxy 配置
[features]
network_proxy = true
  1. config.toml 的底部补充
[shell_environment_policy]
inherit = "all"
exclude = ["HTTP_PROXY", "HTTPS_PROXY", "ALL_PROXY", "http_proxy", "https_proxy", "all_proxy"]
  1. 找到 %USERPROFILE%\.codex\.sandbox\setup_marker.jsonproxy_ports
"proxy_ports": [7890]

改成

"proxy_ports": []

大概率是沙盒的bug,不想将沙盒降级为unelevated的可以试试这个方案