BUG: Cluster screen "Remove node" sends DELETE to wrong URL — /cluster/nodes/:id vs server /:id #83

Closed
opened 2026-05-25 18:46:09 -04:00 by zgaetano · 0 comments
Owner

Description

The Cluster screen's "Remove node" button sends a DELETE request to /api/v1/cluster/nodes/{nodeId}, but the server only registers a route at DELETE /api/v1/cluster/:id.

Files:

  • Frontend: services/web-ui/public/screens-admin.jsx (the removeNode function calls /cluster/nodes/ + nodeId)
  • Backend: services/mam-api/src/routes/cluster.js line router.delete('/:id', ...)

Requests:

  • Frontend sends: DELETE /api/v1/cluster/nodes/{nodeId}
  • Server expects: DELETE /api/v1/cluster/{nodeId}

The extra /nodes/ segment in the frontend path means Express never matches the route, returning a 404. The node is never deregistered.

Impact: The "Remove node" button appears to do nothing (silent failure in the catch handler shows an alert: "Remove failed: 404 Not Found"). Nodes cannot be removed from the cluster screen.

Suggested fix: Change the frontend call from /cluster/nodes/${id} to /cluster/${id}, or add a router.delete('/nodes/:id', ...) route in cluster.js that delegates to the same handler.

## Description The **Cluster** screen's "Remove node" button sends a `DELETE` request to `/api/v1/cluster/nodes/{nodeId}`, but the server only registers a route at `DELETE /api/v1/cluster/:id`. **Files:** - Frontend: `services/web-ui/public/screens-admin.jsx` (the `removeNode` function calls `/cluster/nodes/` + nodeId) - Backend: `services/mam-api/src/routes/cluster.js` line `router.delete('/:id', ...)` **Requests:** - Frontend sends: `DELETE /api/v1/cluster/nodes/{nodeId}` - Server expects: `DELETE /api/v1/cluster/{nodeId}` The extra `/nodes/` segment in the frontend path means Express never matches the route, returning a 404. The node is never deregistered. **Impact:** The "Remove node" button appears to do nothing (silent failure in the `catch` handler shows an alert: "Remove failed: 404 Not Found"). Nodes cannot be removed from the cluster screen. **Suggested fix:** Change the frontend call from `/cluster/nodes/${id}` to `/cluster/${id}`, or add a `router.delete('/nodes/:id', ...)` route in `cluster.js` that delegates to the same handler.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: WildDragonLLC/dragonflight#83
No description provided.