crewAIInc/crewAI · error · SystemExit

Error: {error_data.get('error', 'Trigger not found')}

Error message

Error: {error_data.get('error', 'Trigger not found')}

What it means

Printed with SystemExit(1) by TriggerCommand.execute_with_trigger() when the Plus API responds 404 to get_trigger_payload(app_slug, trigger_slug). Either the app or the trigger slug does not exist (or is not visible to your account), and the error message from the API body is displayed (falling back to 'Trigger not found').

Source

Thrown at lib/cli/src/crewai_cli/triggers/main.py:58

            if "/" not in trigger_path:
                console.print(
                    "[bold red]Error: Trigger must be in format 'app_slug/trigger_slug'[/bold red]"
                )
                raise SystemExit(1)

            app_slug, trigger_slug = trigger_path.split("/", 1)

            console.print(
                f"[bold blue]Fetching trigger payload for {app_slug}/{trigger_slug}...[/bold blue]"
            )
            response = self.plus_api_client.get_trigger_payload(app_slug, trigger_slug)

            if response.status_code == 404:
                error_data = response.json()
                console.print(
                    f"[bold red]Error: {error_data.get('error', 'Trigger not found')}[/bold red]"
                )
                raise SystemExit(1)

            self._validate_response(response)

            trigger_data = response.json()
            self._display_trigger_info(trigger_data)

            self._run_crew_with_payload(trigger_data.get("sample_payload", {}))

        except Exception as e:
            console.print(
                f"[bold red]Error executing crew with trigger: {e}[/bold red]"
            )
            raise SystemExit(1) from e

    def _display_triggers(self, triggers_data: dict[str, Any]) -> None:
        """Display triggers in a formatted table."""
        apps = triggers_data.get("apps", [])

View on GitHub (pinned to 754d7323be)

Solutions

  1. Run `crewai trigger list` to see the slugs actually available and copy them exactly.
  2. Reinstall/re-add the integration in the CrewAI Plus dashboard if it was removed.
  3. Confirm you are authenticated to the workspace that owns the app (check `crewai whoami` / re-login).
  4. Watch for trailing whitespace or case mismatches in slugs.
Defensive patterns

Strategy: validation

Validate before calling

response = plus_api_client.get_trigger_payload(app_slug, trigger_slug)
if response.status_code == 404:
    available = plus_api_client.get_triggers().json()
    slugs = {f"{a['slug']}/{t['slug']}" for a in available.get("apps", []) for t in a.get("triggers", [])}
    raise SystemExit(f"Unknown trigger. Available: {sorted(slugs)}")

Try / catch

if response.status_code == 404:
    # re-check against the trigger list rather than retrying blindly
    list_response = plus_api_client.get_triggers()
    # reconcile slugs here

Prevention

When it happens

Trigger: Running `crewai trigger execute wrong-app/right-trigger` or any slug pair not registered in your CrewAI Plus workspace: deleted integrations, typo'd slugs, or a trigger belonging to a different workspace/team.

Common situations: Integration was removed or renamed in the Plus dashboard after the developer copied the path; slug typo; using a personal key against a team workspace where the app is not shared.

Related errors


AI-assisted analysis of crewAIInc/crewAI@754d7323be (2026-08-15). Data as JSON: /api/errors/e9e4b63018c595e6. Report an issue: GitHub.