Overview
This article addresses a connection failure when integrating MOVEit Automation's native S3 host with the Aembit Agent Proxy. This failure stems from a protocol mismatch, where MOVEit sends HTTP/1.1 requests that the Aembit Agent Proxy, expecting HTTP/2, cannot process. It usually manifests as HTTP/1.1 serve connection failed: invalid HTTP method parsed in the Agent Proxy logs and generic network errors in the MOVEit console.
Relates To
- Deployment Type: Windows Server
- Aembit Component: Aembit Agent Proxy
- Feature: Workload Identity
- Resources/Tooling: MOVEit Automation, PowerShell
- Configuration: MOVEit Host Configuration
Cause
The root cause is an HTTP protocol incompatibility between MOVEit Automation's native S3 client and the Aembit Agent Proxy.
- Scenario 1: HTTP/1.1 Protocol Mismatch The Aembit Agent Proxy requires HTTP/2 for proxied connections. MOVEit Automation's native S3 host integration is built on libraries that exclusively use HTTP/1.1. When MOVEit attempts to connect to AWS S3 through the proxy, it sends an HTTP/1.1 request. The Agent Proxy cannot parse this request, resulting in the connection being dropped and the
invalid HTTP method parsederror being logged.
Solution
Since MOVEit Automation's native S3 host does not support HTTP/2, it is incompatible with the Aembit Agent Proxy. The solution is to use a MOVEit Custom Script task to perform the S3 operation via PowerShell, which allows for greater control over the HTTP client and proxy behavior.
- In the MOVEit Automation Admin console, navigate to the Scripts section and create a new custom script.
- Use a PowerShell script that performs the required S3 action (e.g., file download) and explicitly sets the Aembit Agent Proxy. The script can read parameters from the MOVEit task for dynamic operation.
Paste the following PowerShell code into the custom script. This example demonstrates downloading an S3 object.
[SIMPLIFIED TEMPLATE] # 1. Retrieve task parameters from MOVEit $Bucket, $Region, $Key, $OutFile = Get-MOVEit-Task-Parameters # 2. Define connection settings $ProxyUrl = "http://localhost:8000" $S3_URL = "https://{Bucket}.s3.{Region}./{Key}" # 3. Configure security protocols (e.g., TLS 1.2) Configure-TLS-Settings # Optional: Bypass certificate validation for local proxy Configure-Server-Certificate-Validation-Callback # 4. Execute download with proxy and error handling try { # Create a web client and configure it to use the Aembit Agent Proxy $WebClient = New-WebClient-With-Proxy($ProxyUrl) # Download the file from S3 $WebClient.DownloadFile($S3_URL, $OutFile) # Verify download and log success Verify-File-Exists($OutFile) Log-MOVEit-Success("File downloaded successfully.") } catch { # Log any errors and re-throw to fail the task Log-MOVEit-Error("Download failed: " + $_.Exception.Message) throw } finally { # Clean up resources $WebClient.Dispose() }- Create a MOVEit Task that runs the newly created custom script. Configure the task with the necessary parameters (
Bucket,Region,Key,OutFile) that the script will consume.
Verify Solution
To confirm the resolution, execute the MOVEit task that runs the custom PowerShell script. The task should complete successfully. Check the MOVEit task logs for the "SUCCESS" message generated by the script. Additionally, monitor the Aembit Agent Proxy logs to ensure that the HTTP/1.1 serve connection failed: invalid HTTP method parsed warnings are no longer present during the task's execution.