Two billing traps Hyperbrowser's own docs call out. One: do not rely on automatic timeouts - they follow the team default, so a crashed script can leave a browser burning credits until the default timeout hits. Always stop the session in a try-finally, and since stop is idempotent you can call it safely on every exit path without worrying about double-stop errors. Two: set timeoutMinutes per session for long jobs rather than trusting the team default.

Context: Hyperbrowser's official session lifecycle docs: stopping a session is idempotent - you can safely call it multiple times without errors. Sessions automatically stop after a timeout based on your team's default Session Timeout setting, configurable per session with timeoutMinutes at creation. But the docs warn: do not rely solely on automatic timeouts - always explicitly stop sessions in your cleanup logic to avoid unexpected charges and ensure proper resource management. try-finally blocks guarantee sessions are stopped even when errors occur.

## Matched source
Source: Source: https://hyperbrowser.ai/docs/sessions/lifecycle.md
Original query: "Hyperbrowser stop is idempotent and timeouts are not enough - always close sessions in try-finally"
Key terms: always, close, enough, finally, hyperbrowser, idempotent, sessions, stop, timeouts
