Timeout is a location, not a diagnosis
A client can fail to connect, stop waiting for a provider response, receive a result but fail to download it, or exceed the total age allowed for a job. The page can also load while never reaching the visual state the screenshot requires. These failures need different actions.
Name the stage in logs and metrics. A generic timeout counter cannot tell an operator whether to adjust the target fixture, client transport, queue, or provider retry.
Keep readiness separate
A long HTTP timeout does not make a page complete. Use a measured delay or DOM condition for the page state and an independent transport budget for the API request. If the target consistently misses readiness, investigate the page or change the specification.
Avoid waiting on unrelated analytics or persistent connections when a known application element provides a better completion signal.
Recover within a logical deadline
Retry only when another attempt can plausibly succeed. Add backoff and jitter, cap attempts, and stop when the artifact would no longer be useful. Make storage idempotent because a client can time out after the remote operation completed.
Serverless functions and web requests have their own execution limits. Leave time for validation and storage or move capture to a durable worker.
The error handling guide covers category design, and the delay guide helps distinguish elapsed time from meaningful readiness.