You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When any of textual metadata upload is enabled, but there are locales in fastlane/metadata that aren't supported by Google Play, you get this cryptic error.
I used a mitm proxy to see the actual error returned by the server and the request that caused it. (there might be better ways to do it but I'm very unfamiliar with Ruby and its ecosystem)
Request URL: https://androidpublisher.googleapis.com/androidpublisher/v3/applications/:packageID/edits/:someOtherID/listings/:locale
Error:
{
"error": {
"code": 400,
"message": "The requested language is not currently supported: ar-SA.",
"status": "INVALID_ARGUMENT"
}
}
I assume these GET requests to retrieve existing metadata are done to only update those pieces of metadata that have actually changed.
If I set bothskip_upload_metadata and skip_upload_changelogs to true, this goes away and the deployment succeeds.
Now that I've seen the real error, I know I should change my Crowdin configuration to only add the country code to locales where it's strictly necessary (e.g. pt-BR vs pt-PT). Still, the error messages returned by APIs should always be included in the output.
Command executed
fastlane deploy
Complete output when running fastlane, including the stack trace and command used
[11:30:38]: Preparing aab at path '/Users/grishka/Documents/android/Mastodon/mastodon/build/outputs/bundle/release/mastodon-release.aab' for upload...
[11:30:47]: Updating track 'production'...
[11:30:49]: Preparing uploads for language 'ar-SA'...
[11:30:49]: Preparing uploads for language 'be-BY'...
[11:30:49]: Preparing uploads for language 'bn-BD'...
[11:30:49]: Preparing uploads for language 'bs-BA'...
[11:30:49]: Preparing uploads for language 'ca-ES'...
[11:30:49]: Preparing uploads for language 'cs-CZ'...
[11:30:49]: Preparing uploads for language 'da-DK'...
[11:30:49]: Preparing uploads for language 'de-DE'...
[11:30:49]: Preparing uploads for language 'el-GR'...
[11:30:49]: Preparing uploads for language 'en-US'...
#<Thread:0x0000000121b79ab8 /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/fastlane-2.219.0/fastlane_core/lib/fastlane_core/queue_worker.rb:37 run> terminated with exception (report_on_exception is true):
/opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/fastlane-2.219.0/fastlane_core/lib/fastlane_core/ui/interface.rb:184:in abort_with_message!': ar-SA - Invalid request (FastlaneCore::Interface::FastlaneCommonException) from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/fastlane-2.219.0/fastlane_core/lib/fastlane_core/ui/ui.rb:17:in method_missing'
from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/fastlane-2.219.0/supply/lib/supply/uploader.rb:526:in rescue in block in create_meta_upload_worker' from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/fastlane-2.219.0/supply/lib/supply/uploader.rb:517:in block in create_meta_upload_worker'
from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/fastlane-2.219.0/fastlane_core/lib/fastlane_core/queue_worker.rb:40:in block (2 levels) in start' /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/google-apis-core-0.11.2/lib/google/apis/core/http_command.rb:244:in check_status': Invalid request (Google::Apis::ClientError)
from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/google-apis-core-0.11.2/lib/google/apis/core/api_command.rb:135:in check_status' from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/google-apis-core-0.11.2/lib/google/apis/core/http_command.rb:207:in process_response'
from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/google-apis-core-0.11.2/lib/google/apis/core/http_command.rb:326:in execute_once' from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/google-apis-core-0.11.2/lib/google/apis/core/http_command.rb:131:in block (2 levels) in do_retry'
from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/retriable-3.1.2/lib/retriable.rb:61:in block in retriable' from <internal:numeric>:237:in times'
from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/retriable-3.1.2/lib/retriable.rb:56:in retriable' from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/google-apis-core-0.11.2/lib/google/apis/core/http_command.rb:128:in block in do_retry'
from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/retriable-3.1.2/lib/retriable.rb:61:in block in retriable' from <internal:numeric>:237:in times'
from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/retriable-3.1.2/lib/retriable.rb:56:in retriable' from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/google-apis-core-0.11.2/lib/google/apis/core/http_command.rb:118:in do_retry'
from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/google-apis-core-0.11.2/lib/google/apis/core/http_command.rb:109:in execute' from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/google-apis-core-0.11.2/lib/google/apis/core/base_service.rb:418:in execute_or_queue_command'
from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/google-apis-androidpublisher_v3-0.54.0/lib/google/apis/androidpublisher_v3/service.rb:1181:in get_edit_listing' from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/fastlane-2.219.0/supply/lib/supply/client.rb:238:in listing_for_language'
from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/fastlane-2.219.0/supply/lib/supply/uploader.rb:519:in block in create_meta_upload_worker' from /opt/homebrew/Cellar/fastlane/2.219.0_2/libexec/gems/fastlane-2.219.0/fastlane_core/lib/fastlane_core/queue_worker.rb:40:in block (2 levels) in start'
+-----------------------------------------------------------------------------------------------------+
| Lane Context |
+-------------------------------------+---------------------------------------------------------------+
| DEFAULT_PLATFORM | android |
| PLATFORM_NAME | android |
| LANE_NAME | android deploy |
| GRADLE_BUILD_TYPE | release |
| GRADLE_ALL_APK_OUTPUT_PATHS | [] |
| GRADLE_ALL_AAB_OUTPUT_PATHS | ["/Users/grishka/Documents/android/Mastodon/mastodon/build/o |
| | utputs/bundle/release/mastodon-release.aab"] |
| GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS | [] |
| GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS | ["/Users/grishka/Documents/android/Mastodon/mastodon/build/o |
| | utputs/mapping/release/mapping.txt"] |
| GRADLE_AAB_OUTPUT_PATH | /Users/grishka/Documents/android/Mastodon/mastodon/build/out |
| | puts/bundle/release/mastodon-release.aab |
| GRADLE_MAPPING_TXT_OUTPUT_PATH | /Users/grishka/Documents/android/Mastodon/mastodon/build/out |
| | puts/mapping/release/mapping.txt |
+-------------------------------------+---------------------------------------------------------------+
[11:30:49]: ar-SA - Invalid request
# This file contains the fastlane.tools configuration# You can find the documentation at https://docs.fastlane.tools## For a list of all available actions, check out## https://docs.fastlane.tools/actions## For a list of all available plugins, check out## https://docs.fastlane.tools/plugins/available-plugins## Uncomment the line if you want fastlane to automatically update itself# update_fastlanedefault_platform(:android)platform:androiddodesc"Runs all the tests"lane:testdogradle(task: "test")enddesc"Deploy a new version to the Google Play"lane:deploydogradle(task: "bundle",build_type: "release",)upload_to_play_store(changes_not_sent_for_review: true,skip_upload_images: true,skip_upload_screenshots: true)endend
`./fastlane/Appfile`
json_key_file("")# Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get onepackage_name("org.joinmastodon.android")# e.g. com.krausefx.app
fastlane gems
Gem
Version
Update-Status
fastlane
2.219.0
✅ Up-To-Date
Loaded fastlane plugins:
No plugins Loaded
Loaded gems
Gem
Version
error_highlight
0.6.0
did_you_mean
1.6.3
syntax_suggest
2.0.0
public_suffix
5.0.4
addressable
2.8.6
artifactory
3.0.15
jmespath
1.6.2
aws-partitions
1.877.0
aws-eventstream
1.3.0
aws-sigv4
1.8.0
aws-sdk-core
3.190.1
aws-sdk-kms
1.76.0
aws-sdk-s3
1.142.0
babosa
1.0.4
bundler
2.5.4
rexml
3.2.6
CFPropertyList
3.0.6
colored
1.2
highline
2.0.3
commander
4.6.0
dotenv
2.8.1
emoji_regex
3.2.3
excon
0.109.0
faraday-em_http
1.0.0
faraday-em_synchrony
1.0.0
faraday-excon
1.1.0
faraday-httpclient
1.0.1
multipart-post
2.3.0
faraday-multipart
1.0.4
faraday-net_http
1.0.1
faraday-net_http_persistent
1.2.0
faraday-patron
1.0.0
faraday-rack
1.0.0
faraday-retry
1.0.3
ruby2_keywords
0.0.5
faraday
1.10.3
faraday_middleware
1.2.0
domain_name
0.6.20240107
http-cookie
1.0.5
faraday-cookie_jar
0.0.7
fastimage
2.3.0
gh_inspector
1.1.3
uber
0.1.0
declarative
0.0.20
trailblazer-option
0.1.2
representable
3.2.0
retriable
3.1.2
mini_mime
1.1.5
jwt
2.7.1
multi_json
1.15.0
os
1.1.4
signet
0.18.0
googleauth
1.8.1
httpclient
2.8.3
webrick
1.8.1
google-apis-core
0.11.2
google-apis-androidpublisher_v3
0.54.0
google-apis-playcustomapp_v1
0.13.0
google-cloud-env
1.6.0
google-cloud-errors
1.3.1
google-cloud-core
1.6.1
google-apis-iamcredentials_v1
0.17.0
google-apis-storage_v1
0.31.0
rake
13.1.0
digest-crc
0.6.5
google-cloud-storage
1.47.0
json
2.7.1
mini_magick
4.12.0
naturally
2.2.1
optparse
0.4.0
plist
3.7.1
rubyzip
2.3.2
security
0.1.3
simctl
1.6.10
terminal-notifier
2.0.0
unicode-display_width
2.5.0
terminal-table
3.0.2
tty-screen
0.8.2
tty-cursor
0.7.1
tty-spinner
0.9.3
word_wrap
1.0.0
atomos
0.1.3
claide
1.1.0
colored2
3.1.2
nanaimo
0.3.0
xcodeproj
1.23.0
rouge
2.0.7
xcpretty
0.3.0
xcpretty-travis-formatter
1.0.1
set
1.1.0
forwardable
1.3.3
logger
1.6.0
pathname
0.3.0
shellwords
0.2.0
cgi
0.4.1
date
3.3.4
timeout
0.4.1
securerandom
0.3.1
uri
0.13.0
openssl
3.2.0
digest
3.1.1
ipaddr
1.2.6
resolv
0.3.0
time
0.3.0
stringio
3.1.0
open-uri
0.4.1
mutex_m
0.2.0
net-http
0.4.0
net-protocol
0.2.2
ostruct
0.6.0
english
0.8.0
erb
4.0.3
abbrev
0.1.2
tempfile
0.2.1
delegate
0.3.1
fileutils
1.7.2
tmpdir
0.2.0
base64
0.2.0
singleton
0.2.0
open3
0.2.1
nkf
0.1.3
prettyprint
0.2.0
pp
0.5.0
find
0.2.0
yaml
0.3.0
psych
5.1.2
generated on:2024-03-01
The text was updated successfully, but these errors were encountered:
grishka
added a commit
to mastodon/mastodon-android
that referenced
this issue
Mar 1, 2024
It seems you’ve encountered an issue with the fastlane tool when uploading metadata to the Google Play Store for a locale that is not supported. The error message you received indicates that the language code ar-SA (Arabic - Saudi Arabia) is not currently supported by Google Play.
To resolve this issue, you can adjust your Crowdin configuration to ensure that only supported locales are used. Google Play supports a variety of locales, but not all possible combinations of language and region codes are accepted. It’s important to use only the locales that are recognized by Google Play to avoid such errors during the deployment process.
As you’ve discovered, setting skip_upload_metadata and skip_upload_changelogs to true can bypass the error, but this is more of a workaround than a solution. The proper fix would be to ensure that your metadata locales match the supported locales on Google Play.
For future reference, it’s always a good idea to check the supported locations for distribution and the supported languages/locales on Android to prevent similar issues. If you need to update your fastlane configuration or scripts, make sure to include only the supported locales to streamline your deployment process.
Yes, I know why this happens, I just want this to not be a fatal error. Just skip the unsupported language and continue. Maybe not by default, but it would be nice to have an option to do so, not the current all-or-nothing approach.
New Issue Checklist
Issue Description
When any of textual metadata upload is enabled, but there are locales in
fastlane/metadata
that aren't supported by Google Play, you get this cryptic error.I used a mitm proxy to see the actual error returned by the server and the request that caused it. (there might be better ways to do it but I'm very unfamiliar with Ruby and its ecosystem)
Request URL:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/:packageID/edits/:someOtherID/listings/:locale
Error:
I assume these GET requests to retrieve existing metadata are done to only update those pieces of metadata that have actually changed.
If I set both
skip_upload_metadata
andskip_upload_changelogs
totrue
, this goes away and the deployment succeeds.Now that I've seen the real error, I know I should change my Crowdin configuration to only add the country code to locales where it's strictly necessary (e.g.
pt-BR
vspt-PT
). Still, the error messages returned by APIs should always be included in the output.Command executed
fastlane deploy
Complete output when running fastlane, including the stack trace and command used
Environment
(doesn't seem to matter, does the same thing in a Github Action)
✅ fastlane environment ✅
Stack
System Locale
fastlane files:
`./fastlane/Fastfile`
`./fastlane/Appfile`
fastlane gems
Loaded fastlane plugins:
No plugins Loaded
Loaded gems
generated on: 2024-03-01
The text was updated successfully, but these errors were encountered: