Because the transaction timeout can be set explicitly, it is important to trace the value on error.
For instance, here we have no idea if the timeout was the default one (20 min) or if the HTTP header set a custom value:
org.nuxeo.runtime.transaction.TransactionRuntimeException: Transaction has timed out at org.nuxeo.runtime.transaction.TransactionHelper.checkTransactionTimeout(TransactionHelper.java:266) ~[nuxeo-runtime-jtajca-10.10-HF41.jar:?] at org.nuxeo.ecm.core.api.local.LocalSession.getSession(LocalSession.java:108) ~[nuxeo-core-10.10-HF49.jar:?]
New tx timeout output since 10.10HF59/2021.18:
[ERROR] testGetChildrenIteratorFilter(org.nuxeo.ecm.core.TestSQLRepositoryAPI) Time elapsed: 712.505 s <<< ERROR! [2022-03-30T23:12:02.131Z] org.nuxeo.runtime.transaction.TransactionRuntimeException: Transaction has timed out: Tx started: 1648681160801, timeout: 1648681760801 (duration 600s), current: 1648681873603