Skip to content

feishu_bot_creator.py: add timeout to urllib.request.urlopen calls - #2655

Closed
TrueFurina wants to merge 1 commit into
TencentCloud:mainfrom
TrueFurina:fix/feishu-urlopen-timeout
Closed

TrueFurina wants to merge 1 commit into
TencentCloud:mainfrom
TrueFurina:fix/feishu-urlopen-timeout

Conversation

@TrueFurina

Copy link
Copy Markdown

Add timeout to urllib.request.urlopen calls in feishu_bot_creator

Two urllib.request.urlopen() calls in the Feishu greeting flow had
no timeout. If the open.feishu.cn endpoint is unreachable (network
partition, DNS stall, or TLS handshake timeout), the call blocks the
bot creator indefinitely:

  1. POST /auth/v3/tenant_access_token/internal — fetch tenant token
  2. POST /im/v1/messages — send the initial greeting message

Both are wrapped in broad except Exception blocks, so adding
timeout=30 lets the except path take over on network failures instead
of deadlocking. The sibling yuanbao_bot_creator already uses timeout=30
for the same endpoint family.

Two urllib.request.urlopen() calls in the Feishu greeting flow had
no timeout. If the open.feishu.cn endpoint is unreachable (network
partition, DNS stall, or TLS handshake timeout), the call blocks the
bot creator indefinitely:

1. POST /auth/v3/tenant_access_token/internal — fetch tenant token
2. POST /im/v1/messages — send the initial greeting message

Both are wrapped in broad except Exception blocks, so adding
timeout=30 lets the except path take over on network failures instead
of deadlocking. The sibling yuanbao_bot_creator already uses timeout=30
for the same endpoint family.
@jubaoliang jubaoliang closed this Oct 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants