Standard OS · DocumentationSTANDARD MANUALSTD-LAUNCHER · 2026-02-25
STD-LAUNCHER

Launcher Trigger Collision Detected

Launcher Trigger Collision Detected

Error: [Launcher] Fatal Collision: Trigger “::trigger” already registered by “module-a”. Attempting to register again from “module-b”.

The Problem

Two different modules (or a module and a project-level configuration) are attempting to register the same command trigger (e.g., ::login) in the Launcher.

The Why

Launcher triggers serve as unique identifiers for views and actions within the Standard ecosystem. If the system allowed duplicate triggers:

  1. Silent Overwriting: One registration would simply disappear, replaced by the last one to load.
  2. Unpredictable UI: The feature you expect to see (e.g., a “Login” view) might be replaced by a different one from another module.
  3. Architectural Drift: It would encourage messy overrides instead of clean, modular extension.

By throwing a Fatal Error during the Launcher’s boot phase, the framework forces you to resolve this ambiguity immediately, ensuring your application behavior remains explicit and predictable.

The Solution

  1. Rename the Trigger: If the two features are distinct, change the trigger property in one of the module manifests.
  2. De-duplicate Modules: Check if you have redundant modules providing the same feature. For example, you might have both a local launcher module and the generic @stnd/account package both claim ::login. Disable or remove the one you don’t need.
  3. Registration Logic: Ensure that your module manifests (launcher:view or launcher:action hooks) aren’t accidentally registering the same ID twice.
  • modules: How the Standard module system works.
  • module-duplicate-id: Similar uniqueness requirements for module IDs.

See also: https://stnd.build/launcher-trigger-collision

Standard OS — stnd.buildSTD-LAUNCHER · rev. 2026-02-25