A WordPress 7.2 entity action can have a visible label without a working client handler. Trace the declaration, script module and action ID before changing permissions or rebuilding content. A button appearing in the Site Editor proves only that part of the interface was rendered.
Use the current beta on an isolated development site. Record the WordPress build and whether the Gutenberg plugin is active, because a plugin build and the code bundled with core can expose different behavior during the release cycle.
Choose a harmless action for the reproduction
Replace the reported operation with a test action that displays the title of a synthetic page. Do not begin with delete, refund, publish or a bulk edit. The diagnostic should prove that the handler is reached without altering valuable data.
Write down the entity kind and name, the registered action ID, module ID and expected screen. Test a single selected fixture before testing a bulk selection. If the action is only intended for a list, an unrelated editor menu is not a valid acceptance target.
Inspect the server declaration
The entity-actions API registers serializable metadata on the server and supplies executable behavior through a script module. Registrations belong on wp_entity_actions_api_init. Putting a JavaScript callback into the PHP definition is not a substitute for a client handler.
Inspect the authorized response for the actual entity. The route is /wp/v2/entity-actions with kind and name parameters. Check whether your action is present and which module is associated with it. A missing action points toward registration, entity identity or filtering; a visible action with a failed module points elsewhere.
Do not assume an absent separate network request means the definition was never delivered. Editor data can be preloaded. Compare the effective definition available to the view before concluding that the endpoint was skipped.
Match identifiers exactly
The module's default export maps action IDs to their JavaScript behavior. Compare the declaration's ID with the export key character by character. Namespace differences, stale build output and a renamed action left in one file can leave a label disconnected from its callback.
Then inspect the module response in the browser Network panel. Confirm a successful JavaScript response, not an HTML fallback served with status 200. Check the first console error and the failed dependency. Later errors may be consequences of the initial module-loading failure.
Entity-action diagnostic branches separate registration, module delivery, handler matching and authorization. Synthetic explanatory visual.
Check context and eligibility independently
An action can be registered yet intentionally unavailable for the selected item. Compare one eligible fixture with one ineligible fixture using the same user. Review the current build's supported context values instead of copying an early beta example.
The context follow-up documents why the unsupported single context was removed. Keep context selection distinct from isEligible logic. A misplaced context can hide the action everywhere, while eligibility should distinguish permitted fixture states.
For bulk support, select two synthetic pages and verify the handler receives the intended items. A callback written for one item may silently process only the first row. Record selected IDs and processed IDs, without using actual private page text in a shared debugging report.
A working callback still needs server authorization
Client-side eligibility is not a security boundary. If the action eventually calls a mutation endpoint, the server must authorize that user for each target object. Test a denied fixture through the real endpoint and confirm no change occurred. Do not fix a rejected operation by broadly granting administrative privileges.
If both titles and actions are missing, start with the entity-field diagnostic to determine whether the broader editor setup is incomplete. That is different from one custom action having a mismatched handler.
Finish with a compact evidence bundle: exact build, entity identity, action/module IDs, relevant response, first error and harmless test result. HandL WP can trace an editor integration failure using this fixture. Retest after the next beta or stable build rather than treating a development API snapshot as permanent.
Reference and review date
Primary technical reference. Sources checked October 29, 2026. The proposed procedures and original diagrams are explanatory test aids, not claims of customer testing or measured improvements.