Skip to content

Dashboard: domain Delete button never sends confirmation → all UI domain deletes fail #402

Description

@jiashuoz

Summary

The Delete button on the dashboard Domains page (web/) is completely non-functional. Clicking it fires the DELETE domain request without the required confirm parameter, so the API rejects every attempt. No domain can be deleted from the UI at all.

Repro

  1. Dashboard → Workspace → Domains.
  2. Click Delete on any domain (repro'd on an unverified e2a.dev registration, but this is not domain-specific).
  3. A browser alert appears with the raw API error instead of the domain being deleted.

Actual

The delete fails with the API's confirmation guard surfaced as a raw alert():

{"error":{"code":"confirmation_required","message":"add ?confirm=DELETE to the request to proceed — this is irreversible","request_id":"req_bb057c61232854b0df0d22b7"}}

Two bugs in one:

  1. Functional: the frontend delete handler never sends the confirmation the API requires (?confirm=DELETE, matching the API contract used by the MCP delete_domain tool's confirm: true). So the delete can never succeed from the UI.
  2. UX: the error is shown via a raw browser alert() dumping the JSON error body + request_id, rather than a handled error state.

Expected

  • Clicking Delete opens a confirmation modal (the op is irreversible and cascades to all inboxes, messages, pending outbound, webhook deliveries, and revokes OAuth tokens bound to the domain's agents — worth an explicit "type the domain to confirm" given that blast radius).
  • On confirm, the request includes the confirmation parameter and the domain is deleted.
  • Any API error is rendered as a proper inline/toast error, never a raw alert() with a JSON dump.

Scope / severity

Affects all domain deletions via the dashboard — the UI delete path is entirely broken. Workaround today is deleting via the API / MCP delete_domain with confirm: true.

Likely fix location

web/ — the Domains page domain-delete handler. It should thread the confirmation flag through to the DELETE domain API call (behind a confirm modal) and handle the error response instead of alert()-ing it.

Environment

  • Surface: hosted dashboard (e2a.dev), Domains page
  • Observed: 2026-07-09
  • request_id: req_bb057c61232854b0df0d22b7

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions