Skip to content

Admin action ID reused

FieldValue
Type URIhttps://echo.labstack.com/pro/problems/admin-action-id-reused
Codeadmin_action_id_reused
HTTP status409
HTTP statusEnglish title
409Conflict

The console refused an action commit. The confirmation token is missing, malformed or invalid for this action and input; the receipt cache holds different input under this action_id; or the audit sink already has this action ID with different content.

When the confirmation does not verify, request a new preview and commit with the confirmation it returns. Do not reuse an action_id for different input. To retry the same action, resend the identical input with the same action_id and confirmation. For a new action, open a fresh form, which generates a new action_id.

If your application installs a custom handler, the body may differ.

HTTP/1.1 409 Conflict
Content-Type: application/problem+json
Cache-Control: no-store
{
"code": "admin_action_id_reused",
"detail": "",
"status": 409,
"title": "Conflict",
"type": "https://echo.labstack.com/pro/problems/admin-action-id-reused"
}

Check that action forms preserve their action_id, confirmation and input across retries. A different action needs a new preview. A lost response must not generate a new action ID.

  • code (string, always): The stable code above.
  • detail (string, always): The console always sends detail. It is often empty and never contains the underlying error.
  • status (integer, always): The HTTP status of the response.
  • title (string, always): The HTTP status text, such as Conflict, unless the panel supplies its own title.
  • type (string, always): The exact type URI above.

Headers:

  • Cache-Control (always): no-store. The console sends it on every problem response, along with its usual security headers.

Notes:

  • Fields are written in alphabetical order.
  • The console rewrites every 404 response to admin_not_found with an empty detail.

See the admin console for access checks, action IDs and audit failures.