-
-
Notifications
You must be signed in to change notification settings - Fork 43
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Is your feature request related to a problem? Please describe.
We some times experience that JamfGroupUploader stalls for 20 minutes while waiting for Jamf to respond. Jamf ends up with responding with a 502 or a 504 error.
Describe the solution you'd like
Either decrease the timeout or add an option so we can define the timeout ourselves.
Describe alternatives you've considered
The alternative is just to wait, but 20 minutes can quickly add a long time if it happens several times.
Additional context
Here is an example of a 502:
JamfComputerGroupUploader: Matching dir: /Users/anka/actions-runner/_work/SE-AutoPkg/SE-AutoPkg/overrides
JamfComputerGroupUploader: File found at: /Users/anka/actions-runner/_work/SE-AutoPkg/SE-AutoPkg/overrides/_JAMF_TEMPLATES/Standard/JamfSmartGroupTemplate-NeedsUpdate-Regex.xml
JamfComputerGroupUploader: Checking for existing 'Smart Group - Software - Google - Google Chrome - Needs update' on ***
JamfComputerGroupUploader: Checking for existing authentication token
JamfComputerGroupUploader: Checking *** against ***
JamfComputerGroupUploader: URL and user for token matches current request
JamfComputerGroupUploader: No existing valid token found
JamfComputerGroupUploader: Getting an authentication token using OAuth
JamfComputerGroupUploader: Output file is: /tmp/jamf_upload_6nwemvyr/jamf_upload_gn1qzpwj.txt
JamfComputerGroupUploader: curl command: /usr/bin/curl --location --dump-header /tmp/jamf_upload_6nwemvyr/curl_headers_from_jamf_upload.txt ***/api/oauth/token --header User-Agent: JamfUploader/2025.3.5.0 --request POST --silent --show-error --header Content-Type: application/x-www-form-urlencoded --output /tmp/jamf_upload_6nwemvyr/jamf_upload_gn1qzpwj.txt --cookie-jar /tmp/jamf_upload_6nwemvyr/curl_cookies_from_jamf_upload.txt --cookie /tmp/jamf_upload_6nwemvyr/curl_cookies_from_jamf_upload.txt --data-urlencode client_id=*** --data-urlencode grant_type=client_credentials --data-urlencode client_secret=***
JamfComputerGroupUploader: Session token received
JamfComputerGroupUploader: Token: ***
JamfComputerGroupUploader: Expires: 2025-03-11T05:10:31.270452Z
JamfComputerGroupUploader: Output file is: /tmp/jamf_upload_6nwemvyr/jamf_upload_re3iwupb.txt
JamfComputerGroupUploader: curl command: /usr/bin/curl --location --dump-header /tmp/jamf_upload_6nwemvyr/curl_headers_from_jamf_upload.txt ***/JSSResource/computergroups --header User-Agent: JamfUploader/2025.3.5.0 --request GET --silent --show-error --header authorization: *** --header Accept: application/json --output /tmp/jamf_upload_6nwemvyr/jamf_upload_re3iwupb.txt --cookie-jar /tmp/jamf_upload_6nwemvyr/curl_cookies_from_jamf_upload.txt --cookie /tmp/jamf_upload_6nwemvyr/curl_cookies_from_jamf_upload.txt
JamfComputerGroupUploader: Computer group 'Smart Group - Software - Google - Google Chrome - Needs update' already exists: ID 3040
JamfComputerGroupUploader: Replacing existing Computer Group as 'replace_group' is set to true
JamfComputerGroupUploader: Assigned Google Chrome.app.app to JSS_INVENTORY_NAME key.
JamfComputerGroupUploader: Replacing any instances of 'computergroup_name' with 'Smart Group - Software - Google - Google Chrome - Needs update'
JamfComputerGroupUploader: Replacing any instances of 'APPNAME' with 'Google Chrome.app'
JamfComputerGroupUploader: Replacing any instances of 'version_regex' with '^(\d{4,}.*|[2-9]\d{2,}.*|1[4-9]\d{1,}.*|13[5-9].*|134\.\d{2,}.*|134\.[1-9].*|134\.0\.\d{5,}.*|134\.0\.[7-9]\d{3,}.*|134\.0\.6999.*|134\.0\.6998\.\d{3,}.*|134\.0\.6998\.9\d{1,}.*|134\.0\.6998\.89.*)$'
JamfComputerGroupUploader: Replacing any instances of 'version_regex_2' with '^$'
JamfComputerGroupUploader: Replacing any instances of 'version_regex_3' with '^$'
JamfComputerGroupUploader: Computer Group data:
JamfComputerGroupUploader: <computer_group>
<name>Smart Group - Software - Google - Google Chrome - Needs update</name>
<is_smart>true</is_smart>
<criteria>
<criterion>
<name>Application Title</name>
<priority>0</priority>
<and_or>and</and_or>
<search_type>is</search_type>
<value>Google Chrome.app</value>
</criterion>
<criterion>
<name>Application Version</name>
<priority>1</priority>
<and_or>and</and_or>
<search_type>does not match regex</search_type>
<value>^(\d{4,}.*|[2-9]\d{2,}.*|1[4-9]\d{1,}.*|13[5-9].*|134\.\d{2,}.*|134\.[1-9].*|134\.0\.\d{5,}.*|134\.0\.[7-9]\d{3,}.*|134\.0\.6999.*|134\.0\.6998\.\d{3,}.*|134\.0\.6998\.9\d{1,}.*|134\.0\.6998\.89.*)$</value>
</criterion>
<criterion>
<name>Application Version</name>
<priority>2</priority>
<and_or>and</and_or>
<search_type>does not match regex</search_type>
<value>^$</value>
</criterion>
<criterion>
<name>Application Version</name>
<priority>3</priority>
<and_or>and</and_or>
<search_type>does not match regex</search_type>
<value>^$</value>
</criterion>
</criteria>
</computer_group>
JamfComputerGroupUploader: Uploading Computer Group...
JamfComputerGroupUploader: Computer Group upload attempt 1
JamfComputerGroupUploader: Output file is: /tmp/jamf_upload_6nwemvyr/jamf_upload_7s6dtlqq.txt
JamfComputerGroupUploader: curl command: /usr/bin/curl --location --dump-header /tmp/jamf_upload_6nwemvyr/curl_headers_from_jamf_upload.txt ***/JSSResource/computergroups/id/3040 --header User-Agent: JamfUploader/2025.3.5.0 --request PUT --silent --show-error --header authorization: *** --upload-file /tmp/jamf_upload_6nwemvyr/jamf_upload_ucpxaso_.txt --header Content-type: application/xml --output /tmp/jamf_upload_6nwemvyr/jamf_upload_7s6dtlqq.txt --cookie-jar /tmp/jamf_upload_6nwemvyr/curl_cookies_from_jamf_upload.txt --cookie /tmp/jamf_upload_6nwemvyr/curl_cookies_from_jamf_upload.txt
JamfComputerGroupUploader: HTTP response: 502
JamfComputerGroupUploader: API response:
JamfComputerGroupUploader: <html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
</body>
</html>
Traceback (most recent call last):
File "/Library/AutoPkg/autopkglib/__init__.py", line 840, in process
self.env = processor.process()
File "/Library/AutoPkg/autopkglib/__init__.py", line 626, in process
self.main()
File "/Users/anka/Library/AutoPkg/RecipeRepos/com.github.autopkg.grahampugh-recipes/JamfUploaderProcessors/JamfComputerGroupUploader.py", line 102, in main
self.execute()
File "/Users/anka/Library/AutoPkg/RecipeRepos/com.github.autopkg.grahampugh-recipes/JamfUploaderProcessors/JamfUploaderLib/JamfComputerGroupUploaderBase.py", line 193, in execute
self.upload_computergroup(
File "/Users/anka/Library/AutoPkg/RecipeRepos/com.github.autopkg.grahampugh-recipes/JamfUploaderProcessors/JamfUploaderLib/JamfComputerGroupUploaderBase.py", line 109, in upload_computergroup
self.status_check(r, "Computer Group", computergroup_name, request)
File "/Users/anka/Library/AutoPkg/RecipeRepos/com.github.autopkg.grahampugh-recipes/JamfUploaderProcessors/JamfUploaderLib/JamfUploaderBase.py", line 591, in status_check
raise ProcessorError(
autopkglib.ProcessorError: ERROR: Computer Group 'Smart Group - Software - Google - Google Chrome - Needs update' update failed - status code 502
File "/Library/AutoPkg/autopkglib/__init__.py", line 840, in process
self.env = processor.process()
Receipt written to /Users/anka/Library/AutoPkg/Cache/com.github.REDACTED.recipes.override.GoogleChrome/receipts/GoogleChrome.override.recipe-receipt-20250310-222724.plist
The following recipes failed:
overrides/Google-Google_Chrome/GoogleChrome.override.recipe.yaml
Error in com.github.REDACTED.recipes.override.GoogleChrome: Processor: com.github.grahampugh.jamf-upload.processors/JamfComputerGroupUploader: Error: ERROR: Computer Group 'Smart Group - Software - Google - Google Chrome - Needs update' update failed - status code 502
And a 504
com.github.grahampugh.jamf-upload.processors/JamfComputerGroupUploader
{'Input': {'CLIENT_ID': '***',
'CLIENT_SECRET': '***',
'JSS_URL': '***',
'computergroup_name': 'Smart Group - Software - Microsoft - '
'Microsoft Defender - Needs update',
'computergroup_template': 'JamfSmartGroupTemplate-NeedsUpdate-Regex.xml',
'replace_group': 'true',
'sleep': '3'}}
JamfComputerGroupUploader: Matching dir: /Users/anka/actions-runner/_work/SE-AutoPkg/SE-AutoPkg/overrides
JamfComputerGroupUploader: File found at: /Users/anka/actions-runner/_work/SE-AutoPkg/SE-AutoPkg/overrides/_JAMF_TEMPLATES/Standard/JamfSmartGroupTemplate-NeedsUpdate-Regex.xml
JamfComputerGroupUploader: Checking for existing 'Smart Group - Software - Microsoft - Microsoft Defender - Needs update' on ***
JamfComputerGroupUploader: Checking for existing authentication token
JamfComputerGroupUploader: Checking *** against ***
JamfComputerGroupUploader: URL and user for token matches current request
JamfComputerGroupUploader: No existing valid token found
JamfComputerGroupUploader: Getting an authentication token using OAuth
JamfComputerGroupUploader: Output file is: /tmp/jamf_upload_kh8u4ll_/jamf_upload_akkkehi5.txt
JamfComputerGroupUploader: curl command: /usr/bin/curl --location --dump-header /tmp/jamf_upload_kh8u4ll_/curl_headers_from_jamf_upload.txt ***/api/oauth/token --header User-Agent: JamfUploader/2025.3.5.0 --request POST --silent --show-error --header Content-Type: application/x-www-form-urlencoded --output /tmp/jamf_upload_kh8u4ll_/jamf_upload_akkkehi5.txt --cookie-jar /tmp/jamf_upload_kh8u4ll_/curl_cookies_from_jamf_upload.txt --cookie /tmp/jamf_upload_kh8u4ll_/curl_cookies_from_jamf_upload.txt --data-urlencode client_id=*** --data-urlencode grant_type=client_credentials --data-urlencode client_secret=***
JamfComputerGroupUploader: Session token received
JamfComputerGroupUploader: Token: ***
JamfComputerGroupUploader: Expires: 2025-03-11T06:54:05.462586Z
JamfComputerGroupUploader: Output file is: /tmp/jamf_upload_kh8u4ll_/jamf_upload_5yuqr3pb.txt
JamfComputerGroupUploader: curl command: /usr/bin/curl --location --dump-header /tmp/jamf_upload_kh8u4ll_/curl_headers_from_jamf_upload.txt ***/JSSResource/computergroups --header User-Agent: JamfUploader/2025.3.5.0 --request GET --silent --show-error --header authorization: *** --header Accept: application/json --output /tmp/jamf_upload_kh8u4ll_/jamf_upload_5yuqr3pb.txt --cookie-jar /tmp/jamf_upload_kh8u4ll_/curl_cookies_from_jamf_upload.txt --cookie /tmp/jamf_upload_kh8u4ll_/curl_cookies_from_jamf_upload.txt
JamfComputerGroupUploader: Computer group 'Smart Group - Software - Microsoft - Microsoft Defender - Needs update' already exists: ID 2771
JamfComputerGroupUploader: Replacing existing Computer Group as 'replace_group' is set to true
JamfComputerGroupUploader: Assigned Microsoft Defender.app.app to JSS_INVENTORY_NAME key.
JamfComputerGroupUploader: Replacing any instances of 'computergroup_name' with 'Smart Group - Software - Microsoft - Microsoft Defender - Needs update'
JamfComputerGroupUploader: Replacing any instances of 'APPNAME' with 'Microsoft Defender.app'
JamfComputerGroupUploader: Replacing any instances of 'version_regex' with '^(\d{4,}.*|[2-9]\d{2,}.*|1[1-9]\d{1,}.*|10[2-9].*|101\.\d{6,}.*|101\.[3-9]\d{4,}.*|101\.2[6-9]\d{3,}.*|101\.25[1-9]\d{2,}.*|101\.250[2-9]\d{1,}.*|101\.2501[3-9].*)$'
JamfComputerGroupUploader: Replacing any instances of 'version_regex_2' with '^(101\.25012\.\d{5,}.*|101\.25012\.[1-9]\d{3,}.*|101\.25012\.0[1-9]\d{2,}.*|101\.25012\.00[1-9]\d{1,}.*|101\.25012\.0009.*|101\.25012\.0008.*)$'
JamfComputerGroupUploader: Replacing any instances of 'version_regex_3' with '^$'
JamfComputerGroupUploader: Computer Group data:
JamfComputerGroupUploader: <computer_group>
<name>Smart Group - Software - Microsoft - Microsoft Defender - Needs update</name>
<is_smart>true</is_smart>
<criteria>
<criterion>
<name>Application Title</name>
<priority>0</priority>
<and_or>and</and_or>
<search_type>is</search_type>
<value>Microsoft Defender.app</value>
</criterion>
<criterion>
<name>Application Version</name>
<priority>1</priority>
<and_or>and</and_or>
<search_type>does not match regex</search_type>
<value>^(\d{4,}.*|[2-9]\d{2,}.*|1[1-9]\d{1,}.*|10[2-9].*|101\.\d{6,}.*|101\.[3-9]\d{4,}.*|101\.2[6-9]\d{3,}.*|101\.25[1-9]\d{2,}.*|101\.250[2-9]\d{1,}.*|101\.2501[3-9].*)$</value>
</criterion>
<criterion>
<name>Application Version</name>
<priority>2</priority>
<and_or>and</and_or>
<search_type>does not match regex</search_type>
<value>^(101\.25012\.\d{5,}.*|101\.25012\.[1-9]\d{3,}.*|101\.25012\.0[1-9]\d{2,}.*|101\.25012\.00[1-9]\d{1,}.*|101\.25012\.0009.*|101\.25012\.0008.*)$</value>
</criterion>
<criterion>
<name>Application Version</name>
<priority>3</priority>
<and_or>and</and_or>
<search_type>does not match regex</search_type>
<value>^$</value>
</criterion>
</criteria>
</computer_group>
JamfComputerGroupUploader: Uploading Computer Group...
JamfComputerGroupUploader: Computer Group upload attempt 1
JamfComputerGroupUploader: Output file is: /tmp/jamf_upload_kh8u4ll_/jamf_upload_nie5on8f.txt
JamfComputerGroupUploader: curl command: /usr/bin/curl --location --dump-header /tmp/jamf_upload_kh8u4ll_/curl_headers_from_jamf_upload.txt ***/JSSResource/computergroups/id/2771 --header User-Agent: JamfUploader/2025.3.5.0 --request PUT --silent --show-error --header authorization: *** --upload-file /tmp/jamf_upload_kh8u4ll_/jamf_upload_fbavhhku.txt --header Content-type: application/xml --output /tmp/jamf_upload_kh8u4ll_/jamf_upload_nie5on8f.txt --cookie-jar /tmp/jamf_upload_kh8u4ll_/curl_cookies_from_jamf_upload.txt --cookie /tmp/jamf_upload_kh8u4ll_/curl_cookies_from_jamf_upload.txt
JamfComputerGroupUploader: HTTP response: 504
JamfComputerGroupUploader: API response:
JamfComputerGroupUploader: <html>
<head><title>504 Gateway Time-out</title></head>
<body>
<center><h1>504 Gateway Time-out</h1></center>
</body>
</html>
Traceback (most recent call last):
File "/Library/AutoPkg/autopkglib/__init__.py", line 840, in process
self.env = processor.process()
File "/Library/AutoPkg/autopkglib/__init__.py", line 626, in process
self.main()
File "/Users/anka/Library/AutoPkg/RecipeRepos/com.github.autopkg.grahampugh-recipes/JamfUploaderProcessors/JamfComputerGroupUploader.py", line 102, in main
self.execute()
File "/Users/anka/Library/AutoPkg/RecipeRepos/com.github.autopkg.grahampugh-recipes/JamfUploaderProcessors/JamfUploaderLib/JamfComputerGroupUploaderBase.py", line 193, in execute
self.upload_computergroup(
File "/Users/anka/Library/AutoPkg/RecipeRepos/com.github.autopkg.grahampugh-recipes/JamfUploaderProcessors/JamfUploaderLib/JamfComputerGroupUploaderBase.py", line 109, in upload_computergroup
self.status_check(r, "Computer Group", computergroup_name, request)
File "/Users/anka/Library/AutoPkg/RecipeRepos/com.github.autopkg.grahampugh-recipes/JamfUploaderProcessors/JamfUploaderLib/JamfUploaderBase.py", line 591, in status_check
raise ProcessorError(
autopkglib.ProcessorError: ERROR: Computer Group 'Smart Group - Software - Microsoft - Microsoft Defender - Needs update' update failed - status code 504
File "/Library/AutoPkg/autopkglib/__init__.py", line 840, in process
self.env = processor.process()
Receipt written to /Users/anka/Library/AutoPkg/Cache/com.github.REDACTED.recipes.override.MicrosoftDefender/receipts/MicrosoftDefender.override.recipe-receipt-20250311-001306.plist
The following recipes failed:
overrides/Microsoft-MicrosoftDefender/MicrosoftDefender.override.recipe.yaml
Error in com.github.REDACTED.recipes.override.MicrosoftDefender: Processor: com.github.grahampugh.jamf-upload.processors/JamfComputerGroupUploader: Error: ERROR: Computer Group 'Smart Group - Software - Microsoft - Microsoft Defender - Needs update' update failed - status code 504
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request