Troubleshooting Upload Failures
Upload failures in TestApp.io typically fall into three stages: errors caught before the upload begins, interruptions during transfer, and processing failures after the file is received. This guide walks through each stage with specific error messages and fixes.
Stage 1 — Pre-Upload Errors
These errors are caught immediately and displayed before any file transfer starts.
Missing API Token or App ID
If the CLI reports that your credentials are invalid or missing:
- Log in to portal.testapp.io.
- Go to Settings → API Credentials.
- Copy your API Token and App ID.
- Update your workflow config or CI/CD environment variables with the correct values.
File Not Found
The CLI reports it cannot locate the file at the specified path. To resolve:
- Verify the file path in your workflow config points to the actual built artifact (IPA or APK).
- In CI/CD pipelines, confirm the path is relative to the workspace root.
- Confirm the build step produces the file at the expected location before the upload step runs.
File Exceeds Plan Size Limit
Your file is larger than the upload size allowed on your current plan. Options:
- Archive older releases to free up space.
- Upgrade your plan at testapp.io/pricing.
Storage Quota Exceeded
Your team has reached its total storage limit. Options:
- Archive older releases from the portal.
- Upgrade your plan or connect external storage.
Bundle ID Mismatch
The bundle ID embedded in the IPA or APK must exactly match the bundle ID registered in TestApp.io. Check the app's settings in the portal and confirm your build configuration uses the same bundle identifier.
Duplicate Version Code
You cannot upload two releases with the same version code or build number. Increment the version code (Android) or build number (iOS) and rebuild before uploading.
IPA Signed with an App Store Certificate
Rebuild from Xcode using an Ad-Hoc or Enterprise export option.
Expired Provisioning Profile
Regenerate the profile in the Apple Developer portal, embed it in your Xcode project, and rebuild.
Simulator Build Uploaded
Stage 2 — Upload / Network Issues
Network Interruption
Ensure the upload is not being blocked by a firewall or proxy.
Uploading via the Portal — Keep the Tab Open
Proxy, VPN, or Corporate Firewall
Some corporate proxies and VPNs interfere with large file uploads. If uploads consistently stall or fail midway:
- Try uploading from a different network (e.g., mobile hotspot).
- Temporarily disable your VPN and retry.
- If the issue only occurs in CI/CD, check whether your build agent routes outbound traffic through a proxy and configure the CLI to bypass it if needed.
Stage 3 — Post-Upload Processing Failures
The file was received successfully, but processing failed. The release shows as 'failed' or never appears in the portal.
IPA: Provisioning Profile Not Found
The most common causes:
- A simulator build was uploaded instead of a device build.
- The IPA was re-signed with a third-party tool that altered the file structure.
IPA: Info.plist Not Found
The IPA is corrupt or is not a valid iOS app archive. Rebuild from scratch and upload again. If the error persists, verify that the exported IPA is a standard Apple IPA format (a ZIP containing a Payload/ directory).
APK: AndroidManifest.xml Not Found
The APK is corrupt or is not a valid Android package. Rebuild from your Android project and upload a freshly generated APK.
File Size Mismatch
Ensure no build process is writing to the same file during upload, and try again.
CI/CD Pipeline Tips
- Refresh your API token if your pipeline has been idle — tokens can be revoked from Settings → API Credentials in the portal.
- Fastlane users: keep the
testappioplugin up-to-date by runningbundle update fastlanein your project directory. - Correct App ID: Use the App ID for the specific app you are targeting. It is easy to accidentally use a staging app ID in a production pipeline or vice versa.
- Release notes length: the
--release_notesfield has a 1,200-character limit. Truncate longer notes before passing them to the CLI.
Related Articles
Need help? Contact us — we're happy to assist!