Skip to content
Save my spot

Resuming: acknowledgement, checkpoint and receipt are different

Five signals that sound alike and mean different things, and what resuming actually keeps.

Five signals sound alike and mean different things:

SignalWhat it statesWhat it does not prove
Bytes writtenThe local sender has handed bytes to its transportComplete receipt or file storage
Chunk acknowledgementThe transport chunk in question was acknowledged by the protocolThe whole file stored durably
Durable checkpointA defined verified prefix is saved together with its restart stateA finished whole transfer or an activated folder state
Signed receiptThe complete receipt checked for this profileA storage location confirmed universally in the browser
Activation or management receiptThe separately authorized follow-up action has finishedA general program start on the target

Scroll sideways to see the whole table.

Resuming preserves the transfer ID, the receiver binding and the cryptographic preparation. A transport switch does not change the file and does not encrypt changed source data with old nonces. For normal prepared files the local cipher cache can replace the source. With the native folder stream the originals stay necessary until completion.

On the directory receiver, a checkpoint is reported as durable only after the required data and directory synchronizations and the atomic journal switch. After a restart, plaintext bytes that already exist are checked for integrity again. A UI counter that had already moved on is no substitute for this point. When the receiver's position is unknown, pipeit shows “unknown” instead of zero.

Resume granularity depends on the profile: the file profile restarts an attempt from its cipher cache without re-encrypting; directory and live streams resume from their last durable checkpoint.

Errors have meaning as well: receiver_blocked with a concrete receiver status differs from a missing network connection. A full disk is not emptied by the relay (server route). A valid receipt that already exists must not be reinterpreted as a new double send because of a later status read error. For practical steps see Status, progress and resuming.