Failures and timeouts
Understand compile, frame, intent, and provider failures in the selected runtime.
Do not assume every L3 failure blocks all execution. The failure stage and whether the session is running in Agent Lab affect the outcome.
Runtime failure behavior
| Failure | Normal session path | Agent Lab path |
|---|---|---|
| L3 source fails to load | Records/logs the error and has no loaded L3 module | Propagates a compile failure |
| Frame hook throws | Records/logs the error; the wrapper returns | Propagates a frame failure |
| Intent hook throws | Records the error and rejects ordinary requests; manual override can affect the final decision | Propagates an intent failure |
Without an enabled loaded intent hook, this L3 layer allows requests. A broken source load is therefore not equivalent to a functioning guard returning false.
Likewise, a normal frame-hook failure does not automatically turn the intent hook into a rejection. Define how an intent should treat missing or stale state from frame analysis.
Provider failures
A provider error can include access rejection, missing credentials, invalid output, connection failure, timeout, or tool-loop validation failure. If your script does not catch it, it reaches the surrounding frame or intent failure path.
If you do catch it, define the fallback explicitly. For an execution guard, returning a default object or forgetting a return can allow a request under the direct hook contract. Return a Boolean and preserve an error reason.
Timeout scope matters
API adapters pass supported timeout settings to their clients; local CLI adapters have process timeout handling. Tool-loop limits bound model iterations for the adapters that implement them. They are not a universal deadline for every line of L3 code and every host callback.
Awaited work can delay the frame or request path. A JavaScript timeout race by itself does not establish cancellation of the underlying provider or external operation.
Verify recovery
Use deterministic failure fixtures, then inspect the next frame or request. Clear or invalidate stale evidence deliberately. A previous successful response must not silently stand in for a new response whose call failed.
Continue with historical testing.