TestFilght updates to previous build Version automatically

Hello,

I’d like to share an issue we recently experienced with TestFlight and ask whether this behavior is expected.

Environment

  • App version string: 1.0.0

  • Multiple builds uploaded via CI/CD

  • Both external TestFlight testing and internal CI builds exist

  • Testers had automatic updates enabled in TestFlight

What happened

  1. We uploaded build 1.0.0 (2601161653) and assigned it to an external TestFlight group.

Testers installed this build and were testing normally.

  1. Later, we uploaded a newer build 1.0.0 (5) and reassigned the same external testers to this build.

Testers successfully updated to 1.0.0 (5) and continued testing.

  1. After some time (without any manual action from testers), testers received a system notification saying that:

    • “The App has been updated. Version 1.0.0 (2601161653) was automatically downloaded and installed.”
  2. When opening TestFlight, the app showed 1.0.0 (5) again as available for update, meaning the device had already been rolled back to 1.0.0 (2601161653).

Additional context

  • There are many archived builds in App Store Connect due to CI/CD testing.

  • Some CI builds share the same version string but differ only in build number.

  • External test groups were only explicitly assigned to build 1.0.0 (5) at the time of the rollback.

  • Build 2601161653 did not have any external test group assigned at that moment.

  • No App Store release or metadata changes occurred during this time.

Questions

  1. If a tester’s currently installed build becomes temporarily unavailable (e.g. due to eligibility, internal status changes, or TestFlight processing),

does TestFlight automatically fall back to a previously approved build?

  1. Is this automatic rollback behavior an intended part of TestFlight’s build availability logic, especially when multiple builds with the same version string exist?

  2. Can frequent CI/CD uploads (without consistent external group assignment) influence which build TestFlight considers “eligible” or “latest” for testers?

Summary

From our observation, it appears that when the currently tested build temporarily lost eligibility, TestFlight automatically installed a previous build that was still considered available, even though a newer build existed.

We’d appreciate any clarification on whether this behavior is expected or if there are best practices to avoid this situation when using CI/CD with TestFlight.

Thank you.

TestFilght updates to previous build Version automatically
 
 
Q