IGPAPI
    Preparing search index...

    Variable pigeonFlushConst

    pigeonFlush: Effect.Effect<
        TelemetryFlushResult,
        TelemetryDeliveryError,
        PigeonFlushRequirements,
    > = ...

    The user's explicit delivery (FlushTelemetry in @igpapi/mobile): sends everything the process accumulated through one Pigeon batch. An empty store sends nothing — not even an init — so a flush with nothing pending is no request; an upload the transport or the analytics server rejects fails with TelemetryDeliveryError after putting its events back, and the next flush carries them again. Nothing calls this on its own: there is no timer, no send on leave, no background trigger.

    It sends only into the Pigeon session the process began: the caller starts it with pigeonSendInfraBatches (the Android launch does where the app's first upload of the process goes out). A process that never began it gets TelemetryDeliverySessionError (reason: 'session') and the batch stays in the store, because no recording covers an upload without the session.