Significant-Gravitas/AutoGPT · error · InvalidInputError

Could not set up webhook: {feedback}

Error message

Could not set up webhook: {feedback}

What it means

InvalidInputError raised inside setup_triggered_preset when setup_webhook_for_block returns no webhook — the webhook provider/backend rejected the registration and returned a feedback string. The error embeds that feedback, which carries the provider-specific reason (bad credentials, invalid config, provider API failure). Note the webhook is created in the graph's org/team (resource-follows-parent), not the caller's.

Source

Thrown at autogpt_platform/backend/backend/api/features/library/triggers.py:84

        **(
            make_node_credentials_input_map(graph, agent_credentials).get(
                trigger_node.id
            )
            or {}
        ),
    }

    # Resource-follows-parent: the webhook lives in the graph's org/team,
    # not the caller's active org.
    new_webhook, feedback = await setup_webhook_for_block(
        user_id=user_id,
        trigger_block=trigger_node.block,
        trigger_config=trigger_config_with_credentials,
        organization_id=graph.organization_id,
        team_id=graph.team_id,
    )
    if not new_webhook:
        raise InvalidInputError(f"Could not set up webhook: {feedback}")

    return await db.create_preset(
        user_id=user_id,
        preset=models.LibraryAgentPresetCreatable(
            graph_id=graph.id,
            graph_version=graph.version,
            name=name,
            description=description,
            inputs=trigger_config_with_credentials,
            credentials=agent_credentials,
            is_active=True,
        ),
        webhook_id=new_webhook.id,
        # A trigger on an expert-installed workflow fires as the expert's
        # work: unique (user, graph) → expert matches keep the attribution.
        expert_id=await experts_db.resolve_expert_for_graph(user_id, graph.id),
    )

View on GitHub (pinned to 9c8bb5550f)

Solutions

  1. Read the embedded {feedback} — it is the provider's own rejection message and names the exact problem.
  2. Reconnect the provider credentials and pass fresh ones in agent_credentials.
  3. Validate trigger_config keys against the webhook block's input schema before submission.
  4. If feedback indicates provider outage/rate limit, back off and retry rather than re-submitting immediately.

Example fix

# before
await setup_triggered_preset(user_id=uid, graph_id=gid, graph_version=v, name=n, description=d, trigger_config=cfg, agent_credentials=creds)
# after
try:
    await setup_triggered_preset(user_id=uid, graph_id=gid, graph_version=v, name=n, description=d, trigger_config=cfg, agent_credentials=creds)
except InvalidInputError as e:
    if 'expired' in str(e):
        creds = await refresh_provider_credentials(uid)
        return await setup_triggered_preset(user_id=uid, graph_id=gid, graph_version=v, name=n, description=d, trigger_config=cfg, agent_credentials=creds)
    raise
Defensive patterns

Strategy: try-catch

Try / catch

try:
    await setup_triggered_preset(...)
except InvalidInputError as e:
    if 'expired' in str(e).lower():
        creds = await refresh_provider_credentials(uid)
        return await setup_triggered_preset(..., agent_credentials=creds)
    raise TriggerRejected(str(e)) from e

Prevention

When it happens

Trigger: setup-trigger with trigger_config values the provider rejects (invalid event names, malformed URLs); missing or expired provider credentials for the webhook block; provider API down or rate-limiting; credentials supplied for the wrong provider.

Common situations: Expired third-party OAuth token for the trigger block; provider changed required config fields; org-level integration not enabled; webhook provider secret not configured in the backend environment.

Related errors


AI-assisted analysis of Significant-Gravitas/AutoGPT@9c8bb5550f (2026-08-14). Data as JSON: /api/errors/5dd41bc4f73f527d. Report an issue: GitHub.