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.