"Signature check of Main Upgrade Bundle(mub) file failed" during automated NSX upgrade via API/Ansible.
search cancel

"Signature check of Main Upgrade Bundle(mub) file failed" during automated NSX upgrade via API/Ansible.

book

Article ID: 432051

calendar_today

Updated On:

Products

VMware NSX

Issue/Introduction

 

  • We are attempting to automate the VMware NSX upgrade process using tools such as curl or Ansible modules.

  • The Main Upgrade Bundle (MUB) file is being transferred from a remote Linux machine or copied from within a containerized environment.

  • The upload process appears to complete, but the NSX Manager rejects the file and displays the following error message: "Signature check of Main Upgrade Bundle(mub) file failed. Tampering with downloaded bundle is not supported"

  • Uploading the exact same MUB file manually via the UI from a local system succeeds without errors.

  • The issue is intermittent; subsequent attempts to upload the same file may succeed.

 

Environment

VMware NSX

Cause

This error occurs when the NSX Manager's strict cryptographic hash validation of the uploaded MUB file fails.

When transferring large upgrade bundles across networks via automated scripts, especially when moving files into containers or across remote Linux jump boxes, intermittent packet loss, network latency, or incomplete copy operations can result in a silently truncated or slightly corrupted file. Because the payload's checksum no longer matches the expected signature, the NSX Manager proactively rejects the file as "tampered" to prevent a corrupted upgrade.

Resolution

Because the source file is fundamentally healthy (proven by the successful local upload), this is an intermittent environmental transit issue.

Immediate Workaround:

  • Re-initiate the upload process. A fresh, uninterrupted transfer of the MUB file will typically bypass the intermittent network or copy corruption and succeed.

Best Practices for Automation: To prevent this issue in automated workflows, implement the following guardrails:

  1. Before the Ansible playbook or curl script initiates the API upload to the NSX Manager, add a pre-task to run a checksum validation (e.g., md5sum or sha256sum) on the MUB file residing on the container/remote Linux machine. Compare this against the official VMware checksum to ensure the file was completely copied to the jump box before transit.

  2. Add a retry-loop in your automation script that catches the specific signature failure error and automatically re-attempts the upload.