fastlane: Deliver from Travis CI is timing out

New Issue Checklist

Issue Description

Deliver is failing from Travis CI consistently. This is the read out that happens right before the hang:

Making sure the latest version on App Store Connect matches '5.8.1' from the ipa file...
[11:50:26]: Successfully set the version to '5.8.1'
[11:50:27]: Loading './fastlane/metadata/en-US/description.txt'...
[11:50:27]: Loading './fastlane/metadata/en-US/keywords.txt'...
[11:50:27]: Loading './fastlane/metadata/en-US/release_notes.txt'...
[11:50:27]: Loading './fastlane/metadata/en-US/support_url.txt'...
[11:50:27]: Loading './fastlane/metadata/en-US/marketing_url.txt'...
[11:50:27]: Loading './fastlane/metadata/en-US/promotional_text.txt'...
[11:50:27]: Loading './fastlane/metadata/en-US/name.txt'...
[11:50:27]: Loading './fastlane/metadata/en-US/subtitle.txt'...
[11:50:27]: Loading './fastlane/metadata/en-US/privacy_url.txt'...
[11:50:27]: Loading './fastlane/metadata/sv/description.txt'...
[11:50:27]: Loading './fastlane/metadata/sv/keywords.txt'...
[11:50:27]: Loading './fastlane/metadata/sv/release_notes.txt'...
[11:50:27]: Loading './fastlane/metadata/sv/support_url.txt'...
[11:50:27]: Loading './fastlane/metadata/sv/marketing_url.txt'...
[11:50:27]: Loading './fastlane/metadata/sv/promotional_text.txt'...
[11:50:27]: Loading './fastlane/metadata/sv/name.txt'...
[11:50:27]: Loading './fastlane/metadata/sv/subtitle.txt'...
[11:50:27]: Loading './fastlane/metadata/sv/privacy_url.txt'...
[11:50:27]: Loading './fastlane/metadata/copyright.txt'...
[11:50:27]: Loading './fastlane/metadata/primary_category.txt'...
[11:50:27]: Loading './fastlane/metadata/secondary_category.txt'...
[11:50:27]: Loading './fastlane/metadata/primary_first_sub_category.txt'...
[11:50:27]: Loading './fastlane/metadata/primary_second_sub_category.txt'...
[11:50:27]: Loading './fastlane/metadata/secondary_first_sub_category.txt'...
[11:50:27]: Loading './fastlane/metadata/secondary_second_sub_category.txt'...
[11:50:27]: Loading './fastlane/metadata/trade_representative_contact_information/trade_name.txt'...
[11:50:27]: Loading './fastlane/metadata/trade_representative_contact_information/first_name.txt'...
[11:50:27]: Loading './fastlane/metadata/trade_representative_contact_information/last_name.txt'...
[11:50:27]: Loading './fastlane/metadata/trade_representative_contact_information/address_line1.txt'...
[11:50:27]: Loading './fastlane/metadata/trade_representative_contact_information/address_line2.txt'...
[11:50:27]: Loading './fastlane/metadata/trade_representative_contact_information/address_line3.txt'...
[11:50:27]: Loading './fastlane/metadata/trade_representative_contact_information/city_name.txt'...
[11:50:27]: Loading './fastlane/metadata/trade_representative_contact_information/state.txt'...
[11:50:27]: Loading './fastlane/metadata/trade_representative_contact_information/country.txt'...
[11:50:27]: Loading './fastlane/metadata/trade_representative_contact_information/postal_code.txt'...
[11:50:27]: Loading './fastlane/metadata/trade_representative_contact_information/phone_number.txt'...
[11:50:27]: Loading './fastlane/metadata/trade_representative_contact_information/email_address.txt'...
[11:50:27]: Loading './fastlane/metadata/trade_representative_contact_information/is_displayed_on_app_store.txt'...
[11:50:27]: Loading './fastlane/metadata/review_information/first_name.txt'...
[11:50:27]: Loading './fastlane/metadata/review_information/last_name.txt'...
[11:50:27]: Loading './fastlane/metadata/review_information/phone_number.txt'...
[11:50:27]: Loading './fastlane/metadata/review_information/email_address.txt'...
[11:50:27]: Loading './fastlane/metadata/review_information/demo_user.txt'...
[11:50:27]: Loading './fastlane/metadata/review_information/demo_password.txt'...
[11:50:27]: Loading './fastlane/metadata/review_information/notes.txt'...
[11:50:28]: Activating languages en-US, sv...
[11:50:45]: Uploading metadata to App Store Connect
[11:50:47]: Successfully uploaded set of metadata to App Store Connect
[11:50:47]: Starting with the upload of screenshots...
[11:50:47]: Successfully uploaded screenshots to App Store Connect
[11:50:48]: Uploading app icon...
[11:50:51]: Uploading binary to App Store Connect
[11:50:53]: Going to upload updated app to App Store Connect
[11:50:53]: This might take a few minutes. Please don't interrupt the script.
No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.
Check the details on how to adjust your build configuration on: https://docs.travis-ci.com/user/common-build-problems/#Build-times-out-because-no-output-was-received
The build has been terminated

Old issue #2446

Travis says to add travis_wait before the command that will take awhile. Weird thing is we’ve been using Travis for delivery successfully for over a year and this step often takes longer than 10 mins. Maybe they’re being more strict. Any help would be appreciated.

Command executed
deliver(force: true,
            run_precheck_before_submit: true,
            submit_for_review: true,
            automatic_release: automatic,
            username: "mobile-team@betalo.se",
            submission_information: {
                  add_id_info_limits_tracking: true,
                  add_id_info_serves_ads: false,
                  add_id_info_tracks_action: true,
                  add_id_info_tracks_install: true,
                  add_id_info_uses_idfa: true,
                  content_rights_has_rights: true,
                  content_rights_contains_third_party_content: true,
                  export_compliance_platform: 'ios',
                  export_compliance_compliance_required: false,
                  export_compliance_encryption_updated: false,
                  export_compliance_app_type: nil,
                  export_compliance_uses_encryption: false,
                  export_compliance_is_exempt: false,
                  export_compliance_contains_third_party_cryptography: false,
                  export_compliance_contains_proprietary_cryptography: false,
                  export_compliance_available_on_french_store: false
                })
Complete output when running fastlane, including the stack trace and command used
+----------------------------------------------------------------------------+-----------------------------------------------------------+
|                                                        deliver 2.125.2 Summary                                                         |
+----------------------------------------------------------------------------+-----------------------------------------------------------+
| force                                                                      | true                                                      |
| run_precheck_before_submit                                                 | true                                                      |
| submit_for_review                                                          | true                                                      |
| automatic_release                                                          | true                                                      |
| username                                                                   | [secure]                                     |
| submission_information.add_id_info_limits_tracking                         | true                                                      |
| submission_information.add_id_info_serves_ads                              | false                                                     |
| submission_information.add_id_info_tracks_action                           | true                                                      |
| submission_information.add_id_info_tracks_install                          | true                                                      |
| submission_information.add_id_info_uses_idfa                               | true                                                      |
| submission_information.content_rights_has_rights                           | true                                                      |
| submission_information.content_rights_contains_third_party_content         | true                                                      |
| submission_information.export_compliance_platform                          | ios                                                       |
| submission_information.export_compliance_compliance_required               | false                                                     |
| submission_information.export_compliance_encryption_updated                | false                                                     |
| submission_information.export_compliance_uses_encryption                   | false                                                     |
| submission_information.export_compliance_is_exempt                         | false                                                     |
| submission_information.export_compliance_contains_third_party_cryptography | false                                                     |
| submission_information.export_compliance_contains_proprietary_cryptography | false                                                     |
| submission_information.export_compliance_available_on_french_store         | false                                                     |
| ipa                                                                        | /Users/travis/build/betalo-sweden/pfc-ios/pfc-ios/PFC.ipa |
| app_identifier                                                             | com.pfc.PFC                                               |
| screenshots_path                                                           | ./fastlane/screenshots                                    |
| metadata_path                                                              | ./fastlane/metadata                                       |
| app_version                                                                | 5.8.1                                                     |
| platform                                                                   | ios                                                       |
| edit_live                                                                  | false                                                     |
| use_live_version                                                           | false                                                     |
| skip_binary_upload                                                         | false                                                     |
| skip_screenshots                                                           | false                                                     |
| skip_metadata                                                              | false                                                     |
| skip_app_version_update                                                    | false                                                     |
| overwrite_screenshots                                                      | false                                                     |
| reject_if_possible                                                         | false                                                     |
| phased_release                                                             | false                                                     |
| reset_ratings                                                              | false                                                     |
| precheck_default_rule_level                                                | warn                                                      |
| individual_metadata_items                                                  | []                                                        |
| ignore_language_directory_validation                                       | false                                                     |
| precheck_include_in_app_purchases                                          | true                                                      |
+----------------------------------------------------------------------------+-----------------------------------------------------------+

Environment

 ### Stack
Key Value
OS 10.14.4
Ruby 2.3.1
Bundler? true
Git git version 2.20.1 (Apple Git-117)
Installation Source /usr/local/bin/fastlane
Host Mac OS X 10.14.4 (18E226)
Ruby Lib Dir /usr/local/Cellar/ruby/2.3.1_2/lib
OpenSSL Version OpenSSL 1.0.2j 26 Sep 2016
Is contained false
Is homebrew false
Is installed via Fabric.app false
Xcode Path /Applications/Xcode.app/Contents/Developer/
Xcode Version 10.2.1

System Locale

Variable Value
LANG en_US.UTF-8
LC_ALL
LANGUAGE

fastlane files:

`./fastlane/Fastfile`
default_platform :ios

platform :ios do
  before_all do |lane|

  	ENV["SLACK_URL"] = "
    skip_docs
    if lane != :runtests
      ensure_git_status_clean
      ensure_git_branch(branch: "develop|release|master|hotfix")
    end

  end

  # Public lanes
  desc "Run this lane to test your setup, follow orders!"
  lane :test_setup do |options|

    message = prompt(text: "What clever Slack message would you like to send to #mobile-events?")
     slack(
       message: message,
       channel: "#mobile-events"
     )
  end

  desc "Run this lane to update the README file poop"
  lane :update_docs do
    say "We are updating the read me file"
  end

  desc "sets build number of all beta targets to latest commit hash, commits the .plist changes on new branch and creates a PR\n
  options:\n
    bundle exec fastlane build_number_bump - will bump build number for all beta targets\n
    bundle exec fastlane build_number_bump target:PFCInternal - choose a specific target\n
    bundle exec fastlane build_number_bump skip_handler_plist <-- skips creating a branch and PR with the build number bump"
  lane :build_number_bump do |options|

    commit = last_git_commit
    abb_hash = commit[:abbreviated_commit_hash]

    target = options[:target]

    if target

      increment_build_number_in_plist(build_number: abb_hash, target: target)
    else
      targets = ['PFCInternal', 'PFCInternalProd']

      targets.each {
        |target|
        increment_build_number_in_plist(build_number: abb_hash, target: target)
      }
    end

    skip = options[:skip_handle_plist]
    if !skip
      branch = git_branch
      handle_plist(number:abb_hash, branch:branch)
    end

    abb_hash
  end

  desc "Builds all or a specific target and sends builds to crashlytics\n
  options:\n
    bundle exec fastlane beta_release_local\n
    bundle exec fastlane beta_release_local notify_betas:true <- notifies #ios-beta-test\n
    bundle exec fastlane beta_release_local test_group:ios-full-test notify_betas:true <- specifies the test group\n
    bundle exec fastlane beta_release_local emails:foo@bar.com,mom@dad.com <- will only send updates to these emails address (they need to be configured in Fabric)"
  lane :beta_release_local do |options|

    prebuild

    target = options[:target]
    emails = options[:emails]
    test_group = options[:test_group]

    build_and_release_betas(target: target, emails: emails, test_group: test_group, notify_betas: options[:notify_betas])
  end

  desc "Used only with App Deployer"
  lane :beta_release_travis do |options|

    setup_travis

    target = options[:target]

    build_number = build_number_bump(skip_handle_plist: true, target: target)
    sh "./push_changes.sh #{build_number}"

    emails = options[:emails]
    test_group = options[:test_group]

    build_and_release_betas(target: target, emails: emails, test_group: test_group, notify_betas: options[:notify_betas])
  end

  desc "Used to release builds to Testflight"
  lane :testflight_release_local do |options|

  	if options[:increment]
  		increment_build_number_in_plist(target: "PFC")
  	end
  	prebuild
  	match(type: "appstore",
          git_url: "https://#{ENV['GITHUB_TOKEN']}@github.com/betalo-sweden/ios-certificates.git",
          username: "mobile-team@betalo.se",
          app_identifier: "com.pfc.PFC")
  	gym(scheme: "PFC", export_method: "app-store", silent: true)
  	pilot(username: "mobile-team@betalo.se",
  		  app_identifier: "com.pfc.PFC",
  		  skip_waiting_for_build_processing: true)
  	upload_symbols_to_crashlytics
  end

  desc "Releases app to App Store\n
  options:\n
    bundle exec fastlane app_store_local\n
    bundle exec fastlane app_store_local dotag:true\n
    bundle exec fastlane app_store_local dotag:true automatic:true <- sets the release to automatic"
  lane :app_store_local do |options|

    ensure_git_branch(
      branch: 'master'
    )
    prebuild
    app_store(dotag: options[:dotag], automatic: options[:automatic])
  end

  desc "Used only with App Deployer"
  lane :app_store_travis do |options|

    setup_travis

    ensure_git_branch(
      branch: 'master'
    )

    app_store(dotag: options[:dotag], automatic: options[:automatic])
  end

  desc "Installs the necessary certs and provisioning profiles"
  lane :certificates do |options|

  	if options[:renew]
  		if options[:dev]
	  		match(type: "development",
	          app_identifier: ["com.pfc.PFCInternal", "com.pfc.PFCInternalProd", "com.pfc.PFCPreRelease"],
	          git_url: "https://github.com/betalo-sweden/ios-certificates",
	          force: true,
	          username: "mobile-team@betalo.se",
	          team_id: "")
  		end
  		if options[:appstore]
	    	match(type: "appstore",
	          app_identifier: ["com.pfc.PFC"],
	          git_url: "https://github.com/betalo-sweden/ios-certificates",
	          force: true,
	          username: "mobile-team@betalo.se",
	          team_id: "")
	    end
  	else
  		match(type: "development",
          app_identifier: ["com.pfc.PFCInternal", "com.pfc.PFCInternalProd", "com.pfc.PFCPreRelease"],
          git_url: "https://github.com/betalo-sweden/ios-certificates",
          readonly: true,
          username: "mobile-team@betalo.se",
          team_id: "")
    	match(type: "appstore",
          app_identifier: ["com.pfc.PFC"],
          git_url: "https://github.com/betalo-sweden/ios-certificates",
          readonly: true,
          username: "mobile-team@betalo.se",
          team_id: "")
  	end
  end

  desc "Runs tests"
  lane :runtests do
    scan(workspace: "PFC.xcworkspace",
         scheme: "PFCInternal",
         fail_build: true,
         clean: true,
         slack_only_on_failure: true,
         slack_channel: "@tablawabla")
  end

  desc "increments version number\n
  options:\n
    bundle exec fastlane version_number_bump bump_type:major|minor|patch"
  lane :version_number_bump do |options|

    current_version = get_app_store_version_number(bundle_id: "com.pfc.PFC")

    targets = ['PFC', 'PFCInternal', 'PFCInternalProd', 'PFCPreRelease']

    targets.each {
      |target|

      increment_version_number_in_plist(version_number: current_version, target: target)
      increment_version_number_in_plist(bump_type: options[:bump_type], target: target)
    }

    get_version_number_from_plist(target: 'PFC')
  end

  desc "updates dsyms on cr ashlytics"
  lane :refresh_dsyms do |options|

  	version = 'latest'
  	if options[:version]
  		version = options[:version]
  	end

	download_dsyms(username: "mobile-team@betalo.se",
				   app_identifier: "com.pfc.PFC",
				   version: version)
	upload_symbols_to_crashlytics
	clean_build_artifacts
  end

  # Private lanes
  private_lane :build_and_release_betas do |options|

    targets = ['PFCInternal', 'PFCInternalProd']

    target = options[:target]
    emails = options[:emails]
    test_group = options[:test_group]

    if target
      build_and_crashlytics(target: target, emails: emails, test_group: test_group)
      notify_slack(notify_betas: options[:notify_betas], target: target, emails: emails)
    else
      targets.each {
        |target|

        build_and_crashlytics(target: target, emails: emails, test_group: test_group)
        notify_slack(notify_betas: options[:notify_betas], target: target, emails: emails)
      }
    end
  end

  private_lane :prebuild do
    git_pull
    cocoapods
  end

  private_lane :build_and_crashlytics do |options|

    target = options[:target]
    emails = options[:emails]

    identifier = "com.pfc." + target

    match(type: "development",
          app_identifier: identifier,
          force_for_new_devices: true,
          readonly: false,
          git_url: "https://#{ENV['GITHUB_TOKEN']}@github.com/betalo-sweden/ios-certificates.git",
          username: "mobile-team@betalo.se")
    gym(scheme: target, export_method: "development", silent: true)

    test_group = "ios-feature-test"
    if options[:test_group]
      test_group = options[:test_group]
  	elsif target == "PFCInternalProd"
      test_group = "ios-full-test"
    end

    puts test_group
    puts emails

    if emails
      crashlytics(
        api_token: '',
        build_secret: '',
        emails: [emails],
        notifications: true,
        notes_path: './fastlane/crashlytics/release_notes.txt',
        debug: true
      )
    else
      crashlytics(
        api_token: '',
        build_secret: '',
        groups: [test_group],
        notifications: true,
        notes_path: './fastlane/crashlytics/release_notes.txt',
        debug: true
      )
    end
    upload_symbols_to_crashlytics
  end

  private_lane :notify_slack do |options|

    emails = options[:emails]
    target = options[:target]
    if !target
    	target = 'PFCInternal'
    end

    build = get_build_number_from_plist(target: target)
    message = "Successfully deployed build #{target} #{build} to Crashlytics"

    slack(message: message,
          channel: "@tablawabla")

    # only send success slack message to "ios_builds" if email is nil
    if !emails
    	slack(message: message)
    end
    if options[:notify_betas]
      slack(message: message,
            channel: "#ios-beta-test",
            default_payloads: [])
    end

  end

  private_lane :app_store do |options|

    if options[:dotag]
      tag_release
    end

    automatic = false
    if options[:automatic]
      automatic = options[:automatic]
    end

    match(type: "appstore",
          git_url: "https://#{ENV['GITHUB_TOKEN']}@github.com/betalo-sweden/ios-certificates.git",
          username: "mobile-team@betalo.se",
          app_identifier: "com.pfc.PFC")
    gym(scheme: "PFC", export_method: "app-store", silent: true)
    deliver(force: true,
            run_precheck_before_submit: true,
            submit_for_review: true,
            automatic_release: automatic,
            username: "mobile-team@betalo.se",
            submission_information: {
                  add_id_info_limits_tracking: true,
                  add_id_info_serves_ads: false,
                  add_id_info_tracks_action: true,
                  add_id_info_tracks_install: true,
                  add_id_info_uses_idfa: true,
                  content_rights_has_rights: true,
                  content_rights_contains_third_party_content: true,
                  export_compliance_platform: 'ios',
                  export_compliance_compliance_required: false,
                  export_compliance_encryption_updated: false,
                  export_compliance_app_type: nil,
                  export_compliance_uses_encryption: false,
                  export_compliance_is_exempt: false,
                  export_compliance_contains_third_party_cryptography: false,
                  export_compliance_contains_proprietary_cryptography: false,
                  export_compliance_available_on_french_store: false
                })



    version = get_version_number_from_plist(target: "PFC")
    slack(message: "Successfully deployed version #{version} to the App Store")
    slack(message: "Successfully deployed version #{version} to the App Store",
          channel: "@tablawabla")
  end

  desc "Tags the release with the version number"
  private_lane :tag_release do |options|
    version = get_version_number_from_plist(target: "PFC")
    #tag the release and push the tag
    tag = "v#{version}"
    add_git_tag(tag: tag, force: true)
    push_git_tags(force: true)
  end

  desc "Makes new branch with Info.plist file changes and creates a pull request"
  private_lane :handle_plist do |options|
    #shell script to create new branch and push it also merge the Info.plist back over to develop
    number = options[:number]
    branch = options[:branch]

    sh "./build_bump.sh #{number} #{branch}"
    create_pull_request(
      api_token: ENV["GITHUB_TOKEN"],
      repo: "betalo-sweden/pfc-ios",
      title: "update-build-number-#{number}",
      head: "update-build-number-#{number}",
      base: branch
    )

    channel = prompt(text: "Who do you want to notify about this Pull Request? (ex. @tablawabla, @kevin, @anna)")
    slack(
       message: "Dude, merge my PR titled 'update-build-number-#{number}!",
       channel: channel,
       default_payloads: []
     )
   end

  after_all do |lane|
    # This block is called, only if the executed lane was successful

  end

  error do |lane, exception|
     slack(
       message: exception.message,
       success: false,
       channel: "#mobile-events"
     )
     slack(
       message: exception.message,
       success: false,
       channel: "@tablawabla"
     )
  end
end


`./fastlane/Appfile`
# app_identifier("[[APP_IDENTIFIER]]") # The bundle identifier of your app
# apple_id("[[APPLE_ID]]") # Your Apple email address


# For more information about the Appfile, see:
#     https://docs.fastlane.tools/advanced/#appfile

fastlane gems

Gem Version Update-Status
fastlane 2.125.2 ✅ Up-To-Date

Loaded fastlane plugins:

Plugin Version Update-Status
fastlane-plugin-versioning 0.3.4 ✅ Up-To-Date
Loaded gems
Gem Version
did_you_mean 1.0.0
bundler 2.0.1
io-console 0.4.5
CFPropertyList 3.0.0
concurrent-ruby 1.1.5
i18n 0.9.5
minitest 5.11.3
thread_safe 0.3.6
tzinfo 1.2.5
activesupport 4.2.11.1
public_suffix 2.0.5
addressable 2.6.0
atomos 0.1.3
babosa 1.0.2
claide 1.0.2
fuzzy_match 2.0.4
nap 1.1.0
cocoapods-core 1.6.1
cocoapods-deintegrate 1.0.4
cocoapods-downloader 1.2.2
cocoapods-plugins 1.0.0
cocoapods-search 1.0.0
cocoapods-stats 1.1.0
netrc 0.11.0
cocoapods-trunk 1.3.1
cocoapods-try 1.1.0
colored2 3.1.2
escape 0.0.4
fourflusher 2.2.0
gh_inspector 1.1.3
molinillo 0.6.6
ruby-macho 1.4.0
nanaimo 0.2.6
xcodeproj 1.10.0
cocoapods 1.6.1
colored 1.2
highline 1.7.10
commander-fastlane 4.4.6
declarative 0.0.10
declarative-option 0.1.0
digest-crc 0.4.1
unf_ext 0.0.7.6
unf 0.1.4
domain_name 0.5.20180417
dotenv 2.7.2
emoji_regex 1.0.1
excon 0.64.0
multipart-post 2.0.0
faraday 0.15.4
http-cookie 1.0.3
faraday-cookie_jar 0.0.6
faraday_middleware 0.13.1
fastimage 2.1.5
jwt 2.1.0
memoist 0.16.0
multi_json 1.13.1
os 1.0.1
signet 0.11.0
googleauth 0.6.7
httpclient 2.8.3
mime-types-data 3.2019.0331
mime-types 3.2.2
uber 0.1.0
representable 3.0.4
retriable 3.1.2
google-api-client 0.23.9
google-cloud-env 1.1.0
google-cloud-core 1.3.0
google-cloud-storage 1.16.0
json 2.2.0
mini_magick 4.5.1
multi_xml 0.6.0
plist 3.5.0
rubyzip 1.2.3
security 0.1.3
naturally 2.2.0
simctl 1.6.5
slack-notifier 2.3.2
terminal-notifier 2.0.0
unicode-display_width 1.6.0
terminal-table 1.8.0
tty-screen 0.7.0
tty-cursor 0.7.0
tty-spinner 0.9.1
word_wrap 1.0.0
rouge 2.0.7
xcpretty 0.3.0
xcpretty-travis-formatter 1.0.0
fastlane-plugin-versioning 0.3.4

generated on: 2019-06-20

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 3
  • Comments: 21 (3 by maintainers)

Most upvoted comments

Firstly, it is because of the big binaries and slow Apple server makes the uploading task taking so long (more than 10 minutes). It shouldn’t be a problem if Fastlane/Deliver produces some logs so Travis knows that the task is still in progress. However, it doesn’t produce anything (in my case is with Fastlane 2.126.0 and 2.125.2), so travis considers that the task is hanging, then terminates the task automatically and makes the build failed.

I don’t think it is possible to use travis_wait within Fastfile (without doing some cheat). But still, that is not a good solution IMO.

Anyone wanna PR with the waiting print outs like mentioned here?

I feel like this is exactly what caused it.

Together with this line:

[20:35:41]: :train_version is no longer a used argument on FastlaneCore::BuildWatcher. Please use :app_version instead.

Makes me think that @joshdholtz knows the answer.

To complete, this is how we call from our Fastfile:

    begin
      testflight(
        skip_waiting_for_build_processing: false, 
        skip_submission: false,
        groups: ['QA Source', 'iOS Team'],
        changelog: unreleased_changelog,
        team_id: "XXXXX"
      )
    rescue => ex
      raise ex unless ex.message.include?('Another build is in review')
      UI.important('TestFlight delivery failed because a build is already in review, but continuing anyway!')
    end

This should be enough context to get this one fixed 💪

I investigated a bit further. It seems that we’ve had a successful build with Fastlane version 2.125.2.

Taking a look at the output, the main difference is the status output:

[20:25:38]: ▸   adding: Zip.framework.dSYM/Contents/Resources/ (stored 0%)
[20:25:38]: ▸   adding: Zip.framework.dSYM/Contents/Resources/DWARF/ (stored 0%)
[20:25:38]: ▸   adding: Zip.framework.dSYM/Contents/Resources/DWARF/Zip (deflated 62%)
[20:25:38]: ▸   adding: Zip.framework.dSYM/Contents/Info.plist (deflated 52%)
[20:25:39]: Successfully exported and compressed dSYM file
[20:25:39]: Successfully exported and signed the ipa file:
[20:25:39]: /Users/travis/build/WeTransfer/Coyote/Coyote.ipa
[20:25:39]: -------------------------------------------------
[20:25:39]: --- Step: Switch to unreleased_changelog lane ---
[20:25:39]: -------------------------------------------------
[20:25:39]: Cruising over to lane 'unreleased_changelog' 🚖
[20:25:39]: Cruising back to lane 'beta' 🚘
[20:25:39]: ------------------------
[20:25:39]: --- Step: testflight ---
[20:25:39]: ------------------------
[20:25:39]: Login to App Store Connect (applecertificates@wetransfer.com)
[20:25:40]: Login successful
[20:25:41]: Ready to upload new build to TestFlight (App: 765359021)...
[20:25:59]: iTunes Transporter successfully finished its job
[20:26:00]: Going to upload updated app to App Store Connect
[20:26:00]: This might take a few minutes. Please don't interrupt the script.
[20:35:41]: iTunes Transporter successfully finished its job
[20:35:41]: --------------------------------------------------------------------
[20:35:41]: Successfully uploaded package to App Store Connect. It might take a few minutes until it's visible online.
[20:35:41]: --------------------------------------------------------------------
[20:35:41]: Successfully uploaded the new binary to App Store Connect
[20:35:41]: If you want to skip waiting for the processing to be finished, use the `skip_waiting_for_build_processing` option
[20:35:41]: :train_version is no longer a used argument on FastlaneCore::BuildWatcher. Please use :app_version instead.
[20:35:42]: Build doesn't show up in the build list anymore, waiting for it to appear again (check your email for processing issues if this continues)
[20:36:12]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:36:42]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:37:13]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:37:43]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:38:14]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:38:44]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:39:14]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:39:44]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:40:15]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:40:45]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:41:16]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:41:48]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:42:18]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:42:49]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:43:20]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:43:50]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:44:21]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:44:51]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:45:22]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:45:53]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:46:24]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:46:54]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:47:25]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:47:56]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:48:27]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:48:58]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:49:28]: Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)
[20:49:59]: Successfully finished processing the build 3.3.3 - 10645
[20:49:59]: Build did include information for app, build beta detail and pre release version
[20:49:59]: Fetching a new build with all the information needed
[20:50:00]: Successfully set the changelog for build
[20:50:01]: Distributing new build to testers: 3.3.3 - 10645
[20:50:10]: Successfully distributed build to Internal testers 🚀

~I tried running using the older Fastlane version 2.122.0 which didn’t fix it.~ It did fix it! Now I do get the output back. This confirms that it’s broken since some of the commits after that release.

We need to make sure the status is reported correctly as the following output is missing:

Waiting for App Store Connect to finish processing the new build (3.3.3 - 10645)

I can confirm that we have the same issue. It seems like the report_status method is not getting called.

For us, the output before:

[08:33:43]: ▸   adding: Zip.framework.dSYM/ (stored 0%)
[08:33:43]: ▸   adding: Zip.framework.dSYM/Contents/ (stored 0%)
[08:33:43]: ▸   adding: Zip.framework.dSYM/Contents/Resources/ (stored 0%)
[08:33:43]: ▸   adding: Zip.framework.dSYM/Contents/Resources/DWARF/ (stored 0%)
[08:33:43]: ▸   adding: Zip.framework.dSYM/Contents/Resources/DWARF/Zip (deflated 62%)
[08:33:43]: ▸   adding: Zip.framework.dSYM/Contents/Info.plist (deflated 52%)
[08:33:43]: Successfully exported and compressed dSYM file
[08:33:43]: Successfully exported and signed the ipa file:
[08:33:43]: /Users/travis/build/WeTransfer/Coyote/Coyote.ipa
[08:33:44]: -------------------------------------------------
[08:33:44]: --- Step: Switch to unreleased_changelog lane ---
[08:33:44]: -------------------------------------------------
[08:33:44]: Cruising over to lane 'unreleased_changelog' 🚖
[08:33:44]: Cruising back to lane 'beta' 🚘
[08:33:44]: ------------------------
[08:33:44]: --- Step: testflight ---
[08:33:44]: ------------------------
[08:33:44]: Login to App Store Connect (applecertificates@wetransfer.com)
[08:33:44]: Login successful
[08:33:46]: Ready to upload new build to TestFlight (App: 765359021)...
[08:34:04]: iTunes Transporter successfully finished its job
[08:34:04]: Going to upload updated app to App Store Connect
[08:34:04]: This might take a few minutes. Please don't interrupt the script.
No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.
Check the details on how to adjust your build configuration on: https://docs.travis-ci.com/user/common-build-problems/#Build-times-out-because-no-output-was-received
The build has been terminated

As the output is needed to keep Travis CI alive, it’s timing out now. It seems to be introduced in a recent Fastlane version, although it’s yet unclear to me which one.

Looking at the history log it might be related to the recent changes done to move towards the ConnectAPI. Looping in @joshdholtz therefore as he might know more of this.