The failures that reach the outside Promise of an AndroidIgpapi entry
without main raising them: the stored value's decode error, the
checkpoint-versus-session refusals, CheckpointScreenMismatchError of a
resume, the launch's or the restore's own failure, and what otherwise
cannot settle — over the start or over an effect inside main alike: a
screen no branch covers and the same effect interrupted twice
(UnexpectedScreenError), a challenge step the library does not model
(ChallengeStepNotModelledError) or another failure of opening the challenge,
and an error a branch raises — Otherwise is the constant's type
(AndroidIgpapiStartError<typeof challenges>), which carries the union of its
branches' errors. Every other error main's screens and actions raise is
handled inside main, with typed catchTag; an error main leaves unhandled
rejects the call too, as the same tagged object. A session-fatal answer to a
request of the launch's tail — which the launch hands to the process's
background once the feed is on screen — ends the process and rejects the call
with that same typed error, even when main had already returned (it is a
member of the launch's failure above, AndroidAppLaunchFailure). A challenge
over a tail request is answered by the same otherwise, between main's
actions, and what the branches cannot settle there ends the process the same
way: a running main stops, and the call rejects with the union's own
member (UnexpectedScreenError, ChallengeStepNotModelledError, a branch's
error), never an internal object.
The failures that reach the outside Promise of an
AndroidIgpapientry withoutmainraising them: the stored value's decode error, the checkpoint-versus-session refusals,CheckpointScreenMismatchErrorof a resume, the launch's or the restore's own failure, and whatotherwisecannot settle — over the start or over an effect insidemainalike: a screen no branch covers and the same effect interrupted twice (UnexpectedScreenError), a challenge step the library does not model (ChallengeStepNotModelledError) or another failure of opening the challenge, and an error a branch raises —Otherwiseis the constant's type (AndroidIgpapiStartError<typeof challenges>), which carries the union of its branches' errors. Every other errormain's screens and actions raise is handled insidemain, with typedcatchTag; an errormainleaves unhandled rejects the call too, as the same tagged object. A session-fatal answer to a request of the launch's tail — which the launch hands to the process's background once the feed is on screen — ends the process and rejects the call with that same typed error, even whenmainhad already returned (it is a member of the launch's failure above,AndroidAppLaunchFailure). A challenge over a tail request is answered by the sameotherwise, betweenmain's actions, and what the branches cannot settle there ends the process the same way: a runningmainstops, and the call rejects with the union's own member (UnexpectedScreenError,ChallengeStepNotModelledError, a branch's error), never an internal object.