Skip to content

Re-queue a failed outbox row

POST
/admin/federation/outbox/{id}/requeue

Resets a failed row to status=queued + attempts=0 + next_ attempt_at=NOW(). The delivery worker picks it up on the next LISTEN/NOTIFY wake (sub-100ms in the happy path).

Refuses (409) if the row is NOT in status=failed — re- queuing a queued row is a no-op race; re-queuing a sent row would duplicate-deliver. The admin UI’s confirmation prompt SHOULD warn before re-queueing rows whose last_error references a non-retriable §12.1 reason (unknown_object, sig_invalid, encryption_required, etc.) since those will fail again — see the design proposal §3.4 retriable-flag mapping.

Emits federation.outbox.requeued audit event.

id
required
string format: uuid

Row re-queued; the updated outbox state.

One row in the per-recipient federation_outbox queue . Derived from the activities ledger by the dispatcher per design §3.1; delivered by the worker per §3.3. The admin UI surfaces queued / sent / failed / cancelled rows for operator visibility into outbound federation traffic.

object
id
required
string format: uuid
activity_id
required
string format: uuid
peer_id
required
string format: uuid
target_user_url

Per-recipient actor URL within the peer; null = broadcast.

string
nullable
status
required
string
Allowed values: queued sent failed cancelled
attempts
required

Delivery attempt count (caps at 5 before terminal-fail).

integer
next_attempt_at
required

Wall-clock time of the next attempt per the §3.4 backoff schedule.

string format: date-time
last_attempt_at
string format: date-time
nullable
last_error

Failure detail captured on the most recent attempt. For failed rows, may carry a §12.1 reject reason from the receiver — the admin UI maps these to retriable / non-retriable warnings on the re-queue confirmation prompt.

string
sent_at
string format: date-time
nullable
delivered_with_key_id

HTTP-Sig keyId used on the successful delivery (forensics).

string
nullable
created_at
required
string format: date-time
updated_at
required
string format: date-time

Authentication required, missing, or invalid

object
error
required

Human-readable error summary

string
Example
the request could not be completed
Example
{
"error": "authentication required: sign in and retry with a valid session or API token"
}

Authenticated but missing required capabilities

object
error
required

Human-readable error summary

string
Example
the request could not be completed

Outbox row not found.

object
error
required

Human-readable error summary

string
Example
the request could not be completed

Row not in status=failed (idempotency guard).

object
error
required

Human-readable error summary

string
Example
the request could not be completed