Client Timeout Defaults
A fault test mostly finds one thing: a timeout that is longer than anyone assumed, or not there at all. This page lists the defaults that decide how long a failed dependency holds a request.
Defaults Worth Knowing
Recorded from the Quarkus main sources and the client libraries it ships, September 2026.
| Client | Setting | Default |
|---|---|---|
REST Client |
|
15000 ms |
REST Client |
|
30000 ms |
Vert.x clients (reactive SQL, HTTP) |
|
60000 ms |
Vert.x SQL client, Hibernate Reactive |
statement timeout |
none |
Agroal |
|
5 s |
Agroal |
|
unset: no validation on borrow |
PostgreSQL JDBC |
|
10 s |
PostgreSQL JDBC |
|
0: none |
PostgreSQL JDBC |
|
0: none; it bounds the handshake of a connection the pool is creating, which |
Kafka producer |
|
120000 ms |
Kafka producer |
|
60000 ms |
Kafka producer |
|
30000 ms |
Most of what these tests will teach a team is in this table.
What to Set
The defaults make a hung or unreachable dependency cost 15 to 30 seconds per request.
-
Add a
@Timeout, or lower the timeouts of the client, before anything else -
Set a JDBC socket timeout, since the PostgreSQL driver has none, and a
loginTimeoutshorter thanacquisition-timeout, which bounds the wait for an existing connection rather than the creation of a new one; see Testing pool exhaustion -
Set
foreground-validation-intervalif a database blip must not fail the first request afterwards
Other clients have defaults of their own:
| Client | What bounds a hang |
|---|---|
Redis |
|
MongoDB |
|
GraphQL client |
Nothing: the client has no timeout of its own |
gRPC client |
A |
Hibernate Reactive |
Nothing: there is no query timeout |
Quarkus LangChain4j |
|
A streamed response |
Not the read timeout, which is cancelled once the response headers arrive; the consumer needs an idle timeout of its own |