fastlane: [regression] firebase_app_distribution action is broken in 2.161.0

New Regression Checklist

Regression Information

  • Breaking version: 2.161.0
  • Last working version: 2.160.0

Regression Description

firebase_app_distribution action is not working since the last update: it seems that groups parameter/contents is processed case-sensitive (probably) and the firebase backend returns error. There is an issue in action repository where other developers confirms that downgrading to 2.160.0 solves their issue, so this is not a regression in the action itself. Maybe it is regressed by #17256?

Complete output when running fastlane, including the stack trace and command used

This is the regressed fastlane output:

[14:02:36]: ---------------------------------------
[14:02:36]: --- Step: firebase_app_distribution ---
[14:02:36]: ---------------------------------------
[14:02:36]: Authenticating with FIREBASE_TOKEN environment variable
[14:02:36]: πŸ” Authenticated successfully.
[14:02:38]: βŒ› Uploading the IPA.
[14:02:53]: βœ… Uploaded the IPA.
[14:02:53]: βœ… No release notes passed in. Skipping this step.
[14:02:53]: -------------------
[14:02:53]: --- Step: is_ci ---
[14:02:53]: -------------------
[14:02:53]: --------------------------
[14:02:53]: --- Step: fastlane env ---
[14:02:53]: --------------------------
...
| πŸ’₯   | firebase_app_distribution                                     | 20          |
| 49   | is_ci                                                         | 0           |
| 50   | fastlane env                                                  | 2           |
+------+---------------------------------------------------------------+-------------+

[09:55:34]: fastlane finished with errors

[!] Could not enable access for testers. Check that the groups exist and the tester emails are formatted correctly Emails:
Groups: [β€œios-testers”] script returned exit code 1

And this is the output on 2.160.0:

[13:50:30]: ---------------------------------------
[13:50:30]: --- Step: firebase_app_distribution ---
[13:50:30]: ---------------------------------------
[13:50:30]: Authenticating with FIREBASE_TOKEN environment variable
[13:50:30]: πŸ” Authenticated successfully.
[13:50:32]: βŒ› Uploading the IPA.
[13:50:44]: βœ… Uploaded the IPA.
[13:50:44]: βœ… No release notes passed in. Skipping this step.
[13:50:47]: βœ… Added testers/groups.
[13:50:47]: πŸŽ‰ App Distribution upload finished successfully.
[13:50:47]: -------------------------------------------
[13:50:47]: --- Step: upload_symbols_to_crashlytics ---
[13:50:47]: -------------------------------------------

There is no difference in Fastfile between these two launches. They both call

		firebase_app_distribution(app: app_id, groups: "ios-testers", debug: true)	

Environment

βœ… fastlane environment βœ…

Stack

Key Value
OS 10.15.6
Ruby 2.4.9
Bundler? true
Git git version 2.24.3 (Apple Git-128)
Installation Source ~/.rvm/gems/ruby-2.4.9/bin/fastlane
Host Mac OS X 10.15.6 (19G2021)
Ruby Lib Dir ~/.rvm/rubies/ruby-2.4.9/lib
OpenSSL Version OpenSSL 1.1.1g 21 Apr 2020
Is contained false
Is homebrew false
Is installed via Fabric.app false
Xcode Path /Applications/Xcode.app/Contents/Developer/
Xcode Version 12.0

System Locale

Variable Value
LANG ru_RU.UTF-8 βœ…
LC_ALL
LANGUAGE

fastlane gems

Gem Version Update-Status
fastlane 2.161.0 βœ… Up-To-Date

Loaded fastlane plugins:

Plugin Version Update-Status
fastlane-plugin-firebase_management 1.1.0 βœ… Up-To-Date
fastlane-plugin-firebase_app_distribution 0.2.2 βœ… Up-To-Date
Loaded gems
Gem Version
did_you_mean 1.1.0
bundler 1.17.3
rake 13.0.1
CFPropertyList 3.0.2
concurrent-ruby 1.1.7
i18n 0.9.5
minitest 5.14.2
thread_safe 0.3.6
tzinfo 1.2.7
activesupport 4.2.11.3
public_suffix 4.0.6
addressable 2.7.0
httpclient 2.8.3
json 2.3.1
algoliasearch 1.27.4
atomos 0.1.3
aws-eventstream 1.1.0
aws-partitions 1.376.0
aws-sigv4 1.2.2
jmespath 1.4.0
aws-sdk-core 3.108.0
aws-sdk-kms 1.38.0
aws-sdk-s3 1.81.1
babosa 1.0.3
claide 1.0.3
fuzzy_match 2.0.4
nap 1.1.0
netrc 0.11.0
ffi 1.13.1
ethon 0.12.0
typhoeus 1.4.0
cocoapods-core 1.9.3
cocoapods-deintegrate 1.0.4
cocoapods-downloader 1.4.0
cocoapods-plugins 1.0.0
cocoapods-search 1.0.0
cocoapods-stats 1.1.0
cocoapods-trunk 1.5.0
cocoapods-try 1.2.0
colored2 3.1.2
escape 0.0.4
fourflusher 2.3.1
gh_inspector 1.1.3
molinillo 0.6.6
ruby-macho 1.4.0
nanaimo 0.3.0
xcodeproj 1.18.0
cocoapods 1.9.3
colored 1.2
highline 1.7.10
commander-fastlane 4.4.6
declarative 0.0.20
declarative-option 0.1.0
digest-crc 0.6.1
unf_ext 0.0.7.7
unf 0.1.4
domain_name 0.5.20190701
dotenv 2.7.6
emoji_regex 3.0.0
excon 0.76.0
multipart-post 2.0.0
faraday 1.0.1
http-cookie 1.0.3
faraday-cookie_jar 0.0.7
faraday_middleware 1.0.0
fastimage 2.2.0
jwt 2.2.2
memoist 0.16.2
multi_json 1.15.0
os 1.1.1
signet 0.14.0
googleauth 0.13.1
mini_mime 1.0.2
uber 0.1.0
representable 3.0.4
retriable 3.1.2
google-api-client 0.38.0
google-cloud-env 1.3.3
google-cloud-errors 1.0.1
google-cloud-core 1.5.0
google-cloud-storage 1.29.0
mini_magick 4.10.1
plist 3.5.0
rubyzip 2.3.0
security 0.1.3
naturally 2.2.0
simctl 1.6.8
slack-notifier 2.3.2
terminal-notifier 2.0.0
unicode-display_width 1.7.0
terminal-table 1.8.0
tty-screen 0.8.1
tty-cursor 0.7.1
tty-spinner 0.9.3
word_wrap 1.0.0
rouge 2.0.7
xcpretty 0.3.0
xcpretty-travis-formatter 1.0.0
fastlane-plugin-firebase_app_distribution 0.2.2
mime-types-data 3.2020.0512
mime-types 3.3.1
multi_xml 0.6.0
httparty 0.18.1
fastlane-plugin-firebase_management 1.1.0
mustache 1.1.1
open4 1.3.4
redcarpet 3.5.0
sassc 2.4.0
sqlite3 1.4.2
liferaft 0.0.6
xcinvoke 0.3.0
jazzy 0.13.5
*generated on:* **2020-09-29**

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 9
  • Comments: 32 (4 by maintainers)

Most upvoted comments

The fix is now available in plugin v0.2.3.

Fixed in https://github.com/fastlane/fastlane-plugin-firebase_app_distribution/pull/160 by @brownoxford ❀️ I will comment when the new gem is out.

Confirm the fix. Thanks!

I’m using

firebase_app_distribution v0.2.2
fastlane v2.161.0

This is the error response after running firebase_app_distribution the server responded with status 400

But in Firebase App Distribution console, the APKs are appearing like the image below, and I have to release manually. The release notes are not working as expected too

firebase

I think this might be the cause - https://github.com/fastlane/fastlane/pull/17218

This was a fix to another problem but it looks the firebase plugin might have been relying on this πŸ€” I’m unsure but that is what I’m going to look into first.

Looking into what could have caused this! Will try to have a fix soon.

And if we could have no more β€œ+1” on this post that would be πŸ’― I want to make sure the rest of the comments are helpful into getting this resolved 😊

I have a similar issue AppCenter plugin.

ERROR [2020-09-29 15:14:31.67]: fastlane finished with errors
DEBUG [2020-09-29 15:14:31.67]: All plugins are up to date
/Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane_core/lib/fastlane_core/ui/interface.rb:184:in `abort_with_message!': [!] Upload aborted (FastlaneCore::Interface::FastlaneCommonException)
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane_core/lib/fastlane_core/ui/ui.rb:17:in `method_missing'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-plugin-appcenter-1.9.0/lib/fastlane/plugin/appcenter/actions/appcenter_upload_action.rb:217:in `run_release_upload'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-plugin-appcenter-1.9.0/lib/fastlane/plugin/appcenter/actions/appcenter_upload_action.rb:355:in `run'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/runner.rb:263:in `block (2 levels) in execute_action'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/actions/actions_helper.rb:69:in `execute_action'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/runner.rb:255:in `block in execute_action'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/runner.rb:229:in `chdir'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/runner.rb:229:in `execute_action'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
	from Fastfile:256:in `block (2 levels) in parsing_binding'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/lane.rb:33:in `call'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/runner.rb:204:in `try_switch_to_lane'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/runner.rb:146:in `trigger_action_by_name'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/fast_file.rb:159:in `method_missing'
	from Fastfile:154:in `block (2 levels) in parsing_binding'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/lane.rb:33:in `call'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/lane_manager.rb:47:in `cruise_lane'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/commands_generator.rb:108:in `block (2 levels) in run'
	from /Library/Ruby/Gems/2.6.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
	from /Library/Ruby/Gems/2.6.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
	from /Library/Ruby/Gems/2.6.0/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in `run!'
	from /Library/Ruby/Gems/2.6.0/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/commands_generator.rb:352:in `run'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/commands_generator.rb:41:in `start'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/fastlane/lib/fastlane/cli_tools_distributor.rb:119:in `take_off'
	from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.161.0/bin/fastlane:23:in `<top (required)>'
	from /usr/local/bin/fastlane:23:in `load'
	from /usr/local/bin/fastlane:23:in `<main>'

Downgrade to 2.160 helps

@Furman950 There are some other cases where the API can return 400, I suspect there might be something else going on. Can you please open up a new ticket in the plugin repo (https://github.com/fastlane/fastlane-plugin-firebase_app_distribution), and include the full fastlane output and the fastlane_app_distribution action call in your Fastfile?

@kungfuslippers This looks like a different issue: a 403 generally indicates an authentication problem, and it looks like it’s failing on a request that wasn’t affected by this bug.

Can you confirm that the Google account you are authenticating with has access to the Firebase app? You can also create a new issue in the plugin repo and we’ll figure out what’s going on: https://github.com/fastlane/fastlane-plugin-firebase_app_distribution

Yes, I think you were right about the authentication. My google credentials were fine but I sort of suspect the firebase_cli_token had become invalidated somehow as when I commented it out in the firebase_app_distribution(…) section of my fastfile it attempted to use a cached version and completed successfully.

Thanks for your help!