From c7a1ae8f3809072c54687df52fbe40819fa09be8 Mon Sep 17 00:00:00 2001 From: Dirk Julich Date: Thu, 23 Apr 2026 18:31:19 +0200 Subject: [PATCH] Capture attrs keys before _build_mock_obj mutates them _build_mock_obj() pops pseudo-fields (limit, scm_branch, job_tags, etc.) from attrs. Computing requested_prompt_fields after the pop would miss those fields and skip their ask_on_launch validation. Co-Authored-By: Claude Opus 4.6 --- awx/api/serializers.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 102be782f0..74b536b108 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -4142,10 +4142,12 @@ class LaunchConfigurationBaseSerializer(BaseSerializer): attrs['extra_data'][key] = db_extra_data[key] # Build unsaved version of this config, use it to detect prompts errors + # Capture keys before _build_mock_obj pops pseudo-fields from attrs + incoming_attr_keys = set(attrs.keys()) mock_obj = self._build_mock_obj(attrs) ask_mapping_keys = set(ujt.get_ask_mapping().keys()) - requested_prompt_fields = set(attrs.keys()) & ask_mapping_keys - if 'extra_data' in attrs: + requested_prompt_fields = incoming_attr_keys & ask_mapping_keys + if 'extra_data' in incoming_attr_keys: requested_prompt_fields.add('extra_vars') # prompts_dict() pulls persisted M2M state (labels, credentials,