Skip to content

docs(inboxes): inactive inbox status and the inbox_inactive error - #230

Open
josephfeleke wants to merge 2 commits into
mainfrom
joseph/inbox-inactive-status
Open

josephfeleke wants to merge 2 commits into
mainfrom
joseph/inbox-inactive-status

Conversation

@josephfeleke

Copy link
Copy Markdown
Contributor

What this does

Documents the inbox on/off switch shipped in agentmail-api #1126 (merged; spec #1125).

  • Fern: new InboxStatus enum (active | inactive). It appears on the Inbox type (documented as only present when the inbox is inactive — an active inbox has no status field) and on CreateInboxRequest and UpdateInboxRequest. The update-request "at least one of" wording now lists status.
  • Errors page: new inbox_inactive entry under Sending (403), next to message_rejected, saying what is blocked (sending, drafts, inbound) and the PATCH that lifts it.

Merge after the API PR deploys, since the SDKs regenerate from this definition.

…ive error

InboxStatus (active | inactive) on the Inbox type and on the create and
update requests, with the sparse-response rule stated: status is only present
when the inbox is inactive. errors.mdx gains inbox_inactive under Sending
(403), next to message_rejected, pointing at the PATCH that lifts it.
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

📋 View the side-by-side API change review

The link expires in 7 days.

🔒 Your API specs are encrypted in CI before they're uploaded. The decryption key stays in this link's URL fragment (after the #), which browsers never send to a server, so oasdiff cannot read your specs. How it works →

Posted automatically by the oasdiff GitHub Action. To turn this off (no spec upload, no comment), set review: false on the action.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

✨ API Changes

# API Changelog n/a vs. n/a


## API Changes

### GET /v0/inboxes
-  added the optional property `inboxes/items/status` to the response with the `200` status


### POST /v0/inboxes
-  added the new optional request property `status`
-  added the optional property `status` to the response with the `200` status


### GET /v0/inboxes/search
-  added the optional property `inboxes/items/status` to the response with the `200` status


### GET /v0/inboxes/{inbox_id}
-  added the optional property `status` to the response with the `200` status


### PATCH /v0/inboxes/{inbox_id}
-  added the new optional request property `status`
-  added the optional property `status` to the response with the `200` status


### GET /v0/pods/{pod_id}/inboxes
-  added the optional property `inboxes/items/status` to the response with the `200` status


### POST /v0/pods/{pod_id}/inboxes
-  added the new optional request property `status`
-  added the optional property `status` to the response with the `200` status


### GET /v0/pods/{pod_id}/inboxes/search
-  added the optional property `inboxes/items/status` to the response with the `200` status


### GET /v0/pods/{pod_id}/inboxes/{inbox_id}
-  added the optional property `status` to the response with the `200` status


### PATCH /v0/pods/{pod_id}/inboxes/{inbox_id}
-  added the new optional request property `status`
-  added the optional property `status` to the response with the `200` status

💡 Download api-changelog-diff artifact or tag @fern Writer in #github-prs for changelog.

…point that raises it

Adds the InboxInactiveError Fern error (403, inbox_inactive) so the
regenerated reference and SDKs surface it like the sibling
MessageRejectedError, and lists it on send, reply, reply-all, forward, and
draft create, update, and send. Corrects the UpdateInboxRequest.status text:
inbound mail to an inactive inbox is dropped, it never raises the error.
Gives inbox_inactive its own section on the errors page, since it covers
drafts as well as sending.
@josephfeleke

Copy link
Copy Markdown
Contributor Author

Review pass (against the merged API implementation, agentmail-api #1126). Three findings, all fixed in the latest commit:

  • The 403 was never typed. Every send and draft-write endpoint raises inbox_inactive, but the definition had no InboxInactiveError and listed it on no endpoint, so the reference and SDKs would have carried message_rejected but not this one. Added the error type (inboxes.InboxInactiveError, 403, ErrorResponse) and listed it on send, reply, reply-all, forward, and draft create, update, and send. Reply/forward drafts go through draft create, so they are covered.
  • Wrong sentence on UpdateInboxRequest.status. It said inbound delivery "fails with the inbox_inactive error"; inbound mail is dropped and never raises. Reworded to match the enum docs and the errors page.
  • Errors page placement. inbox_inactive sat under "Sending (403)" though it also covers drafts. It now has its own "Inactive inbox (403)" section.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

✨ API Changes

# API Changelog n/a vs. n/a


## API Changes

### GET /v0/inboxes
-  added the optional property `inboxes/items/status` to the response with the `200` status


### POST /v0/inboxes
-  added the new optional request property `status`
-  added the optional property `status` to the response with the `200` status


### GET /v0/inboxes/search
-  added the optional property `inboxes/items/status` to the response with the `200` status


### GET /v0/inboxes/{inbox_id}
-  added the optional property `status` to the response with the `200` status


### PATCH /v0/inboxes/{inbox_id}
-  added the new optional request property `status`
-  added the optional property `status` to the response with the `200` status


### POST /v0/inboxes/{inbox_id}/drafts
-  added the non-success response with the status `403`


### PATCH /v0/inboxes/{inbox_id}/drafts/{draft_id}
-  added the non-success response with the status `403`


### GET /v0/pods/{pod_id}/inboxes
-  added the optional property `inboxes/items/status` to the response with the `200` status


### POST /v0/pods/{pod_id}/inboxes
-  added the new optional request property `status`
-  added the optional property `status` to the response with the `200` status


### GET /v0/pods/{pod_id}/inboxes/search
-  added the optional property `inboxes/items/status` to the response with the `200` status


### GET /v0/pods/{pod_id}/inboxes/{inbox_id}
-  added the optional property `status` to the response with the `200` status


### PATCH /v0/pods/{pod_id}/inboxes/{inbox_id}
-  added the new optional request property `status`
-  added the optional property `status` to the response with the `200` status

💡 Download api-changelog-diff artifact or tag @fern Writer in #github-prs for changelog.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant