Skip to content

Action not found ​

ACTION_NOT_FOUND means the executor's current page registry has no such id. It is usually a declaration, snapshot, or naming problem, not a model capability problem.

Common causes ​

CauseSymptomFix
Dynamic id mismatchRow key or delimiter differsGenerate ids through one function and test it
Action in an unmounted regionCall after a modal closesRemove registration on close; describe before calling
Page navigatedOld snapshot id is absent from the new pageDescribe after navigation
Namespace collisionTwo components share a prefixUse a unique scope or namespace
Stale buildOld bundle lacks the new actionClear cache and verify the build version
Expired snapshotRecord or region changed after observationBound snapshot lifetime and refresh on change

Diagnostic order ​

  1. Copy the id from the current debug snapshot, not chat history.
  2. Check whether the action appears in the tool list; if not, inspect declaration and conditional rendering.
  3. For a folded action, confirm the target record is still referenceable.
  4. Check route and modal state.
  5. If namespaces are enabled, check that the caller includes the prefix.
  6. Run the same action through the in-page assistant; failure there points to page declaration.

Dynamic ids ​

ts
const toggleId = (taskId: string) => `toggle@${taskId}`;

Do not write `toggle-${id}` in one place and `toggle@${id}` in another. The id is a protocol contract, not display text.

If an id depends on list position (row-1), sorting or filtering points it at another record. Use a stable business key.

Snapshots and navigation ​

An action existing once does not mean it exists forever. After navigation, the old registry may be destroyed and the new page may not be mounted. An external client must describe again when page identity changes. Do not reuse old capabilities across SPA, MPA, iframe, or Shadow DOM boundaries. See Continuity and projection reference.

Prevent recurrence ​

  • Generate each family of ids through one function.
  • Assert the id-to-record relationship in tests.
  • After navigation or modal close, assert old ids are unavailable.
  • Inspect the tool list after a build.
  • Do not describe “not found” as permission denial; recovery differs.

The page capability model, Error codes and diagnostics.