timeouts

Members

(static, constant) API_WAIT_MS

API pool caller wait (fetchRes). 2s buffer above HTTP_MS so the HTTP layer times out first, preventing orphaned pool slots when the wait expires before the HTTP call.

Default Value
  • 12000

(static, constant) CONNECTION_CHECK_MS

Session connection check timeout. Intentionally higher to accommodate slow/remote servers and redirect chains during initial connection.

Default Value
  • 35000

(static, constant) FONT_SCALE_MS

Fallback-font scale measurement wait (main.bs calculateFontScaleFactor). A safety net for a task that never reports, not an expected duration — it measures two labels. Blocks the main thread during bootstrap, so it is not larger.

Default Value
  • 10000

(static, constant) HTTP_MS

Default HTTP request timeout passed to roku-requests. Used by ApiTask and SideEffectTask for all API pool requests.

Default Value
  • 10000

(static, constant) PIPELINE_RUN_MS

Whole-run budget for one apiPipeline run (source/api/apiPipeline.bs). ONE deadline across every request in the run, not a fresh one per request: a per-request wait lets N slow requests stack into N * API_WAIT_MS, so a dead server made a 10-library Home churn for ~48s. Must exceed API_WAIT_MS or a single slow-but-successful request gets cut short.

This is a budget, not a guarantee of coverage. A run services roughly PIPELINE_RUN_MS / per-request-latency * apiPool.SLOT_COUNT requests before it expires, and every entry past that is yielded undelivered. At the 11-library Home's measured ~132ms/request that is far more headroom than needed; at ~5s/request on a slow link it is about 12. So on a large, distant server the tail of a run legitimately fails, and callers must treat an undelivered entry as "no answer" rather than as data — see components/home/LoadLatestRowsTask.bs and source/home/latestRows.bs.

Default Value
  • 20000