windmill-labs/windmill · warning

Test connection not supported for this trigger type

Error message

Test connection not supported for this trigger type

What it means

Trigger types in Windmill implement a TestConnection trait; types that have no meaningful connectivity probe (e.g. static or schedule-derived triggers) use this default implementation which always returns an error. Calling the test-connection endpoint on such a trigger type always fails with this message.

Source

Thrown at backend/windmill-trigger/src/handler.rs:176

        &self,
        db: &DB,
        tx: &mut PgConnection,
        authed: &ApiAuthed,
        workspace_id: &str,
        path: &str,
        trigger: TriggerData<Self::TriggerConfigRequest>,
    ) -> Result<()>;

    async fn test_connection(
        &self,
        _db: &DB,
        _authed: &ApiAuthed,
        _user_db: &UserDB,
        _workspace_id: &str,
        _config: Self::TestConnectionConfig,
    ) -> Result<()> {
        Err(
            anyhow::anyhow!("Test connection not supported for this trigger type".to_string(),)
                .into(),
        )
    }

    fn additional_routes(&self) -> axum::Router {
        axum::Router::new()
    }

    async fn get_trigger_by_path(
        &self,
        tx: &mut PgConnection,
        workspace_id: &str,
        path: &str,
    ) -> Result<Self::Trigger> {
        let mut fields = vec![
            "workspace_id",
            "path",
            "script_path",

View on GitHub (pinned to e474e8803c)

Solutions

  1. Don't call test_connection for this trigger kind; verify the trigger is activated and processing events instead
  2. Check the specific trigger type's docs for the correct health-check mechanism
  3. If testing is genuinely needed, implement the test_connection override for that trigger type in windmill-trigger/src/handler.rs
Defensive patterns

Strategy: try-catch

Validate before calling

// consult the trigger type's capabilities before calling:
const SUPPORTS_TEST_CONNECTION = new Set(["http", "email", "s3", "kafka", "nats"]);

Try / catch

match client.test_connection(ws, trigger_path) {
    Ok(res) => println!("connected: {:?}", res),
    Err(e) if e.to_string().contains("not supported") => println!("skip: test_connection unsupported for this trigger kind"),
    Err(e) => return Err(e),
}

Prevention

When it happens

Trigger: POSTing to the trigger test-connection endpoint (POST /api/w/{workspace}/triggers/{kind}/.../test_connection) for a trigger kind whose trait impl delegates to this base handler, e.g. websocket or other kinds without an override.

Common situations: Users clicking a 'Test connection' button in the UI for trigger types that don't support it; API clients running health-check scripts that assume all trigger kinds support the probe.

Related errors


AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03). Data as JSON: /api/errors/82b8565f1754b258. Report an issue: GitHub.