JWT Token auth doesn't work "Please provide a properly configured and signed bearer token, and make sure that it has not expired"
New Issue Checklist
- β Updated fastlane to the latest version
- β I read the Contribution Guidelines
- β I read docs.fastlane.tools
- β I searched for existing GitHub issues
Issue Description
We are trying to access App Store Connect via Fastlane using JWT authentication. We have followed the instructions in the documentation, but we are encountering the following error:βThe request could not be completed because: Authentication credentials are missing or invalid. Please provide a properly configured and signed bearer token, and make sure that it has not expired."
Everything worked well for some time but since 11.10.2024 we've started receiving errors.
Complete output when running fastlane, including the stack trace and command used
23:51:41 - fastlane deliver : INFO [23:51:41]: Creating authorization token for App Store Connect API
23:51:44 - fastlane deliver : INFO
23:51:44 - fastlane deliver : INFO Looking for related GitHub issues on fastlane/fastlane...
23:51:44 - fastlane deliver : INFO
23:51:44 - fastlane deliver : INFO
23:51:44 - fastlane deliver : INFO [!] The request could not be completed because:
23:51:44 - fastlane deliver : INFO Authentication credentials are missing or invalid. - Provide a properly configured and signed bearer token, and make sure that it has not expired. Learn more about Generating Tokens for API Requests https://developer.apple.com/go/?id=api-generating-tokens
{
"key_id": appstore_key_id,
"issuer_id": appstore_issuer_id,
"key": key,
"duration": 500,
"in_house": True
}
β fastlane environment β
Stack
| Key | Value |
|---|---|
| OS | 14.5 |
| Ruby | 3.3.4 |
| Bundler? | false |
| Git | git version 2.39.3 (Apple Git-146) |
| Installation Source | /opt/homebrew/lib/ruby/gems/3.3.0/bin/fastlane |
| Host | macOS 14.5 (23F79) |
| Ruby Lib Dir | /opt/homebrew/Cellar/ruby/3.3.4/lib |
| OpenSSL Version | OpenSSL 3.3.1 4 Jun 2024 |
| Is contained | false |
| Is homebrew | false |
| Is installed via Fabric.app | false |
| Xcode Path | /Applications/Xcode.app/Contents/Developer/ |
| Xcode Version | 15.3 |
| Swift Version | 5.10 |
System Locale
| Variable | Value | |
|---|---|---|
| LANG | en_US.UTF-8 | β |
| LC_ALL | en_US.UTF-8 | β |
| LANGUAGE |
fastlane files:
No Fastfile found
No Appfile found
fastlane gems
| Gem | Version | Update-Status |
|---|---|---|
| fastlane | 2.225.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.5 |
| addressable | 2.8.6 |
| artifactory | 3.0.17 |
| jmespath | 1.6.2 |
| aws-partitions | 1.922.0 |
| aws-eventstream | 1.3.0 |
| aws-sdk-core | 3.194.0 |
| aws-sdk-kms | 1.80.0 |
| aws-sdk-s3 | 1.149.0 |
| babosa | 1.0.4 |
| bundler | 2.5.2 |
| rexml | 3.2.8 |
| nkf | 0.1.3 |
| base64 | 0.2.0 |
| CFPropertyList | 3.0.7 |
| colored | 1.2 |
| highline | 2.0.3 |
| commander | 4.6.0 |
| dotenv | 2.8.1 |
| emoji_regex | 3.2.3 |
| excon | 0.110.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.4.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.1 |
| sysrandom | 1.0.5 |
| fastlane-sirp | 1.0.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.8.1 |
| multi_json | 1.15.0 |
| os | 1.1.4 |
| signet | 0.19.0 |
| googleauth | 1.8.1 |
| httpclient | 2.8.3 |
| google-apis-core | 0.11.3 |
| google-apis-androidpublisher_v3 | 0.54.0 |
| google-apis-playcustomapp_v1 | 0.13.0 |
| google-cloud-env | 1.6.0 |
| google-cloud-errors | 1.4.0 |
| google-cloud-core | 1.7.0 |
| 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.5 |
| 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.24.0 |
| rouge | 2.0.7 |
| xcpretty | 0.3.0 |
| xcpretty-travis-formatter | 1.0.1 |
| set | 1.1.0 |
| aws-sigv4 | 1.10.1 |
| 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 |
| stringio | 3.1.1 |
| securerandom | 0.3.1 |
| uri | 0.13.0 |
| openssl | 3.2.0 |
| digest | 3.1.1 |
| io-nonblock | 0.3.0 |
| ipaddr | 1.2.6 |
| zlib | 3.1.1 |
| resolv | 0.3.0 |
| io-wait | 0.3.1 |
| time | 0.3.0 |
| open-uri | 0.4.1 |
| mutex_m | 0.2.0 |
| net-http | 0.4.1 |
| net-protocol | 0.2.2 |
| ostruct | 0.6.0 |
| english | 0.8.0 |
| erb | 4.0.3 |
| strscan | 3.0.9 |
| abbrev | 0.1.2 |
| io-console | 0.7.1 |
| tempfile | 0.2.1 |
| delegate | 0.3.1 |
| fileutils | 1.7.2 |
| tmpdir | 0.2.0 |
| singleton | 0.2.0 |
| open3 | 0.2.1 |
| prettyprint | 0.2.0 |
| pp | 0.5.0 |
| find | 0.2.0 |
| yaml | 0.3.0 |
| psych | 5.1.2 |
generated on: 2024-11-21
I downgraded Fastlane to version 2.223.0, and it helped, but I'm afraid it might cause some issues that were fixed in version 2.225.0
Same problem. I couldn't test by downgrading it properly because my builds started failing with errors related to MATCH_PASSWORD. Latest version didn't work for me yet.
https://github.com/fastlane/fastlane/issues/21109#issuecomment-2489363641
Same problem
Same problem. I downgraded Fastlane to 2.223.0 as @buulka said, and it help in may case. Thanks for advice!
I believe the issue is related to change introduced in 2.224.0: Add support for Enterprise Program API and in particular changing the hostname from api.appstoreconnect.apple.com to api.enterprise.developer.apple.com based on the in_house value of the app_store_connect_api_key token.
Given sample api token key in json format:
{
"key_id": "XXX",
"issuer_id": "XXX",
"key": "XXX",
"duration": 1200,
"in_house": true
}
in my case changing the value true -> false for in_house helped.
But I think this is just a temporary workaround, because it's a fallback to api.appstoreconnect.apple.com and the question is why api token is not able to authenticate api.enterprise.developer.apple.com?
Same problem v2.226.0
I ran into this and pulled my hair out until I found a fix. We must have got it from documentation or an example somewhere.
That duration: 1200 caused our issues. Remove that line or set it to 500 (the default) to get through.
I have this issue with, and without, a duration; when running as part of a GIthub Action.
Seeing the same error. Is there a solution for this? I am unable to connect to the enterprise account with the API key.
@GevaZeichner
Seeing the same error. Is there a solution for this? I am unable to connect to the enterprise account with the API key.
@GevaZeichner
Hi @akshaynhegde, have you tried these solutions?
https://github.com/fastlane/fastlane/issues/21109#issuecomment-2614513458
https://github.com/fastlane/fastlane/issues/21109#issuecomment-2505655683
I have same issue. After a little research, I think fastlane generates an invalid jwt token. Because when I generate it myself according to the documentation(https://developer.apple.com/go/?id=api-generating-tokens), I don't encounter any problems. After reading the code (https://github.com/fastlane/fastlane/blob/d7f1ca8eab11fb9de96e3f02a692b4e50058c791/spaceship/lib/spaceship/connect_api/token.rb#L2) I understand that header doesn't contain "alg" key. I hope that the maintainers solve this issue quickly.
To resolve this, you can add missing keys to the token.rb file located in fastlane/spaceship/lib/spaceship/connect_api/. This solution worked for me.
To resolve this, you can add missing keys to the token.rb file located in fastlane/spaceship/lib/spaceship/connect_api/. This solution worked for me.
tried exactly this however still no luck.
I am out of ideas..
@HgCl2 could you be OK to share your token.rb file please ?
because I'm facing the same issue too.
Im also facing the same issue, my lane works with the majority of my builds, but there are a few that do not work and throws the error Authentication credentials are missing or invalid