{"record":{"id":"0d69fb2c4bfa8d32","repo":"Significant-Gravitas/AutoGPT","slug":"could-not-update-trigger-configuration-feedback","errorCode":null,"errorMessage":"Could not update trigger configuration: {feedback}","messagePattern":"Could not update trigger configuration: (.+?)","errorType":"exception","errorClass":"InvalidInputError","httpStatus":400,"severity":"error","filePath":"autogpt_platform/backend/backend/api/features/library/triggers.py","lineNumber":160,"sourceCode":"                **(\n                    make_node_credentials_input_map(graph, credentials).get(\n                        trigger_node.id\n                    )\n                    or {}\n                ),\n            }\n            new_webhook, feedback = await setup_webhook_for_block(\n                user_id=user_id,\n                trigger_block=trigger_node.block,\n                trigger_config=trigger_config_with_credentials,\n                for_preset_id=preset_id,\n                # Resource-follows-parent: webhook lives in the graph's org/team.\n                organization_id=graph.organization_id,\n                team_id=graph.team_id,\n            )\n            trigger_inputs_updated = True\n            if not new_webhook:\n                raise InvalidInputError(\n                    f\"Could not update trigger configuration: {feedback}\"\n                )\n\n    updated = await db.update_preset(\n        user_id=user_id,\n        preset_id=preset_id,\n        inputs=inputs,\n        credentials=credentials,\n        name=name,\n        description=description,\n        is_active=is_active,\n    )\n\n    if trigger_inputs_updated:\n        new_webhook_id = new_webhook.id if new_webhook else None\n        updated = await db.set_preset_webhook(user_id, preset_id, new_webhook_id)\n        # Clean up the old webhook if it's no longer referenced.\n        if current.webhook_id and current.webhook_id != new_webhook_id:","sourceCodeStart":142,"sourceCodeEnd":178,"githubUrl":"https://github.com/Significant-Gravitas/AutoGPT/blob/9c8bb5550f446ba5d3046b78896578742495b3cf/autogpt_platform/backend/backend/api/features/library/triggers.py#L142-L178","documentation":"InvalidInputError raised by update_preset_with_webhook_reconfiguration when setup_webhook_for_block fails during a trigger reconfiguration (inputs+credentials both provided and the graph has a webhook node). The {feedback} embeds the webhook backend's rejection reason. Important ordering detail: trigger_inputs_updated is set True before the raise, and the subsequent db.update_preset may or may not run depending on the caller's error handling — the operation is aborted before persisting the update.","triggerScenarios":"PATCH /presets/{id} with new trigger inputs the provider rejects (invalid event filter, malformed payload config); expired provider credentials passed in credentials; provider API outage during re-registration.","commonSituations":"User edits a webhook preset's trigger inputs with invalid values; credentials rotated since the preset was created; provider deprecated a config field the old preset used.","solutions":["Read {feedback} — it is the provider's specific rejection message.","Validate the new inputs against the webhook block's input schema before PATCHing.","Refresh provider credentials and retry with both inputs and credentials set.","If the provider is temporarily failing, retry later; the preset's old config remains intact since the update aborted."],"exampleFix":"# before\nawait update_preset_with_webhook_reconfiguration(user_id=uid, preset_id=pid, inputs=inp, credentials=creds)\n# after\nvalidate_against_block_schema(trigger_node_input_schema, inp)  # raises before touching provider\nawait update_preset_with_webhook_reconfiguration(user_id=uid, preset_id=pid, inputs=inp, credentials=creds)","handlingStrategy":"validation","validationCode":"schema = trigger_node.input_schema  # JSON schema of webhook block\njsonschema.validate(instance=new_inputs, schema=schema)","typeGuard":null,"tryCatchPattern":"try:\n    await update_preset_with_webhook_reconfiguration(...)\nexcept InvalidInputError as e:\n    raise TriggerConfigRejected(f'Provider rejected config: {e}') from e","preventionTips":["Validate new trigger inputs against the block's schema before PATCH.","The preset's old config survives an aborted reconfiguration — safe to correct and resubmit.","Refresh provider credentials alongside config changes."],"tags":["invalid-input","webhooks","presets","update"],"backgroundTag":null,"analyzedSha":"9c8bb5550f446ba5d3046b78896578742495b3cf","analyzedAt":"2026-08-14T17:17:21.957Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}