Use drafts in the Inkbox Console
Open an identity’s mailbox and choose Compose, Reply, or Forward. The composer creates a draft after your first meaningful edit and autosaves later changes. Its save indicator shows when changes are saving or saved. You can then:- Close the composer and reopen the draft from Drafts.
- Add or remove attachments without re-uploading attachments already saved.
- Discard the draft to delete it permanently.
- Send only after the latest local changes are saved.
Use drafts over REST
The REST lifecycle is create, update with the returned generation, then send or delete that exact generation.bash
null to clear a nullable field. Keep the
latest returned generation with your local state; attachments also use and
advance it.
For replies, create/update requests use in_reply_to_message_id, while draft
detail responses return the resolved value as in_reply_to.
See the Drafts REST reference for all fields,
attachments, forwarding, pagination, and response objects.
Handle revision conflicts
Every saved revision has ageneration. If another browser, API client, or mail
app changes the draft first, your mutation returns 409 with
detail.error: "draft_generation_conflict".
Do not overwrite the newer revision silently. Reload it and compare changes. If
you need to preserve both versions, duplicate the current server revision, then
apply your local edits to the new draft. The duplicate has a new draft ID,
generation 1, and a fresh Message-ID.
Handle sends in progress
draft_send_in_progress means delivery work has already started for that exact
revision. Keep the draft read-only, honor the Retry-After response header, and
wait or poll using the same draft ID and generation. Do not submit another send.
If the send is rejected before delivery is attempted, the draft returns to an
editable state at the same generation. Fix the reported issue and send again.
Successful sends return a normal Message and remove the source draft.
Handle uncertain delivery
Rarely, Inkbox cannot confirm whether a send was accepted. The draft then reportssend_state: "uncertain" and detail.error: "draft_delivery_uncertain".
The draft remains readable and deletable, but it cannot be edited or sent. Do not
retry automatically because the recipient may already have received it. Choose
one of these explicit actions:
- Delete the draft if you determine that no follow-up is needed.
- Duplicate it to create an editable draft with a fresh Message-ID, review the content and recipient history, then decide whether to send the copy.

