[BUG] HttpClientProperties.responseTimeout is dead configuration (never applied)
- Dominant language
- Java
- Stars
- 8.8k
- Forks
- 3.1k
- Avg merge
- 7d 1h
- Merged PRs (30d)
- 85
Description
## Description
The `shenyu.httpclient.responseTimeout` property is parsed and has a getter, but is never passed to `HttpClient.responseTimeout(...)` or any mechanism in the factory. The actual per-request timeout comes from `AbstractHttpClientPlugin.execute()` reading `Constants.HTTP_TIME_OUT` from the exchange attribute (set by DividePlugin from `ruleHandle.getTimeout()`).
## Location
```
shenyu-plugin-httpclient/.../config/HttpClientProperties.java:62 (responseTimeout = 3000L), 165-168 (getter)
HttpClientFactory.java:110-143 (createInstance never calls getResponseTimeout())
```
## Impact
Operators setting `shenyu.httpclient.responseTimeout=10000` expecting a global response timeout get no effect — silent misconfiguration. A route misconfigured with `timeout=0` yields `Duration.ofMillis(0)` = zero timeout, failing every request immediately.
## Suggested fix
Apply `responseTimeout` as the HttpClient-level `responseTimeout()`, or deprecate/remove the dead field and document that timeouts are per-route.
## Related existing issue(s)
None
_Identified during the 2026-08-02 audit; full list in [`docs/issue-candidates-2026-08-02.md`](docs/issue-candidates-2026-08-02.md)._
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with HttpClientProperties.java:62,165-168 and HttpClientFactory.java:110-143, then trace AbstractHttpClientPlugin.execute() and DividePlugin's timeout attribute handling. Determine the intended precedence between the global property and per-route timeout, including timeout=0 behavior. Done means the configuration is effective or is removed/deprecated with the per-route behavior documented and covered by appropriate tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100