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:

  1. Log in to portal.testapp.io.
  2. Go to Settings → API Credentials.
  3. Copy your API Token and App ID.
  4. 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:

  1. Verify the file path in your workflow config points to the actual built artifact (IPA or APK).
  2. In CI/CD pipelines, confirm the path is relative to the workspace root.
  3. Confirm the build step produces the file at the expected location before the upload step runs.

File Exceeds Plan Size Limit

🛑
Error: "The maximum release upload size for this team's plan is X"

Your file is larger than the upload size allowed on your current plan. Options:

Storage Quota Exceeded

🛑
Error: "This release will exceed your team's current storage."

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

🛑
Error: "The bundle identifier does not match"

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

🛑
Error: "Version code already exists"

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

⚠️
App Store distribution certificates are not supported. Your IPA must be signed with an Ad-Hoc, Enterprise (In-House), or Development provisioning profile.

Rebuild from Xcode using an Ad-Hoc or Enterprise export option.

Expired Provisioning Profile

⚠️
Error: "provisioning profile expired" — The provisioning profile embedded in your IPA has passed its expiry date.

Regenerate the profile in the Apple Developer portal, embed it in your Xcode project, and rebuild.

Simulator Build Uploaded

⚠️
Simulator builds do not contain an embedded provisioning profile and cannot be processed by TestApp.io. Always archive a device build in Xcode (Product → Archive) and export with a device-compatible signing profile.

Stage 2 — Upload / Network Issues

Network Interruption

💡
The CLI automatically retries failed uploads up to 3 times. If all retries fail, check your internet connection and restart the upload from the beginning.

Ensure the upload is not being blocked by a firewall or proxy.

Uploading via the Portal — Keep the Tab Open

⚠️
When uploading through the TestApp.io web portal, keep the upload tab open and active until the release appears in your app's release list. Navigating away or closing the tab will cancel the in-progress upload.

Proxy, VPN, or Corporate Firewall

Some corporate proxies and VPNs interfere with large file uploads. If uploads consistently stall or fail midway:

  1. Try uploading from a different network (e.g., mobile hotspot).
  2. Temporarily disable your VPN and retry.
  3. 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.
💡
Fix: Rebuild from Xcode using Product → Archive, then export with a device-compatible signing profile (Ad-Hoc, Enterprise, or Development).

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

⚠️
The file size declared at the start of the upload did not match the size of the data received. This usually happens if the file was modified or replaced on disk while the upload was in progress.

Ensure no build process is writing to the same file during upload, and try again.

CI/CD Pipeline Tips

💡
These tips apply to all CI/CD integrations: GitHub Actions, Bitrise, CircleCI, Fastlane, and others.
  • 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 testappio plugin up-to-date by running bundle update fastlane in 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_notes field has a 1,200-character limit. Truncate longer notes before passing them to the CLI.


Need help? Contact us — we're happy to assist!