Skip to content

[console 17.0.0-rc.0 @4a4829d0] Legacy string rowActions dead-end: dispatched as {type:<name>}, falls into executeActionSchema no-op with a green success toast #2960

Description

@yinlianghui

Found upgrading HotCRM to ObjectStack 17.0.0-rc.0 (console pinned at 4a4829d0).

Symptom

A list view declaring legacy string row actions (rowActions: ['convert_lead']) renders a menu item that, when clicked, performs zero network requests and reports success. Because object-level actions with locations:['list_item'] also inject their own (working) item, the menu shows a working and a dead duplicate of the same action side by side.

Root cause

  • packages/plugin-grid/src/ObjectGrid.tsx:1500-1506: the legacy string path dispatches { type: <action name>, params: { record } } — the action name lands in the type slot, never resolved against the object's action defs.
  • packages/core/src/actions/ActionRunner.ts:438 + :542-553: unrecognized type falls to the default branch → executeActionSchema() (:887-908), which without api/endpoint/navigate/onClick returns {success:true, reload:true, close:true} — no fetch, then handlePostExecution (:625-644) fires a green "Action completed successfully" toast.

Suggested fix

Resolve string row actions against objectDef.actions by name (then dispatch the resolved def), and make executeActionSchema's empty-schema fallthrough a loud error instead of a silent success.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions