Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2024.8 Beta app, unable to log in or sync #4870

Closed
turnah opened this issue Aug 19, 2024 · 110 comments · Fixed by #4932
Closed

2024.8 Beta app, unable to log in or sync #4870

turnah opened this issue Aug 19, 2024 · 110 comments · Fixed by #4932
Labels
question Further information is requested, or question from user Third party Needs an update from the third party library troubleshooting There might be bug or it could be user error, more info needed

Comments

@turnah
Copy link

turnah commented Aug 19, 2024

Subject of the issue

Unable to sign into bitwarden app using version 2024.8.0 (beta) on android with 2FA.

Can confirm the webvault works as expected. no issues.

Attempted Yubikey, authenticator app code and email. Each one comes up with an error unable to validate.

Left the beta programme on android and rolled back to 2024.7.1 and all worked as expected.

Logging as a bug in case this is a breaking change on the android app - apologies if should be a discussion

Deployment environment

  • vaultwarden version: 1.32.0

  • Install method: docker

  • Clients used: android, webvault

  • Reverse proxy and version: caddy

  • Other relevant details:

Steps to reproduce

Join android beta, install 2024.8.0 and try to sign in (self hosted)

Expected behaviour

2FA validates

Actual behaviour

2FA unable to validate

@BlackDex
Copy link
Collaborator

BlackDex commented Aug 19, 2024

It works just fine for me.
Please provide logs which are generated during these attempts and if possible screenshots maybe of what you see.
Without that information we can't help.

Edit: I tested all options, WebAuthn (USB/NFC/Passkey via Other Bitwarden App), Fido2, Duo, Email and TOTP.

@BlackDex BlackDex added the question Further information is requested, or question from user label Aug 19, 2024
@turnah
Copy link
Author

turnah commented Aug 19, 2024

The only line from the log is: [2024-08-19 10:42:55.196][error][ERROR] 2FA token not provided

Which seems pretty standard, as this appears when the 2FA screen pops up (before submitting)

The exact error on the app is "An error has occurred. Invalid verification code"

Once i attempt to log in, for example using yubi key and i get the above message i immediately get an email to say new device was logged in.

To confirm, this is on a Pixel 8 pro running android 14 (latest security/play system update) and bitwarden app: Version 2024.8.0 com.x8bit.bitwarden.beta

I'm running this side by side now with 2024.7.1 com.xbit.bitwaren which works as expected

I also removed all 2FA from my account and the beta app signed in as expected. Added the 2FA again and same issue

@BlackDex
Copy link
Collaborator

I suspect that your reverse proxy is catching the error and returns it's own version.

The 2FA token not provided error contains a json which is used to provide all available 2FA options. As mentioned, it works fine for me, just tested all options a few minutes ago.

@turnah
Copy link
Author

turnah commented Aug 19, 2024

I see, i've found the logs in caddy (which is setup as per the wiki) and looks like it's returning a 400:

I've removed the url and changed ip's below:

{
    "level": "info",
    "ts": 1724066098.393086,
    "logger": "http.log.access.log0",
    "msg": "handled request",
    "request": {
        "remote_ip": "172.71.00.00",
        "remote_port": "61308",
        "client_ip": "172.71.00.00",
        "proto": "HTTP/2.0",
        "method": "POST",
        "host": "vw.xxx.uk",
        "uri": "/identity/connect/token",
        "headers": {
            "Cf-Ray": [
                "8b59b915bd498889-LHR"
            ],
            "Cf-Ipcountry": [
                "GB"
            ],
            "Accept-Encoding": [
                "gzip, br"
            ],
            "Cf-Connecting-Ip": [
                "94.196.000.000"
            ],
            "Auth-Email": [
                "ZXhhbXBsZUB2YXVsdHdhcmRlbi5kb21haW4udGxk"
            ],
            "User-Agent": [
                "Bitwarden_Mobile/2024.8.0 (Android 14; SDK 34; Model Pixel 8 Pro)"
            ],
            "Bitwarden-Client-Version": [
                "2024.8.0"
            ],
            "Content-Type": [
                "application/x-www-form-urlencoded"
            ],
            "Content-Length": [
                "352"
            ],
            "X-Forwarded-Proto": [
                "https"
            ],
            "Cf-Visitor": [
                "{\"scheme\":\"https\"}"
            ],
            "Bitwarden-Client-Name": [
                "mobile"
            ],
            "Device-Type": [
                "0"
            ],
            "Cdn-Loop": [
                "cloudflare"
            ],
            "X-Forwarded-For": [
                "94.196.000.000"
            ]
        },
        "tls": {
            "resumed": false,
            "version": 772,
            "cipher_suite": 4865,
            "proto": "h2",
            "server_name": "vw.xxx.uk"
        }
    },
    "bytes_read": 352,
    "user_id": "",
    "duration": 0.803423585,
    "size": 348,
    "status": 400,
    "resp_headers": {
        "Content-Security-Policy": [
            "default-src 'self'; base-uri 'self'; form-action 'self'; object-src 'self' blob:; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; child-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-ancestors 'self' chrome-extension://nngceckbapebfimnlniiiahkandclblb chrome-extension://jbkfoedolllekgbhcbcoahefnbanhhlh moz-extension://* ; img-src 'self' data: https://haveibeenpwned.com ; connect-src 'self' https://api.pwnedpasswords.com https://api.2fa.directory https://app.simplelogin.io/api/ https://app.addy.io/api/ https://api.fastmail.com/ https://api.forwardemail.net ;"
        ],
        "Cache-Control": [
            "no-cache, no-store, max-age=0"
        ],
        "X-Xss-Protection": [
            "0"
        ],
        "X-Frame-Options": [
            "SAMEORIGIN"
        ],
        "Referrer-Policy": [
            "same-origin"
        ],
        "X-Content-Type-Options": [
            "nosniff"
        ],
        "Server": [
            "Caddy",
            "Rocket"
        ],
        "Alt-Svc": [
            "h3=\":443\"; ma=2592000"
        ],
        "Date": [
            "Mon, 19 Aug 2024 11:14:58 GMT"
        ],
        "Content-Type": [
            "application/json"
        ],
        "Content-Length": [
            "348"
        ],
        "Permissions-Policy": [
            "accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), geolocation=(), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), screen-wake-lock=(), sync-xhr=(), usb=(), web-share=(), xr-spatial-tracking=()"
        ]
    }
}

@BlackDex
Copy link
Collaborator

A valid response to the client should look like below. Anything else will cause the clients to generate an error.
So, for us to see what might be the issue the exact same as i provided below.
I extracted this by using tcpflow -i any -C port 8080 which i run on the Vaultwarden host and i know this is forwarded 1:1 by my reverse proxy. But you need to know what the client receives.

HTTP:

POST /identity/connect/token HTTP/1.1
Connection: close
Host: vaultwarden.domain.tld
X-Real-IP: 111.222.333.444
X-Forwarded-For: 111.222.333.444
X-Forwarded-Proto: https
Content-Length: 238
auth-email: ZXhhbXBsZUB2YXVsdHdhcmRlbi5kb21haW4udGxk
user-agent: Bitwarden_Mobile/2024.8.0 (Android 14; SDK 34; Model Android 14)
bitwarden-client-name: mobile
bitwarden-client-version: 2024.8.0
device-type: 0
content-type: application/x-www-form-urlencoded
accept-encoding: gzip

scope=api%20offline_access&client_id=mobile&username=example%40vaultwarden.tld&password=EncRypTedPasSw0Rd&deviceIdentifier=11111111-aaaa-2222-bbbb-333333333333&deviceName=Android%2014&deviceType=0&grant_type=password
HTTP/1.1 400 Bad Request
content-type: application/json
server: Rocket
permissions-policy: accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), geolocation=(), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), screen-wake-lock=(), sync-xhr=(), usb=(), web-share=(), xr-spatial-tracking=()
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
referrer-policy: same-origin
x-xss-protection: 0
content-security-policy: default-src 'self'; base-uri 'self'; form-action 'self'; object-src 'self' blob:; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; child-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-ancestors 'self' chrome-extension://nngceckbapebfimnlniiiahkandclblb chrome-extension://jbkfoedolllekgbhcbcoahefnbanhhlh moz-extension://* ; img-src 'self' data: https://haveibeenpwned.com ; connect-src 'self' https://api.pwnedpasswords.com https://api.2fa.directory https://app.simplelogin.io/api/ https://app.addy.io/api/ https://api.fastmail.com/ https://api.forwardemail.net ;
cache-control: no-cache, no-store, max-age=0
date: Mon, 19 Aug 2024 12:35:40 GMT

Body:

{
    "MasterPasswordPolicy": {
        "Object": "masterPasswordPolicy"
    },
    "TwoFactorProviders": [
        "0",
        "1",
        "2",
        "3",
        "7"
    ],
    "TwoFactorProviders2": {
        "0": null,
        "1": {
            "Email": "ex*****@vaultwarden.tld"
        },
        "2": {
            "AuthUrl": "https://api-12345678.duosecurity.com/oauth/v1/authorize?response_type=code&client_id=xxxxx"
        },
        "3": {
            "Nfc": true
        },
        "7": {
            "allowCredentials": [
                {
                    "id": "123456789abcdefghijklmnopqrstuvwxyz123456789abcdefghijklmnopqrstuvwxyz123456789abcdefg",
                    "type": "public-key"
                },
                {
                    "id": "abcdefghijklmn-1234567",
                    "type": "public-key"
                }
            ],
            "challenge": "abcdefghijklmnopqrstuvwxyz1234567890abcdefg",
            "extensions": {
                "appid": "https://vaultwarden.domain.tld/app-id.json",
                "getCredBlob": false
            },
            "rpId": "vaultwarden.domain.tld",
            "timeout": 60000,
            "userVerification": "discouraged"
        }
    },
    "error": "invalid_grant",
    "error_description": "Two factor required."
}

@BlackDex
Copy link
Collaborator

Also, i see you are using Cloudflare, it might be that something there changes the response.

@turnah
Copy link
Author

turnah commented Aug 19, 2024

Here is the tcp flow result:

POST /identity/connect/token HTTP/1.1
Host: vw.xxx.uk
User-Agent: Bitwarden_Mobile/2024.8.0 (Android 14; SDK 34; Model Pixel 8 Pro)
Content-Length: 352
Accept-Encoding: gzip, br
Auth-Email: xxx
Bitwarden-Client-Name: mobile
Bitwarden-Client-Version: 2024.8.0
Cdn-Loop: cloudflare
Cf-Connecting-Ip: 94.196.000.000
Cf-Ipcountry: GB
Cf-Ray: 8b5a6ef52f7079c5-LHR
Cf-Visitor: {"scheme":"https"}
Content-Type: application/x-www-form-urlencoded
Device-Type: 0
X-Forwarded-For: 172.69.000.000
X-Forwarded-Host: vw.xxx.uk
X-Forwarded-Proto: https
X-Real-Ip: 94.196.000.000


scope=api%20offline_access&client_id=mobile&username=myemail.co.uk&password=12345678%12345678%2FW8NbvI%2BNDVLh%2BY%3D&deviceIdentifier=1234567-7787-43b6-1234-13904bc6a1e7&deviceName=Pixel%208%20Pro&deviceType=0&grant_type=password&twoFactorToken=asdfghjkl&twoFactorProvider=3&twoFactorRemember=1

HTTP/1.1 400 Bad Request
content-type: application/json
server: Rocket
permissions-policy: accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), geolocation=(), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), screen-wake-lock=(), sync-xhr=(), usb=(), web-share=(), xr-spatial-tracking=()
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
referrer-policy: same-origin
x-xss-protection: 0
content-security-policy: default-src 'self'; base-uri 'self'; form-action 'self'; object-src 'self' blob:; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; child-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-ancestors 'self' chrome-extension://nngceckbapebfimnlniiiahkandclblb chrome-extension://jbkfoedolllekgbhcbcoahefnbanhhlh moz-extension://* ; img-src 'self' data: https://haveibeenpwned.com ; connect-src 'self' https://api.pwnedpasswords.com https://api.2fa.directory https://app.simplelogin.io/api/ https://app.addy.io/api/ https://api.fastmail.com/ https://api.forwardemail.net ;
cache-control: no-cache, no-store, max-age=0
content-length: 348
date: Mon, 19 Aug 2024 13:19:07 GMT
{"error":"","errorModel":{"message":"Failed to verify Yubikey against OTP server","object":"error"},"error_description":"","exceptionMessage":null,"exceptionStackTrace":null,"innerExceptionMessage":null,"message":"Failed to verify Yubikey against OTP server","object":"error","validationErrors":{"":["Failed to verify Yubikey against OTP server"]}}

@BlackDex
Copy link
Collaborator

That specific error message looks like an issue with configuring the YubiKey settings.
Validate the these settings, restart and test again.

vaultwarden/.env.template

Lines 432 to 438 in 669b9db

## Yubico (Yubikey) Settings
## Set your Client ID and Secret Key for Yubikey OTP
## You can generate it here: https://upgrade.yubico.com/getapikey/
## You can optionally specify a custom OTP server
# YUBICO_CLIENT_ID=11111
# YUBICO_SECRET_KEY=AAAAAAAAAAAAAAAAAAAAAAAA
# YUBICO_SERVER=http://yourdomain.com/wsapi/2.0/verify

@BlackDex
Copy link
Collaborator

Or, your Vaultwarden is not able to connect to the Yubi Server.
Check your /admin/diagnostics page for details.

@turnah
Copy link
Author

turnah commented Aug 19, 2024

I've regenerated the yubi key, updated the confid and can log into my webvault with the new (as i could the old) but same issue on beta app.

digagnostics all look green, here is the support string:

Your environment (Generated via diagnostics page)

  • Vaultwarden version: v1.32.0
  • Web-vault version: v2024.6.2b
  • OS/Arch: linux/x86_64
  • Running within a container: true (Base: Debian)
  • Environment settings overridden: false
  • Uses a reverse proxy: true
  • IP Header check: true (X-Forwarded-For)
  • Internet access: true
  • Internet access via a proxy: false
  • DNS Check: true
  • Browser/Server Time Check: true
  • Server/NTP Time Check: true
  • Domain Configuration Check: false
  • HTTPS Check: true
  • Database type: SQLite
  • Database version: 3.46.0
  • Clients used:
  • Reverse proxy and version:
  • Other relevant information:

Config (Generated via diagnostics page)

Show Running Config

Environment settings which are overridden:

{
  "_duo_akey": null,
  "_enable_duo": true,
  "_enable_email_2fa": true,
  "_enable_smtp": true,
  "_enable_yubico": true,
  "_icon_service_csp": "",
  "_icon_service_url": "",
  "_ip_header_enabled": true,
  "_max_note_size": 10000,
  "_smtp_img_src": "cid:",
  "admin_ratelimit_max_burst": 3,
  "admin_ratelimit_seconds": 300,
  "admin_session_lifetime": 20,
  "admin_token": "***",
  "allowed_iframe_ancestors": "",
  "attachments_folder": "data/attachments",
  "auth_request_purge_schedule": "30 * * * * *",
  "authenticator_disable_time_drift": false,
  "data_folder": "data",
  "database_conn_init": "",
  "database_max_conns": 10,
  "database_timeout": 30,
  "database_url": "***************",
  "db_connection_retries": 15,
  "disable_2fa_remember": false,
  "disable_admin_token": false,
  "disable_icon_download": false,
  "domain": "*****://************",
  "domain_origin": "*****://************",
  "domain_path": "",
  "domain_set": true,
  "duo_context_purge_schedule": "30 * * * * *",
  "duo_host": null,
  "duo_ikey": null,
  "duo_skey": null,
  "duo_use_iframe": false,
  "email_2fa_auto_fallback": false,
  "email_2fa_enforce_on_verified_invite": false,
  "email_attempts_limit": 3,
  "email_change_allowed": true,
  "email_expiration_time": 600,
  "email_token_size": 6,
  "emergency_access_allowed": true,
  "emergency_notification_reminder_schedule": "0 3 * * * *",
  "emergency_request_timeout_schedule": "0 7 * * * *",
  "enable_db_wal": true,
  "enable_websocket": true,
  "event_cleanup_schedule": "0 10 0 * * *",
  "events_days_retain": null,
  "experimental_client_feature_flags": "fido2-vault-credentials",
  "extended_logging": true,
  "helo_name": null,
  "hibp_api_key": null,
  "http_request_block_non_global_ips": true,
  "http_request_block_regex": null,
  "icon_blacklist_non_global_ips": true,
  "icon_blacklist_regex": null,
  "icon_cache_folder": "data/icon_cache",
  "icon_cache_negttl": 259200,
  "icon_cache_ttl": 2592000,
  "icon_download_timeout": 10,
  "icon_redirect_code": 302,
  "icon_service": "internal",
  "incomplete_2fa_schedule": "30 * * * * *",
  "incomplete_2fa_time_limit": 3,
  "increase_note_size_limit": false,
  "invitation_expiration_hours": 120,
  "invitation_org_name": "Vaultwarden",
  "invitations_allowed": true,
  "ip_header": "X-Forwarded-For",
  "job_poll_interval_ms": 30000,
  "log_file": "/var/log/vaultwarden/vaultwarden.log",
  "log_level": "warn",
  "log_timestamp_format": "%Y-%m-%d %H:%M:%S.%3f",
  "login_ratelimit_max_burst": 10,
  "login_ratelimit_seconds": 60,
  "org_attachment_limit": null,
  "org_creation_users": "",
  "org_events_enabled": false,
  "org_groups_enabled": false,
  "password_hints_allowed": true,
  "password_iterations": 600000,
  "push_enabled": true,
  "push_identity_uri": "https://identity.bitwarden.eu",
  "push_installation_id": "***",
  "push_installation_key": "***",
  "push_relay_uri": "https://push.bitwarden.eu",
  "reload_templates": false,
  "require_device_email": false,
  "rsa_key_filename": "data/rsa_key",
  "send_purge_schedule": "0 5 * * * *",
  "sendmail_command": null,
  "sends_allowed": true,
  "sends_folder": "data/sends",
  "show_password_hint": false,
  "signups_allowed": false,
  "signups_domains_whitelist": "",
  "signups_verify": false,
  "signups_verify_resend_limit": 6,
  "signups_verify_resend_time": 3600,
  "smtp_accept_invalid_certs": false,
  "smtp_accept_invalid_hostnames": false,
  "smtp_auth_mechanism": "\"Login\"",
  "smtp_debug": false,
  "smtp_embed_images": true,
  "smtp_explicit_tls": null,
  "smtp_from": "*******************",
  "smtp_from_name": "Vaultwarden (vw.xxx.uk)",
  "smtp_host": "*********************",
  "smtp_password": "***",
  "smtp_port": 587,
  "smtp_security": "starttls",
  "smtp_ssl": null,
  "smtp_timeout": 15,
  "smtp_username": "*******************",
  "templates_folder": "data/templates",
  "tmp_folder": "data/tmp",
  "trash_auto_delete_days": null,
  "trash_purge_schedule": "0 5 0 * * *",
  "use_sendmail": false,
  "use_syslog": false,
  "user_attachment_limit": null,
  "user_send_limit": null,
  "web_vault_enabled": true,
  "web_vault_folder": "web-vault/",
  "yubico_client_id": "xxx",
  "yubico_secret_key": "***",
  "yubico_server": null
}

@turnah
Copy link
Author

turnah commented Aug 19, 2024

I've also run tcp flow with a authentication app key, as it fails on the app with the same message:

POST /identity/connect/token HTTP/1.1
Host: vw.xxx.uk
User-Agent: Bitwarden_Mobile/2024.8.0 (Android 14; SDK 34; Model Pixel 8 Pro)
Content-Length: 317
Accept-Encoding: gzip, br
Auth-Email: ...
Bitwarden-Client-Name: mobile
Bitwarden-Client-Version: 2024.8.0
Cdn-Loop: cloudflare
Cf-Connecting-Ip: 94.196.000.000
Cf-Ipcountry: GB
Cf-Ray: 8b5aa43c7e16cd5c-LHR
Cf-Visitor: {"scheme":"https"}
Content-Type: application/x-www-form-urlencoded
Device-Type: 0
X-Forwarded-For: 172.70.000.000
X-Forwarded-Host: vw.xxx.uk
X-Forwarded-Proto: https
X-Real-Ip: 94.196.000.000


scope=api%20offline_access&client_id=mobile&username=myemail.co.uk&password=123456%2BYrwClbceYr56%123456%2BNDVLh%2BY%3D&deviceIdentifier=123456-7787-43b6-b195-13904bc6a1e7&deviceName=Pixel%208%20Pro&deviceType=0&grant_type=password&twoFactorToken=123456&twoFactorProvider=0&twoFactorRemember=0%20
HTTP/1.1 200 OK
content-type: application/json
server: Rocket
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
permissions-policy: accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), geolocation=(), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), screen-wake-lock=(), sync-xhr=(), usb=(), web-share=(), xr-spatial-tracking=()
referrer-policy: same-origin
x-xss-protection: 0
content-security-policy: default-src 'self'; base-uri 'self'; form-action 'self'; object-src 'self' blob:; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; child-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-ancestors 'self' chrome-extension://nngceckbapebfimnlniiiahkandclblb chrome-extension://jbkfoedolllekgbhcbcoahefnbanhhlh moz-extension://* ; img-src 'self' data: https://haveibeenpwned.com ; connect-src 'self' https://api.pwnedpasswords.com https://api.2fa.directory https://app.simplelogin.io/api/ https://app.addy.io/api/ https://api.fastmail.com/ https://api.forwardemail.net ;
cache-control: no-cache, no-store, max-age=0
content-length: 3253
date: Mon, 19 Aug 2024 13:55:29 GMT

{"ForcePasswordReset":false,"Kdf":0,"KdfIterations":600000,"KdfMemory":null,"KdfParallelism":null,"Key":"2.U...+SZQ==|eyZAY3UIY+xClaCa0URG12...Bzw+DB...WqsYrSl8Dm4=|lInVVP...n8ag=","MasterPasswordPolicy":{"object":"masterPasswordPolicy"},"PrivateKey":"2.D2RfGhNJ4Kp9+1olMQZRqw==|DYPUT...TWK0=","ResetMasterPassword":false,"UserDecryptionOptions":{"HasMasterPassword":true,"Object":"userDecryptionOptions"},"access_token":"eyJ0eXAi...BvUhMw","expires_in":7200,"refresh_token":"9123...ImQ==","scope":"api offline_access","token_type":"Bearer","unofficialServer":true}```

@tyde7
Copy link

tyde7 commented Aug 19, 2024

same problem after update to 2024.8.0, except I cannot remove yubikey from 2FA. it shows YUBICO_CLIENT_ID or YUBICO_SECRET_KEY environment variable is not set. Yubikey OTP Disabled. (I don't remember how I added it in 2FA in the first place...)

@BlackDex
Copy link
Collaborator

@turnah small warning, you did disclosed your email address, vault domain etc.. by sharing the last post.
I redacted the info, but that you know that at least.

@BlackDex
Copy link
Collaborator

BlackDex commented Aug 19, 2024

@tyde7 Are you using Cloudflare as well?
As I'm not able to reproduce this at all in any way. Also, you can remove all 2FA options via the Vaultwarden Admin /admin interface.

Also @turnah, the last post, if that really is what the client received, then it should have worked without any issue.
I'm using the exact same version of the Android app, and i can login just fine.

Please try to use the debug version from here https://github.com/bitwarden/android/actions/runs/10291080138
The -qa.apk has debug enabled and you should be able to see debug data via adb logcat.

EDIT: I updated the link to the exact same build as i have installed on my phone which is 2024.8.0 (18985).
Not sure which version you are running right now?

@turnah
Copy link
Author

turnah commented Aug 19, 2024

@turnah small warning, you did disclosed your email address, vault domain etc.. by sharing the last post. I redacted the info, but that you know that at least.

I spoiled/randomised all the tokens/keys/values; so hopefully OK! Really appreciate you doing that and your help.

@BlackDex
Copy link
Collaborator

@turnah, nope, the JWT was still able to be decoded, though partially, but still useful info was in there.
Also, the Auth-Email contained your base64 encoded mail address.

@BlackDex
Copy link
Collaborator

And, comparing the outputs, they do match exactly what i see during my tests. So the output of Vaultwarden should be valid, and something unsupported is being received by the client in some strange way.

So, we would need to see what the client receives, which is (if i remember correctly) doable via the -qa.apk version.

@turnah
Copy link
Author

turnah commented Aug 19, 2024

Lesson learned... hopefully this one is better

using logcat and the -qa version linked

08-19 18:56:48.872 19694 21919 D BitwardenNetworkClient: --> POST https://vw.xxx.uk/identity/connect/token
08-19 18:56:48.872 19694 21919 D BitwardenNetworkClient: Content-Type: application/x-www-form-urlencoded
08-19 18:56:48.874 19694 21919 D BitwardenNetworkClient: Content-Length: 355
08-19 18:56:48.874 19694 21919 D BitwardenNetworkClient: Auth-Email: xxx
08-19 18:56:48.874 19694 21919 D BitwardenNetworkClient: User-Agent: Bitwarden_Mobile/2024.8.0 (Android 14; SDK 34; Model Pixel 8 Pro)
08-19 18:56:48.874 19694 21919 D BitwardenNetworkClient: Bitwarden-Client-Name: mobile
08-19 18:56:48.874 19694 21919 D BitwardenNetworkClient: Bitwarden-Client-Version: 2024.8.0
08-19 18:56:48.875 19694 21919 D BitwardenNetworkClient: Device-Type: 0
08-19 18:56:48.876 19694 21919 D BitwardenNetworkClient: scope=api%20offline_access&client_id=mobile&username=xxxco.uk&password=xxx&deviceIdentifier=xxx&deviceName=Pixel%208%20Pro&deviceType=0&grant_type=password&twoFactorToken=xxx&twoFactorProvider=3&twoFactorRemember=0%20
08-19 18:56:48.877 19694 21919 D BitwardenNetworkClient: --> END POST (355-byte body)
08-19 18:56:49.871 19694 21919 D BitwardenNetworkClient: <-- 200 https://vw.xxx.uk/identity/connect/token (993ms)
08-19 18:56:49.871 19694 21919 D BitwardenNetworkClient: date: Mon, 19 Aug 2024 17:56:50 GMT
08-19 18:56:49.871 19694 21919 D BitwardenNetworkClient: content-type: application/json
08-19 18:56:49.872 19694 21919 D BitwardenNetworkClient: alt-svc: h3=":443"; ma=86400
08-19 18:56:49.872 19694 21919 D BitwardenNetworkClient: cache-control: no-cache, no-store, max-age=0
08-19 18:56:49.872 19694 21919 D BitwardenNetworkClient: content-security-policy: default-src 'self'; base-uri 'self'; form-action 'self'; object-src 'self' blob:; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; child-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-ancestors 'self' chrome-extension://nngceckbapebfimnlniiiahkandclblb chrome-extension://jbkfoedolllekgbhcbcoahefnbanhhlh moz-extension://* ; img-src 'self' data: https://haveibeenpwned.com ; connect-src 'self' https://api.pwnedpasswords.com https://api.2fa.directory https://app.simplelogin.io/api/ https://app.addy.io/api/ https://api.fastmail.com/ https://api.forwardemail.net ;
08-19 18:56:49.872 19694 21919 D BitwardenNetworkClient: permissions-policy: accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), geolocation=(), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), screen-wake-lock=(), sync-xhr=(), usb=(), web-share=(), xr-spatial-tracking=()
08-19 18:56:49.873 19694 21919 D BitwardenNetworkClient: referrer-policy: same-origin
08-19 18:56:49.873 19694 21919 D BitwardenNetworkClient: vary: Accept-Encoding
08-19 18:56:49.873 19694 21919 D BitwardenNetworkClient: x-content-type-options: nosniff
08-19 18:56:49.873 19694 21919 D BitwardenNetworkClient: x-frame-options: SAMEORIGIN
08-19 18:56:49.874 19694 21919 D BitwardenNetworkClient: x-xss-protection: 0
08-19 18:56:49.874 19694 21919 D BitwardenNetworkClient: cf-cache-status: DYNAMIC
08-19 18:56:49.874 19694 21919 D BitwardenNetworkClient: report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=123456"}],"group":"cf-nel","max_age":604800}
08-19 18:56:49.874 19694 21919 D BitwardenNetworkClient: nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
08-19 18:56:49.874 19694 21919 D BitwardenNetworkClient: strict-transport-security: max-age=15552000; includeSubDomains; preload
08-19 18:56:49.875 19694 21919 D BitwardenNetworkClient: server: cloudflare
08-19 18:56:49.875 19694 21919 D BitwardenNetworkClient: cf-ray: 8xxx1b0376a1-LHR
08-19 18:56:49.879 19694 21919 D BitwardenNetworkClient: {"ForcePasswordReset":false,"Kdf":0,"KdfIterations":600000,"KdfMemory":null,"KdfParallelism":null,"Key":"xxx","MasterPasswordPolicy":{"object":"masterPasswordPolicy"},"PrivateKey":"2xxx=","ResetMasterPassword":false,"UserDecryptionOptions":{"HasMasterPassword":true,"Object":"userDecryptionOptions"},"access_token":"xxx","expires_in":7200,"refresh_token":"xxx==","scope":"api offline_access","token_type":"Bearer","unofficialServer":true}
08-19 18:56:49.879 19694 21919 D BitwardenNetworkClient: <-- END HTTP (3253-byte body)

@BlackDex
Copy link
Collaborator

Strange, that output looks as it should. Are there any errors or warnings in that same output with a reason why it failed??
It looks just fine too me.

@turnah
Copy link
Author

turnah commented Aug 19, 2024

I've run it again, this time using my local instance of vaultwarden (internal caddy that uses hosts on my router) so this doesn't use cloudflare to take that out of the equation.

Her are the 2 seconds of logs

08-19 19:50:54.849 19694 27685 D BitwardenNetworkClient: <-- 200 https://vw.xxx.uk/identity/connect/token (208ms)
08-19 19:50:54.849 19694 27685 D BitwardenNetworkClient: alt-svc: h3=":443"; ma=2592000
08-19 19:50:54.849 19694 27685 D BitwardenNetworkClient: cache-control: no-cache, no-store, max-age=0
08-19 19:50:54.849 19694 27685 D BitwardenNetworkClient: content-security-policy: default-src 'self'; base-uri 'self'; form-action 'self'; object-src 'self' blob:; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; child-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-src 'self' https://*.duosecurity.com https://*.duofederal.com; frame-ancestors 'self' chrome-extension://nngceckbapebfimnlniiiahkandclblb chrome-extension://jbkfoedolllekgbhcbcoahefnbanhhlh moz-extension://* ; img-src 'self' data: https://haveibeenpwned.com ; connect-src 'self' https://api.pwnedpasswords.com https://api.2fa.directory https://app.simplelogin.io/api/ https://app.addy.io/api/ https://api.fastmail.com/ https://api.forwardemail.net ;
08-19 19:50:54.849 19694 27685 D BitwardenNetworkClient: content-type: application/json
08-19 19:50:54.849 19694 27685 D BitwardenNetworkClient: date: Mon, 19 Aug 2024 18:50:55 GMT
08-19 19:50:54.849 19694 27685 D BitwardenNetworkClient: permissions-policy: accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(), geolocation=(), gyroscope=(), keyboard-map=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), screen-wake-lock=(), sync-xhr=(), usb=(), web-share=(), xr-spatial-tracking=()
08-19 19:50:54.849 19694 27685 D BitwardenNetworkClient: referrer-policy: same-origin
08-19 19:50:54.849 19694 27685 D BitwardenNetworkClient: server: Caddy
08-19 19:50:54.849 19694 27685 D BitwardenNetworkClient: server: Rocket
08-19 19:50:54.849 19694 27685 D BitwardenNetworkClient: vary: Accept-Encoding
08-19 19:50:54.849 19694 27685 D BitwardenNetworkClient: x-content-type-options: nosniff
08-19 19:50:54.849 19694 27685 D BitwardenNetworkClient: x-frame-options: SAMEORIGIN
08-19 19:50:54.849 19694 27685 D BitwardenNetworkClient: x-xss-protection: 0
08-19 19:50:54.850 19694 27685 D BitwardenNetworkClient: {"ForcePasswordReset":false,"Kdf":0,"KdfIterations":600000,"KdfMemory":null,"KdfParallelism":null,"Key":"2.xxx=","MasterPasswordPolicy":{"object":"masterPasswordPolicy"},"PrivateKey":"xxx=","ResetMasterPassword":false,"UserDecryptionOptions":{"HasMasterPassword":true,"Object":"userDecryptionOptions"},"access_token":"xxx","expires_in":7200,"refresh_token":"xxx","scope":"api offline_access","token_type":"Bearer","unofficialServer":true}
08-19 19:50:54.851 19694 27685 D BitwardenNetworkClient: <-- END HTTP (3253-byte body)
08-19 19:50:55.264  2192  2667 W IPCThreadState: Sending oneway calls to frozen process.
08-19 19:50:55.272  2192  2667 W IPCThreadState: Sending oneway calls to frozen process.
08-19 19:50:55.324 19694 19694 I Choreographer: Skipped 55 frames!  The application may be doing too much work on its main thread.
08-19 19:50:55.337 19694 19694 W WindowOnBackDispatcher: sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda11@a5153f3
08-19 19:50:55.338  1550  2432 D CoreBackPreview: Window{f49caae u0 com.x8bit.bitwarden.dev/com.x8bit.bitwarden.MainActivity}: Setting back callback null
08-19 19:50:55.343  1550  2432 W InputManager-JNI: Input channel object 'f49caae com.x8bit.bitwarden.dev/com.x8bit.bitwarden.MainActivity (client)' was disposed without first being removed with the input manager!
08-19 19:50:55.343  1550  2432 V WindowManager: Loading animations: layout params pkg=com.x8bit.bitwarden.dev resId=0x1030309
08-19 19:50:55.343  1550  2432 V WindowManager: Loading animations: picked package=android
08-19 19:50:55.348 19694 19694 W WindowOnBackDispatcher: OnBackInvokedCallback is not enabled for the application.
08-19 19:50:55.348 19694 19694 W WindowOnBackDispatcher: Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
08-19 19:50:55.350  2192  2667 W IPCThreadState: Sending oneway calls to frozen process.
08-19 19:50:55.359  1550  1648 V WindowManager: Unknown focus tokens, dropping reportFocusChanged
08-19 19:50:55.368  1550  1612 D CoreBackPreview: Window{6381f72 u0 com.x8bit.bitwarden.dev/com.x8bit.bitwarden.MainActivity}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@1282aca, mPriority=0, mIsAnimationCallback=false}
08-19 19:50:55.378   555   570 W gralloc4: Unable to set buffer name VRI[MainActivity]#44(BLAST Consumer)44: File name too long
08-19 19:50:55.378   555   570 W gralloc4: Unable to set buffer name VRI[MainActivity]#44(BLAST Consumer)44: File name too long
08-19 19:50:55.379   555   570 W gralloc4: Unable to set buffer name VRI[MainActivity]#44(BLAST Consumer)44: File name too long
08-19 19:50:55.380   555   570 W gralloc4: Unable to set buffer name VRI[MainActivity]#44(BLAST Consumer)44: File name too long
08-19 19:50:55.380   555   570 W gralloc4: Unable to set buffer name VRI[MainActivity]#44(BLAST Consumer)44: File name too long
08-19 19:50:55.382  1550  1649 V WindowManager: Loading animations: layout params pkg=com.x8bit.bitwarden.dev resId=0x1030309
08-19 19:50:55.382  1550  1649 V WindowManager: Loading animations: picked package=android
08-19 19:50:55.395  1550  5276 I ImeTracker: com.x8bit.bitwarden.dev:1dfdb52b: onRequestShow at ORIGIN_SERVER reason ATTACH_NEW_INPUT fromUser false
08-19 19:50:55.396  3956  3956 I GoogleInputMethodService: GoogleInputMethodService.onFinishInput():3184 
08-19 19:50:55.396  3956  3956 I GoogleInputMethodService: GoogleInputMethodService.updateDeviceLockedStatus():2246 repeatCheckTimes = 0, locked = false
08-19 19:50:55.396  3956  3956 I GoogleInputMethodService: GoogleInputMethodService.onStartInput():1982 onStartInput(EditorInfo{EditorInfo{packageName=com.x8bit.bitwarden.dev, inputType=2, inputTypeString=Number, enableLearning=false, autoCorrection=false, autoComplete=false, imeOptions=2000006, privateImeOptions=null, actionName=DONE, actionLabel=null, initialSelStart=6, initialSelEnd=6, initialCapsMode=0, label=null, fieldId=-1, fieldName=null, extras=Bundle[mParcelledData.dataSize=240], hintText=null, hintLocales=[]}}, false)
08-19 19:50:55.397   687   687 W powerhal-libperfmgr: Sess(2233), cannot resume, already active
08-19 19:50:55.398  3956  3956 I GoogleInputMethodService: GoogleInputMethodService.updateDeviceLockedStatus():2246 repeatCheckTimes = 1, locked = false
08-19 19:50:55.398  3956  3956 I AndroidIME: InputBundleManager.loadActiveInputBundleId():450 loadActiveInputBundleId: und-Latn-x-number, number
08-19 19:50:55.398  3956  3956 I HardKeyTracker: HardKeyTracker.unregisterKeySequence():183 Unregister key sequence lmm{labelResId=2132019852, callback=fpg@dfc0a90, lastModifier=0, keyCodes=[57, 57], actions=[1, 0]}
08-19 19:50:55.398  3956  3956 I HardKeyTracker: HardKeyTracker.unregisterKeySequence():183 Unregister key sequence lmm{labelResId=0, callback=fpg@a495faf, lastModifier=0, keyCodes=[58, 58], actions=[1, 0]}
08-19 19:50:55.399  1550  1662 W PackageConfigPersister: App-specific configuration not found for packageName: com.x8bit.bitwarden.dev and userId: 0
08-19 19:50:55.401  3956  3956 I GoogleInputMethodService: GoogleInputMethodService.onStartInputView():2095 onStartInputView(EditorInfo{EditorInfo{packageName=com.x8bit.bitwarden.dev, inputType=2, inputTypeString=Number, enableLearning=false, autoCorrection=false, autoComplete=false, imeOptions=2000006, privateImeOptions=null, actionName=DONE, actionLabel=null, initialSelStart=6, initialSelEnd=6, initialCapsMode=0, label=null, fieldId=-1, fieldName=null, extras=Bundle[{android.support.text.emoji.emojiCompat_metadataVersion=10, android.support.text.emoji.emojiCompat_replaceAll=false}], hintText=null, hintLocales=[]}}, false)
08-19 19:50:55.402  3956  3956 I GoogleInputMethodService: GoogleInputMethodService.updateDeviceLockedStatus():2246 repeatCheckTimes = 1, locked = false
08-19 19:50:55.402  3956  3956 W AvailableModulesNotification: AvailableModulesNotification.loadModule():117 Module lom is not available
08-19 19:50:55.402  3956  3956 I KeyboardHeightUtil: KeyboardHeightUtil.getOemKeyboardHeightRatio():175 systemKeyboardHeightRatio:1.090000.
08-19 19:50:55.403  3956  3956 I KeyboardWrapper: KeyboardWrapper.activateKeyboard():576 activateKeyboard(): type=prime, status=0, imeDef=ksw{stringId=number, language=und-Latn-x-number, languageTag=und-Latn-x-number, processedConditions={}, className=com.google.android.libraries.inputmethod.ime.DummyIme, label=2132018731, keyEventInterpreter=null, inlineComposing=true, autoCapital=false, announceAutoSelectedCandidate=false, statusIcon=0, primeKeyboardType=SOFT, indicatorIcon=0, indicatorLabel=null, displayAppCompletions=false, extraValues=kso{}, processors=kuo@e2f8c9e, unacceptableMetaKeys=4098, languageSpecificSettings=0, asciiCapable=false, alwaysShowSuggestions=false, useAsciiPasswordKeyboard=false, secondaryIme=null, keyboardGroupDef=ktw@7efcf4c, phenotypeFlagId=0, localizationLanguageTag=null, supportsInlineSuggestion=false}
08-19 19:50:55.403  3956  3956 I KeyboardManager: KeyboardManager.requestKeyboard():234 Creating keyboard prime, imeId=number, cacheKey=theme_border_keyboard_mode_screen_size_5_5_keyboard_mode_screen_width_middle_stylesheet_noshadow_pgsans_pillkey_silkpopup_gm3token_hover_dark_phone_bottom4dp_navredesign
08-19 19:50:55.403  4130  5135 I A       : Keyboard closed, ending dictation. [SD]
08-19 19:50:55.403  3956  3956 I KeyboardWrapper: KeyboardWrapper.onKeyboardReady():240 onKeyboardReady(): type=prime(prime), kb=com.google.android.apps.inputmethod.latin.keyboard.LatinNumberKeyboard@f34869f
08-19 19:50:55.403  3956  3956 I KeyboardWrapper: KeyboardWrapper.doActivateKeyboard():607 doActivateKeyboard(): prime
08-19 19:50:55.404  3956  3956 I KeyboardHeightUtil: KeyboardHeightUtil.calculateMaxKeyboardBodyHeight():45 leave 321 height for app when ime window height:2697, header height:132 and isFullscreenMode:false, so the max keyboard body height is:2244
08-19 19:50:55.404  3956  3956 W Keyboard: Keyboard.getKeyboardViewHelper():574 null helper is returned: keyboardDef=ktr{processedConditions={language=en-GB, show_suggestions=true, device=phone, expressions=normal}, globalConditions={global_theme_key=theme_border_keyboard_mode_screen_size_5_5_keyboard_mode_screen_width_middle_stylesheet_noshadow_pgsans_pillkey_silkpopup_gm3token_hover_dark_phone_bottom4dp_navredesign, global_locale=en_GB, global_density_dpi=480, global_orientation=1}, className=.latin.keyboard.LatinNumberKeyboard, resourceIds=[#0x7f1708c3], initialStates=0, keyboardViewDefs=[kue{direction=LOCALE, id=#0x7f0b0150, isScalable=false, layoutId=#0x7f0e05b3, type=HEADER, touchable=true, defaultShow=false}, kue{direction=null, id=#0x7f0b0150, isScalable=true, layoutId=#0x7f0e0607, type=BODY, touchable=true, defaultShow=true}], persistentStates=0, persistentStatesPrefKey=null, popupBubbleLayoutId=#0x7f0e06a1, recentKeyLayoutId=0, recentKeyPopupLayoutId=0, recentKeyType=null, rememberRecentKey=NONE, sessionStates=0}, type=FLOATING_CANDIDATES, helpersCreated=[kha@c392002, kha@f9f6d13, null, null], context.getResources().getConfiguration(): {1.0 234mcc30mnc [en_GB] ldltr sw448dp w448dp h923dp 480dpi nrml long hdr widecg port night finger -keyb/v/h -nav/h winConfig={ mBounds=Rect(0, 0 - 1344, 2992) mAppBounds=Rect(0, 151 - 1344, 2920) mMaxBounds=Rect(0, 0 - 1344, 2992) mDisplayRotation=ROTATION_0 mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.38 fontWeightAdjustment=0}
08-19 19:50:55.404  3956  3956 W Keyboard: Keyboard.getKeyboardViewHelper():574 null helper is returned: keyboardDef=ktr{processedConditions={language=en-GB, show_suggestions=true, device=phone, expressions=normal}, globalConditions={global_theme_key=theme_border_keyboard_mode_screen_size_5_5_keyboard_mode_screen_width_middle_stylesheet_noshadow_pgsans_pillkey_silkpopup_gm3token_hover_dark_phone_bottom4dp_navredesign, global_locale=en_GB, global_density_dpi=480, global_orientation=1}, className=.latin.keyboard.LatinNumberKeyboard, resourceIds=[#0x7f1708c3], initialStates=0, keyboardViewDefs=[kue{direction=LOCALE, id=#0x7f0b0150, isScalable=false, layoutId=#0x7f0e05b3, type=HEADER, touchable=true, defaultShow=false}, kue{direction=null, id=#0x7f0b0150, isScalable=true, layoutId=#0x7f0e0607, type=BODY, touchable=true, defaultShow=true}], persistentStates=0, persistentStatesPrefKey=null, popupBubbleLayoutId=#0x7f0e06a1, recentKeyLayoutId=0, recentKeyPopupLayoutId=0, recentKeyType=null, rememberRecentKey=NONE, sessionStates=0}, type=WIDGET, helpersCreated=[kha@c392002, kha@f9f6d13, null, null], context.getResources().getConfiguration(): {1.0 234mcc30mnc [en_GB] ldltr sw448dp w448dp h923dp 480dpi nrml long hdr widecg port night finger -keyb/v/h -nav/h winConfig={ mBounds=Rect(0, 0 - 1344, 2992) mAppBounds=Rect(0, 151 - 1344, 2920) mMaxBounds=Rect(0, 0 - 1344, 2992) mDisplayRotation=ROTATION_0 mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.38 fontWeightAdjustment=0}
08-19 19:50:55.405  3956  3956 I GoogleInputMethodService: GoogleInputMethodService.startInputIfInputViewStarted():3739 startInputIfInputViewStarted(): default prime
08-19 19:50:55.405  3956  3956 I KeyboardModeManager: KeyboardModeManager.setInputViewKeyboardViewHolderProvider():618 setInputView() : supportsOneHandedMode=true supportsSplitMode=true
08-19 19:50:55.405  3956  3956 I NormalModeController: NormalModeController.getKeyboardBodyViewHolderPaddingBottom():104 currentPrimeKeyboardType:SOFT systemPaddingBottom:31
08-19 19:50:55.405  3956  3956 I AndroidIME: KeyboardViewManager.updateKeyboardBodyViewHolderPaddingBottom():510 Set finalPaddingBottom = 31 while holderPaddingBottom = 31; navigationHeight = 144
08-19 19:50:55.405  3956  3956 I KeyboardHeightUtil: KeyboardHeightUtil.calculateMaxKeyboardBodyHeight():45 leave 321 height for app when ime window height:2697, header height:132 and isFullscreenMode:false, so the max keyboard body height is:2244
08-19 19:50:55.405  3956  3956 I KeyboardHeightUtil: KeyboardHeightUtil.calculateMaxKeyboardBodyHeight():45 leave 321 height for app when ime window height:2697, header height:132 and isFullscreenMode:false, so the max keyboard body height is:2244
08-19 19:50:55.405  3956  3956 I KeyboardHeightUtil: KeyboardHeightUtil.calculateMaxKeyboardBodyHeight():45 leave 321 height for app when ime window height:2697, header height:132 and isFullscreenMode:false, so the max keyboard body height is:2244
08-19 19:50:55.405  3956  3956 I KeyboardHeightUtil: KeyboardHeightUtil.calculateMaxKeyboardBodyHeight():45 leave 321 height for app when ime window height:2697, header height:132 and isFullscreenMode:false, so the max keyboard body height is:2244
08-19 19:50:55.405  3956  3956 I NormalModeController: NormalModeController.getKeyboardBodyViewHolderPaddingBottom():104 currentPrimeKeyboardType:SOFT systemPaddingBottom:31
08-19 19:50:55.405  3956  3956 I AndroidIME: KeyboardViewManager.updateKeyboardBodyViewHolderPaddingBottom():510 Set finalPaddingBottom = 31 while holderPaddingBottom = 31; navigationHeight = 144
08-19 19:50:55.405  3956  3956 I KeyboardHeightUtil: KeyboardHeightUtil.calculateMaxKeyboardBodyHeight():45 leave 321 height for app when ime window height:2697, header height:132 and isFullscreenMode:false, so the max keyboard body height is:2244
08-19 19:50:55.405  3956  3956 I KeyboardHeightUtil: KeyboardHeightUtil.calculateMaxKeyboardBodyHeight():45 leave 321 height for app when ime window height:2697, header height:132 and isFullscreenMode:false, so the max keyboard body height is:2244
08-19 19:50:55.405  3956  3956 I KeyboardModeManager: KeyboardModeManager.setInputViewKeyboardViewHolderProvider():606 setInputView() : supportsOneHandedMode=true, supportSplitMode=true
08-19 19:50:55.405  3956  3956 I NewLanguagePromptExtension: NewLanguagePromptExtension.onActivate():184 Not activated NewLanguagePromptExtension: not a normal text input box.
08-19 19:50:55.416  3956  3956 I NgaExtension: NgaExtension.onActivate():519 NgaExtension#onActivate [SDG]
08-19 19:50:55.417  3956  3956 I NgaVoiceInputHandlerSwitcher: NgaVoiceInputHandlerSwitcher.restorePrimary():233 not switching to primary. fallback is null [SDG]
08-19 19:50:55.417  3956  3956 I NgaExtension: NgaExtension.onActivate():543 NgaExtension: interaction type=4 [SDG]
08-19 19:50:55.419  3956  3956 I ProactiveSuggestionsHolderManager: ProactiveSuggestionsHolderManager$2.display():199 Requesting to show proactive suggestions: CLIPBOARD PREEMPTIVE_WITH_SUPPRESSION, has extraSuggestions: false
08-19 19:50:55.420  3956  3956 I CurrentMicStatusHolder: CurrentMicStatusHolder.onStartInputView():81 Current Mic status = {MicIconHidden-PasswordOrNumberOrDateInputType,}
08-19 19:50:55.420  3956  3956 W AccessPointsManager: AccessPointsManager.removeAccessPoint():918 The holder controller #0x7f0b2098 is not registered
08-19 19:50:55.421  4130  5059 I A       : (REDACTED) Handling KeyboardVisibilityEvent: %s [SD]
08-19 19:50:55.427 19694 19694 W WindowOnBackDispatcher: sendCancelIfRunning: isInProgress=falsecallback=ImeCallback=ImeOnBackInvokedCallback@61726690 Callback=android.window.IOnBackInvokedCallback$Stub$Proxy@cc2e
08-19 19:50:55.427  4130  5059 I A       : (REDACTED) Starting AiAi status check using Android T API. tag=%s [SD]
08-19 19:50:55.430  3956  3956 I KeyboardHeightUtil: KeyboardHeightUtil.calculateMaxKeyboardBodyHeight():45 leave 321 height for app when ime window height:2697, header height:132 and isFullscreenMode:false, so the max keyboard body height is:2244
08-19 19:50:55.430  3956  3956 I AndroidIME: KeyboardViewManager.updateKeyboardBodyViewHolderPaddingBottom():510 Set finalPaddingBottom = 31 while holderPaddingBottom = 31; navigationHeight = 144
08-19 19:50:55.430  3956  3956 I WindowMetricsNotification: WindowMetricsNotification.notifyWithWindow():141 
08-19 19:50:55.430  3956  3956 I WindowMetricsNotification: WindowMetricsNotification.notify():134 WindowMetricsNotification{bounds=Rect(0, 151 - 1344, 2992), insets=Rect(0, 0 - 0, 144), densityDpi=480, smallestScreenWidthDp=448, displayWidth=1344, displayHeight=2992, xdpi=487.68, ydpi=490.301, isTrustable=true}; DisplayMetrics{density=3.0, width=1344, height=2992, scaledDensity=3.0, xdpi=487.68, ydpi=490.301}
08-19 19:50:55.431  1550  2228 I SpeechRecognitionManagerServiceImpl: Client 10145 has opened 9 sessions
08-19 19:50:55.433  1550  1662 D CoreBackPreview: Window{5589229 u0 com.x8bit.bitwarden.dev/com.x8bit.bitwarden.MainActivity}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@223761e, mPriority=0, mIsAnimationCallback=false}
08-19 19:50:55.433   555   570 W gralloc4: Unable to set buffer name VRI[InputMethod]#126(BLAST Consumer)126: File name too long
08-19 19:50:55.434  1550  1612 I ImeTracker: com.x8bit.bitwarden.dev:afb6b132: onRequestHide at ORIGIN_SERVER reason HIDE_UNSPECIFIED_WINDOW fromUser false
08-19 19:50:55.435  3855  3855 I AiAi    : AiAiSpeechRecognitionService#onCheckRecognitionSupport#AndroidU
08-19 19:50:55.435  3855  3855 I AiAiSpeechRecognition: #onCheckRecognitionSupport
08-19 19:50:55.436  3855  3855 I RecognitionServiceInten: (REDACTED) Trigger application overridden to %s
08-19 19:50:55.436  3855  3855 I IntentParsingUtil: (REDACTED) Using Locale.getDefault() for recognition: %s
08-19 19:50:55.436  3855  3855 I RecognitionServiceInten: #enableFirstPartyAppFeatures
08-19 19:50:55.436  3855  3855 I IntentParsingUtil: No additional languages specified in RecognizerIntent
08-19 19:50:55.437  3855  3855 I AiAiSpeechRecognition: (REDACTED) onStartCheckRecognitionSupport(): callingPackageName: %s
08-19 19:50:55.437  3855  3855 I ModelManagerImpl: #onCheckRecognitionSupport
08-19 19:50:55.437  3855  3855 I DefaultLPManager: #getAvailablePackages
08-19 19:50:55.438  3855  3855 I tlu     : #getDownloadableLanguagePacks
08-19 19:50:55.438  3855  3855 I LanguagePackConfigImpl: (REDACTED) Loaded languagepack (LP) flag value from latest config %s: %s
08-19 19:50:55.438  3855  3855 W SystemLPSourceImpl: #getAvailablePackages: Note there is not reason to call this method, as getInstalledPackages() returns the same LanguagePacks for this impl.
08-19 19:50:55.438  3855  3855 I DefaultLPManager: #getRequestedPackages
08-19 19:50:55.438  3855  3855 I ZipLPPopulator: #addNewFileGroups
08-19 19:50:55.438  3956  3956 I GoogleInputMethodService: GoogleInputMethodService$1.onKeyboardViewShown():485 onKeyboardViewShown: keyboardType=prime, keyboardViewType=HEADER keyboardView=com.google.android.libraries.inputmethod.widgets.SoftKeyboardView{39a1631 V.E...... ........ 0,0-1344,132}
08-19 19:50:55.438  3855  3855 I tlu     : #getDownloadableLanguagePacks
08-19 19:50:55.438  3855  3855 I LanguagePackConfigImpl: (REDACTED) Loaded languagepack (LP) flag value from latest config %s: %s
08-19 19:50:55.438  3855  3855 W SystemLPSourceImpl: #getRequestedPackages: There is not reason to call this method, as the result is always empty.
08-19 19:50:55.438  3855  3855 I DefaultLPManager: #getAvailablePackages
08-19 19:50:55.438  3855  3855 I tlu     : #getDownloadableLanguagePacks
08-19 19:50:55.438  3855  3855 I LanguagePackConfigImpl: (REDACTED) Loaded languagepack (LP) flag value from latest config %s: %s
08-19 19:50:55.438  3855  3855 W SystemLPSourceImpl: #getAvailablePackages: Note there is not reason to call this method, as getInstalledPackages() returns the same LanguagePacks for this impl.
08-19 19:50:55.438  3855  3855 I DefaultLPManager: #getInstalledPackages
08-19 19:50:55.438  3855  3855 I tlu     : #getInstalledPackages
08-19 19:50:55.438  3855  3855 I tlu     : MDD.getFileGroupsByFilter(langpack-domain_xx-XX_ver_zipfile)
08-19 19:50:55.438  3956  3956 I KeyboardHeightUtil: KeyboardHeightUtil.calculateMaxKeyboardBodyHeight():45 leave 321 height for app when ime window height:2697, header height:132 and isFullscreenMode:false, so the max keyboard body height is:2244
08-19 19:50:55.438  3956  3956 I GoogleInputMethodService: GoogleInputMethodService$1.onKeyboardViewShown():485 onKeyboardViewShown: keyboardType=prime, keyboardViewType=BODY keyboardView=com.google.android.libraries.inputmethod.widgets.SoftKeyboardView{2173425 V.E...... ........ 0,0-1344,798}
08-19 19:50:55.438  3956  3956 I NewLanguagePromptExtension: NewLanguagePromptExtension$1.onKeyboardViewShown():86 Not show new language banner: not prime keyboard, or the extension not activated.
08-19 19:50:55.439  3956  3956 I KeyboardHeightUtil: KeyboardHeightUtil.calculateMaxKeyboardBodyHeight():45 leave 321 height for app when ime window height:2697, header height:132 and isFullscreenMode:false, so the max keyboard body height is:2244
08-19 19:50:55.439  3956  3956 I WindowMetricsNotification: WindowMetricsNotification.notifyWithWindow():141 
08-19 19:50:55.439  3956  3956 I WindowMetricsNotification: WindowMetricsNotification.notify():134 WindowMetricsNotification{bounds=Rect(0, 151 - 1344, 2992), insets=Rect(0, 0 - 0, 144), densityDpi=480, smallestScreenWidthDp=448, displayWidth=1344, displayHeight=2992, xdpi=487.68, ydpi=490.301, isTrustable=true}; DisplayMetrics{density=3.0, width=1344, height=2992, scaledDensity=3.0, xdpi=487.68, ydpi=490.301}
08-19 19:50:55.439  3956  3956 I WindowMetricsNotification: WindowMetricsNotification.notifyWithWindow():141 
08-19 19:50:55.439  3956  3956 I WindowMetricsNotification: WindowMetricsNotification.notify():134 WindowMetricsNotification{bounds=Rect(0, 151 - 1344, 2992), insets=Rect(0, 0 - 0, 144), densityDpi=480, smallestScreenWidthDp=448, displayWidth=1344, displayHeight=2992, xdpi=487.68, ydpi=490.301, isTrustable=true}; DisplayMetrics{density=3.0, width=1344, height=2992, scaledDensity=3.0, xdpi=487.68, ydpi=490.301}
08-19 19:50:55.439  1550  1662 D CoreBackPreview: Window{5589229 u0 com.x8bit.bitwarden.dev/com.x8bit.bitwarden.MainActivity}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@47194cc, mPriority=0, mIsAnimationCallback=false}
08-19 19:50:55.439  3855  4415 E VoiceSearchConfigProtoU: (REDACTED) Unrecognized recognizer for [%s, %d]: %d. Ignoring it and its associated features.
08-19 19:50:55.439  3855  4614 I SystemLPSourceImpl: (REDACTED) Parsed system partition LanguagePack metadata file: %s
08-19 19:50:55.439  3855  4415 E VoiceSearchConfigProtoU: (REDACTED) Unrecognized recognizer for [%s, %d]: %d. Ignoring it and its associated features.
08-19 19:50:55.440  3855  4614 I SystemLPSourceImpl: (REDACTED) Parsed system partition LanguagePack metadata file: %s
08-19 19:50:55.440  3855  4415 E VoiceSearchConfigProtoU: (REDACTED) Unrecognized recognizer for [%s, %d]: %d. Ignoring it and its associated features.
08-19 19:50:55.440  3855  4614 I SystemLPSourceImpl: (REDACTED) Parsed system partition LanguagePack metadata file: %s
08-19 19:50:55.440  3855  4415 E VoiceSearchConfigProtoU: (REDACTED) Unrecognized recognizer for [%s, %d]: %d. Ignoring it and its associated features.
08-19 19:50:55.440  3956  3956 I KeyboardHeightUtil: KeyboardHeightUtil.calculateMaxKeyboardBodyHeight():45 leave 321 height for app when ime window height:2697, header height:132 and isFullscreenMode:false, so the max keyboard body height is:2244
08-19 19:50:55.440  3956  3956 I AndroidIME: KeyboardViewManager.updateKeyboardBodyViewHolderPaddingBottom():510 Set finalPaddingBottom = 31 while holderPaddingBottom = 31; navigationHeight = 144
08-19 19:50:55.442  3956  3956 I GoogleInputMethodService: GoogleInputMethodService.onFinishInputView():2434 
08-19 19:50:55.442  1550  1662 D CoreBackPreview: Window{6381f72 u0 com.x8bit.bitwarden.dev/com.x8bit.bitwarden.MainActivity}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@b0cd62a, mPriority=0, mIsAnimationCallback=false}
08-19 19:50:55.442   555   570 W gralloc4: Unable to set buffer name VRI[InputMethod]#126(BLAST Consumer)126: File name too long
08-19 19:50:55.446  3855  4415 E VoiceSearchConfigProtoU: (REDACTED) Unrecognized recognizer for [%s, %d]: %d. Ignoring it and its associated features.
08-19 19:50:55.447  3855  4415 E VoiceSearchConfigProtoU: (REDACTED) Unrecognized recognizer for [%s, %d]: %d. Ignoring it and its associated features.
08-19 19:50:55.447  3855  4415 E VoiceSearchConfigProtoU: (REDACTED) Unrecognized recognizer for [%s, %d]: %d. Ignoring it and its associated features.
08-19 19:50:55.447  3855  4415 E VoiceSearchConfigProtoU: (REDACTED) Unrecognized recognizer for [%s, %d]: %d. Ignoring it and its associated features.
08-19 19:50:55.449  4130  4534 I A       : fetchDeviceUserNames() : Updated the device user names list [SD]
08-19 19:50:55.450  4130  4534 I A       : refreshContacts() : Updated the contacts list [SD]
08-19 19:50:55.451 19694 19694 W RemoteInputConnectionImpl: requestCursorUpdates on inactive InputConnection
08-19 19:50:55.451  3855  4614 E VoiceSearchConfigProtoU: (REDACTED) Unrecognized recognizer for [%s, %d]: %d. Ignoring it and its associated features.
08-19 19:50:55.451 19694 19694 D InsetsController: show(ime(), fromIme=true)
08-19 19:50:55.452  3956  3956 W TooltipLifecycleManager: TooltipLifecycleManager.dismissTooltips():153 Tooltip with id spell_check_add_to_dictionary not found in tooltipManager.
08-19 19:50:55.452  3956  3956 I NgaExtension: NgaExtension.onDeactivate():558 NgaExtension#onDeactivate [SDG]
08-19 19:50:55.452  3956  3956 W AccessPointsManager: AccessPointsManager.removeAccessPoint():918 The holder controller #0x7f0b2098 is not registered
08-19 19:50:55.452  3956 27332 I NgaDataShareClient: NgaDataShareClient.sendCorrectionsAndEndSession():377 endDataPushSession() [SDG]
08-19 19:50:55.452  3956 27332 I NgaDataShareClient: NgaDataShareClient.sendCorrectionsList():385 sendCorrectionsList() [SDG]
08-19 19:50:55.452  3956 27332 W NgaDataShareClient: NgaDataShareClient.getClientInfo():479 null TriggerApplicationId provided. [SDG]
08-19 19:50:55.452  3855  4415 E VoiceSearchConfigProtoU: (REDACTED) Unrecognized recognizer for [%s, %d]: %d. Ignoring it and its associated features.
08-19 19:50:55.452  3956 27332 W NotificationCenter: NotificationCenter.unregisterListener():468 Listener fpt@5a47b0f was not registered for notification class key
08-19 19:50:55.452  3956 27332 W NotificationCenter: NotificationCenter.unregisterListener():468 Listener fps@121279c was not registered for notification class kap
08-19 19:50:55.452  3956  3956 W NotificationCenter: NotificationCenter.unregisterListener():468 Listener foy@8203c22 was not registered for notification class kap
08-19 19:50:55.453  3855  4415 E VoiceSearchConfigProtoU: (REDACTED) Unrecognized recognizer for [%s, %d]: %d. Ignoring it and its associated features.
08-19 19:50:55.453  3855  4415 E VoiceSearchConfigProtoU: (REDACTED) Unrecognized recognizer for [%s, %d]: %d. Ignoring it and its associated features.
08-19 19:50:55.453  3855  4415 E VoiceSearchConfigProtoU: (REDACTED) Unrecognized recognizer for [%s, %d]: %d. Ignoring it and its associated features.
08-19 19:50:55.453  3956  3956 W AccessPointsManager: AccessPointsManager.removeAccessPoint():918 The holder controller #0x7f0b2098 is not registered
08-19 19:50:55.454  3956  3956 I KeyboardHeightUtil: KeyboardHeightUtil.calculateMaxKeyboardBodyHeight():45 leave 321 height for app when ime window height:2697, header height:132 and isFullscreenMode:false, so the max keyboard body height is:2244
08-19 19:50:55.454  3956  3956 I AndroidIME: KeyboardViewManager.updateKeyboardBodyViewHolderPaddingBottom():510 Set finalPaddingBottom = 31 while holderPaddingBottom = 31; navigationHeight = 144
08-19 19:50:55.455 19694 19694 D InsetsController: hide(ime(), fromIme=true)
08-19 19:50:55.455 19694 19694 I ImeTracker: com.x8bit.bitwarden.dev:1dfdb52b: onCancelled at PHASE_CLIENT_ANIMATION_CANCEL
08-19 19:50:55.456  3956  3956 I GoogleInputMethodService: GoogleInputMethodService.onFinishInput():3184 
08-19 19:50:55.456  4130  5134 I A       : shareCorrections()
08-19 19:50:55.456   555   570 W gralloc4: Unable to set buffer name VRI[InputMethod]#126(BLAST Consumer)126: File name too long
08-19 19:50:55.456  3956  3956 I GoogleInputMethodService: GoogleInputMethodService.updateDeviceLockedStatus():2246 repeatCheckTimes = 0, locked = false
08-19 19:50:55.456  3956  3956 I GoogleInputMethodService: GoogleInputMethodService.onStartInput():1982 onStartInput(EditorInfo{EditorInfo{packageName=com.x8bit.bitwarden.dev, inputType=0, inputTypeString=NULL, enableLearning=false, autoCorrection=false, autoComplete=false, imeOptions=0, privateImeOptions=null, actionName=UNSPECIFIED, actionLabel=null, initialSelStart=-1, initialSelEnd=-1, initialCapsMode=0, label=null, fieldId=0, fieldName=null, extras=null, hintText=null, hintLocales=[]}}, false)
08-19 19:50:55.456  3956  3956 I GoogleInputMethodService: GoogleInputMethodService.updateDeviceLockedStatus():2246 repeatCheckTimes = 1, locked = false
08-19 19:50:55.457  3956  3956 I AndroidIME: InputBundleManager.loadActiveInputBundleId():450 loadActiveInputBundleId: und-Latn-x-password, password
08-19 19:50:55.457  3956  3956 I HardKeyTracker: HardKeyTracker.registerKeySequence():139 Register key sequence lmm{labelResId=2132019852, callback=fpg@2a8f387, lastModifier=0, keyCodes=[57, 57], actions=[1, 0]}
08-19 19:50:55.457  3956  3956 I HardKeyTracker: HardKeyTracker.registerKeySequence():139 Register key sequence lmm{labelResId=0, callback=fpg@43a7a52, lastModifier=0, keyCodes=[58, 58], actions=[1, 0]}
08-19 19:50:55.457  1550  5276 W PackageConfigPersister: App-specific configuration not found for packageName: com.x8bit.bitwarden.dev and userId: 0
08-19 19:50:55.458  2056  2079 D WindowManagerShell: onKeepClearAreasChanged: restricted={}, unrestricted={Rect(0, 1887 - 1344, 2992)}
08-19 19:50:55.463 19694 19694 W WindowOnBackDispatcher: sendCancelIfRunning: isInProgress=falsecallback=ImeCallback=ImeOnBackInvokedCallback@61726690 Callback=android.window.IOnBackInvokedCallback$Stub$Proxy@cc2e
08-19 19:50:55.468  1550  2228 D CoreBackPreview: Window{6381f72 u0 com.x8bit.bitwarden.dev/com.x8bit.bitwarden.MainActivity}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@3e9c8fc, mPriority=0, mIsAnimationCallback=false}
08-19 19:50:55.471  3855  4415 I LPRequestState: (REDACTED) [%s] #resolveDesiredLanguagePacks
08-19 19:50:55.473  3855  4415 I LPRequestState: (REDACTED) Assigning language pack %s for request %s
08-19 19:50:55.473  3855  4415 I LPRequestState: (REDACTED) Assigning language pack %s for request %s
08-19 19:50:55.473 19694 19694 I ImeTracker: com.x8bit.bitwarden.dev:afb6b132: onCancelled at PHASE_CLIENT_ANIMATION_CANCEL
08-19 19:50:55.473  3855  4415 I LPDownloadSettingsState: (REDACTED) Defaulting LP download condition to %s as user has not edited settings.
08-19 19:50:55.473  3855  4415 I LPDownloadSettingsState: (REDACTED) Defaulting LP download condition to %s as user has not edited settings.
08-19 19:50:55.474  3855  4415 I ZipLPPopulator: (REDACTED) MDD.addFileGroup(%s, %s)
08-19 19:50:55.474  3855  4415 I ZipLPPopulator: (REDACTED) MDD.addFileGroup(%s, %s)
08-19 19:50:55.474  3855  4415 I ZipLPPopulator: (REDACTED) Updated file group for group '%s' from location: %s
08-19 19:50:55.474 19694 19694 I ImeTracker: com.x8bit.bitwarden.dev:d4582ed4: onRequestHide at ORIGIN_CLIENT reason HIDE_SOFT_INPUT_ON_ANIMATION_STATE_CHANGED fromUser false
08-19 19:50:55.475  3855  4415 I ZipLPPopulator: (REDACTED) Updated file group for group '%s' from location: %s
08-19 19:50:55.475  3855  4415 I ZipLPPopulator: #addNewFileGroups complete
08-19 19:50:55.475 19694 19694 I ImeTracker: com.x8bit.bitwarden.dev:d4582ed4: onFailed at PHASE_CLIENT_VIEW_SERVED
08-19 19:50:55.475  3855  4415 I tlu     : #getPendingPackages
08-19 19:50:55.475  3855  4415 I tlu     : MDD.getFileGroupsByFilter(langpack-domain_xx-XX_ver_zipfile)
08-19 19:50:55.479  2056  2079 D WindowManagerShell: onKeepClearAreasChanged: restricted={}, unrestricted={}
08-19 19:50:55.483  3855  4415 I ModelManagerImpl: (REDACTED) ModelManager has support for: [%s]
08-19 19:50:55.483  3855  4415 I ModelManagerImpl: (REDACTED) ModelManager pending download for: [%s]
08-19 19:50:55.483  3855  4415 I ModelManagerImpl: (REDACTED) ModelManager has installed: [%s]
08-19 19:50:55.483  3855  4415 I AiAiSpeechRecognition: (REDACTED) onEndCheckRecognitionSupport success: %s
08-19 19:50:55.485  4130  5135 I A       : (REDACTED) RecognitionSupportCallback.onSupportResult tag=%s [SD]
08-19 19:50:55.486  4130  5135 I A       : (REDACTED) AiAi installed languages: %s tag=%s [SD]
08-19 19:50:55.486  4130  5135 I A       : (REDACTED) AiAi pending languages: %s tag=%s [SD]
08-19 19:50:55.486  4130  5135 I A       : (REDACTED) AiAi supported languages: %s tag=%s [SD]
08-19 19:50:55.487  4130  5134 I A       : (REDACTED) Current package suspended=%s [SD]
08-19 19:50:55.488  4130  5135 I A       : (REDACTED) GellerException: (%s) for accountId: %s. Skipping account. [SD]
08-19 19:50:55.495  4130  5134 I A       : (REDACTED) SAA bit for setting %s, account %s: %s. [SD]
08-19 19:50:55.495  4130  5134 I A       : (REDACTED) SAA bit for setting %s, account %s: %s. [SD]
08-19 19:50:55.495  4130  5134 I A       : (REDACTED) SAA bit for setting %s, account %s: %s. [SD]
08-19 19:50:55.495  4130  5134 I A       : (REDACTED) SAA bit for setting %s, account %s: %s. [SD]
08-19 19:50:55.503  4130  5135 I A       : (REDACTED) SAA bit for setting %s, account %s: %s. [SD]
08-19 19:50:55.503  4130  5135 I A       : (REDACTED) SAA bit for setting %s, account %s: %s. [SD]
08-19 19:50:55.503  4130  5135 I A       : (REDACTED) SAA bit for setting %s, account %s: %s. [SD]
08-19 19:50:55.503  4130  5135 I A       : (REDACTED) SAA bit for setting %s, account %s: %s. [SD]
08-19 19:50:55.507  4130  4829 I A       : (REDACTED) Dictation is enabled. workprofile=%s [SD]
08-19 19:50:55.508  4130  5137 I A       : (REDACTED) Dictation is not enabled in the currently focused input field: %s workprofile=%s [SD]
08-19 19:50:55.509  4130  5137 I A       : Automatic switching disabled because AiAi is not compatible [SD]
08-19 19:50:55.511  4130  5137 I A       : Automatic switching disabled because lang-id is not available [SD]
08-19 19:50:55.511  4130  5137 I A       : Automatic switching disabled because Gboard setting is not shown [SD]
08-19 19:50:55.511  4130  5137 I A       : Automatic switching disabled because there aren't enough supported keyboard languages [SD]
08-19 19:50:55.513  4130  5137 I A       : (REDACTED) Keyboard notified that eligibility=%s [SD]
08-19 19:50:55.514  4130  5133 I A       : #onKeyboardShown scheduled [SD]
08-19 19:50:55.514  3956  3956 I NgaStateManager: NgaStateManager.setAssistantDictationEligibility():182 AssistantDictationEligibility = 10 [SDG]
08-19 19:50:55.514  3956  3956 I NgaStateManager: NgaStateManager.lambda$setAssistantDictationEligibility$0():194 AssistantDictationEligibility(config, en-GB) = 1 [SDG]
08-19 19:50:55.514  3956  3956 I NgaStateManager: NgaStateManager.setAssistantDictationEligibility():201 AssistantDictationEligibility(inputField) = 10 [SDG]
08-19 19:50:55.514  4130  5134 I A       : (REDACTED) Handling KeyboardVisibilityEvent: %s [SD]
08-19 19:50:55.515  4130  4829 I A       : #onKeyboardShown [SD]
08-19 19:50:55.959  2192  2667 W IPCThreadState: Sending oneway calls to frozen process.
08-19 19:50:56.033   871   900 D CHRE    : @ 29555.492: [ActivityPlatform] type 4, confidence 33
08-19 19:50:56.039  2192  2667 W IPCThreadState: Sending oneway calls to frozen process.
08-19 19:50:56.063  2192  2667 W IPCThreadState: Sending oneway calls to frozen process.
08-19 19:50:56.118  4130  4829 I A       : Keyboard closed, ending dictation. [SD]
08-19 19:50:56.198  2192  2667 W IPCThreadState: Sending oneway calls to frozen process.
08-19 19:50:56.206  2192  2667 W IPCThreadState: Sending oneway calls to frozen process.
08-19 19:50:56.220  2192  2667 W IPCThreadState: Sending oneway calls to frozen process.
08-19 19:50:56.294  2192  2667 W IPCThreadState: Sending oneway calls to frozen process.
08-19 19:50:56.303  2192  2667 W IPCThreadState: Sending oneway calls to frozen process.
08-19 19:50:56.446  3873  7889 I HDM.SodaTrigFrontend: (REDACTED) appOpsListener %s %s
08-19 19:50:56.447  3873  7889 I HDM.SodaTrigFrontend: (REDACTED) Ignoring irrelevant audio permission changes for package %s
08-19 19:50:56.455  3956 27334 I KeyboardActiveSessionStreamManager: KeyboardActiveSessionStreamManager.closeStream():118 Closing stream. [SDG]
08-19 19:50:56.460  4130  5134 I A       : (REDACTED) %s completed by the client [SD]
08-19 19:50:56.461  4130  4829 I A       : (REDACTED) Shutting down %s [SD]
08-19 19:50:56.465  4130  5134 I A       : (REDACTED) Forgetting %s [SD]
08-19 19:50:56.466  3956 27334 I KeyboardActiveSessionStreamManager: KeyboardActiveSessionStreamManager$AssistantEventObserver.onCompleted():252 Assistant event stream completed. [SDG]
08-19 19:50:56.692   935  1018 I WifiHAL : Creating message to get link statistics; iface = 47
08-19 19:50:56.812   935  1018 I WifiHAL : In GetLinkStatsCommand::handleResponse
08-19 19:50:56.812  1550  1874 D ActivityManager: freezing 4569 com.whatsapp
08-19 19:50:56.814   935  1018 E IPCThreadState: binder thread pool (1 threads) starved for 122 ms
08-19 19:50:56.818  1550  1926 D InetDiagMessage: Destroyed 0 sockets, proto=IPPROTO_TCP, family=AF_INET, states=14
08-19 19:50:56.818   554   554 D DisplayDevice: setDesiredMode 4619827535830457088 {mode=60.00 Hz (60.00 Hz(60.00 Hz)), emitEvent=true, force=false}
08-19 19:50:56.819   558  2024 D hwc-display: setActiveConfigWithConstraints:: PrimaryDisplay config(36) test(0)
08-19 19:50:56.819   558  2024 D hwc-display: [PrimaryDisplay] OperationRateManager::onConfig:rate=60
08-19 19:50:56.819   558  2024 I hwc-display: [PrimaryDisplay] OperationRateManager::updateOperationRateLocked:Target@120(desired:120) | Refresh@60(peak:2147483647), Battery:OK, DBV:619(NsMin:1172)
08-19 19:50:56.819   558  2024 I hwc-display: [PrimaryDisplay] setActiveConfigWithConstraints: config(36)
08-19 19:50:56.821  1550  1926 D InetDiagMessage: Destroyed 1 sockets, proto=IPPROTO_TCP, family=AF_INET6, states=14
08-19 19:50:56.821  1550  1926 D InetDiagMessage: Destroyed live tcp sockets for uids={10302} in 5ms
08-19 19:50:56.828  1550  1648 I DisplayDeviceRepository: Display device changed: DisplayDeviceInfo{"Built-in Screen": uniqueId="local:4619827535830457088", 1344 x 2992, modeId 1, renderFrameRate 60.0, defaultModeId 2, userPreferredModeId 2, supportedModes [{id=1, width=1344, height=2992, fps=60.0, vsync=60.0, alternativeRefreshRates=[120.00001], supportedHdrTypes=[2, 3, 4]}, {id=2, width=1344, height=2992, fps=120.00001, vsync=120.00001, alternativeRefreshRates=[60.0], supportedHdrTypes=[2, 3, 4]}, {id=3, width=1008, height=2244, fps=120.00001, vsync=120.00001, alternativeRefreshRates=[60.0], supportedHdrTypes=[2, 3, 4]}, {id=4, width=1008, height=2244, fps=60.0, vsync=60.0, alternativeRefreshRates=[120.00001], supportedHdrTypes=[2, 3, 4]}], colorMode 0, supportedColorModes [0, 7, 9], hdrCapabilities HdrCapabilities{mSupportedHdrTypes=[2, 3, 4], mMaxLuminance=1000.0, mMaxAverageLuminance=120.0, mMinLuminance=5.0E-4}, allmSupported false, gameContentTypeSupported false, density 480, 487.68 x 490.301 dpi, appVsyncOff 6233334, presDeadline 11500000, cutout DisplayCutout{insets=Rect(0, 151 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(616, 0 - 726, 151), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1344 displayHeight=2992 physicalDisplayWidth=1344 physicalDisplayHeight=2992 density={3.0} cutoutSpec={M 628.75,75 a 43.25,43.25 0 1 0 86.5,0 a 43.25,43.25 0 1 0 -86.5,0 Z @left} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}} sideOverrides={}}, touch INTERNAL, rotation 0, type INTERNAL, address {port=0, model=0x401cecaabcbe1b}, deviceProductInfo DeviceProductInfo{name=HK3-A0B-00, manufacturerPnpId=GGL, productId=0, modelYear=null, manufactureDate=ManufactureDate{week=1, year=1990}, connectionToSinkType=0}, state ON, committedState ON, frameRateOverride , brightnessMinimum 0.0, brightnessMaximum 1.0, brightnessDefault 0.08711423, hdrSdrRatio 1.0, roundedCorners RoundedCorners{[RoundedCorner{position=TopLeft, radius=91, center=Point(91, 91)}, RoundedCorner{position=TopRight, radius=91, center=Point(1253, 91)}, RoundedCorner{position=BottomRight, radius=91, center=Point(1253, 2901)}, RoundedCorner{position=BottomLeft, radius=91, center=Point(91, 2901)}]}, FLAG_ALLOWED_TO_BE_DEFAULT_DISPLAY, FLAG_ROTATES_WITH_CONTENT, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, FLAG_TRUSTED, installOrientation 0, displayShape DisplayShape{ spec=1208095170 displayWidth=1344 displayHeight=2992 physicalPixelDisplaySizeRatio=1.0 rotation=0 offsetX=0 offsetY=0 scale=1.0}}
08-19 19:50:56.830  1550  1748 D BrightnessThermalClamper: Thermal status observer already started
08-19 19:50:56.830  1550  1648 W IPCThreadState: Sending oneway calls to frozen process.
08-19 19:50:56.830  1550  1748 D BrightnessPowerClamper: Power throttling data is missing for configuration data.
08-19 19:50:56.830  1550  1648 W IPCThreadState: Sending oneway calls to frozen process.
08-19 19:50:56.831  1550  1648 D DisplayManagerService: Ignore redundant display event 0/2 to 10125/4531

@ManuVice
Copy link

I have the exact same issue like you.
The problem only occurs on android old app and beta app.
I use Cloudflare and NPM.

I can reproduce the error on a public vaultwarden server vault.pwbox.de

Desktop app Windows and Linux and browser apps work fine with 2FA

@Webserve
Copy link

The same error here. Just tried the new beta app. I'm using DUO

@BlackDex
Copy link
Collaborator

Very strange. I'm just unable to reproduce this on my environment at all. The responses all look ok as far as i can see.

It is going to be very hard to fix this without me being able to reproduce this with an environment i can control.

@Webserve
Copy link

Webserve commented Aug 19, 2024

Very strange. I'm just unable to reproduce this on my environment at all. The responses all look ok as far as i can see.

It is going to be very hard to fix this without me being able to reproduce this with an environment i can control.

Just updated to the latest version and its working now :O.
Dont know it was the restart or the update.

(Didn't knew there was a new version :-)

@BlackDex
Copy link
Collaborator

@ManuVice, I am unable to reproduce this via pwbox either using Bitwarden Mobile Beta.
I'm not sure what issue you have, but this is just not reproducible for me in any way.

@ManuVice
Copy link

Thank you 👍 I will debug my phone and post information if I find something.

@BlackDex BlackDex added the troubleshooting There might be bug or it could be user error, more info needed label Aug 20, 2024
@ManuVice
Copy link

I have tried another phone. With 2024.7.1 2FA is working fine, 2024.8 (18985) same error on my own vault and at pwbox.
At Bitwarden.eu I can login with Mobile Beta 2024.8 (18985), but it never asks me to insert 2FA. It will immediately login after my Master-Password (tried it 5 times).

I have create a logcat, but I think its not a problem of Vaultwarden Logcat

@BlackDex
Copy link
Collaborator

@ManuVice, I'm not seeing any output from the Bitwarden app. That will only happen when using the -qa.apk file.
While it also doesn't provide any useful info for me btw, it does show the http requests and responses, but that is all.
No error's or backtraces or something like that.

@ManuVice
Copy link

ManuVice commented Sep 9, 2024

Do you mean something like Authentik?

No, I dont use something like that

@sbhal
Copy link

sbhal commented Sep 9, 2024

After removing "password": null, don't forget to empty the Trash on the web console, as the Trash is client-specific and not synced. Emptying the Trash on one client alone is not sufficient.

@turnah
Copy link
Author

turnah commented Sep 9, 2024

Appreciate your help with this one - testing tag has fixed for me

@BlackDex
Copy link
Collaborator

BlackDex commented Sep 9, 2024

The testing tagged images should resolve all these issues as the PR was merged today.

@ghanjiboy
Copy link

Thank you for fixing this issue. Do you have an idea when this change would be released? If its a while away or unknown, is the recommended approach to use the testing image that was generated today?

@BlackDex
Copy link
Collaborator

BlackDex commented Sep 9, 2024

I hope this fix is enough. If so releasing a new version shouldn't be that far away.

@gmcinalli
Copy link

gmcinalli commented Sep 19, 2024

Hi @halms, this is teally strange, I'm on the testing version of Vaultwarden now, I exported the vault in JSON (not encrypted), I don't have any null password in the passwordHistory entry, but still the new app doesn't work.

@Gerardv514
Copy link

Hi @halms, this is teally strange, I'm on the testing version of Vaultwarden now, I exported the vault in JSON (not encrypted), I don't have any null password in the passwordHistory entry, but still the new app doesn't work.

Sounds like it’s a different issue then. Can you provide more details of your setup? Details of your entries etc to find the “what else” could be leading to the issues.

@gmcinalli
Copy link

@Gerardv514 Nevermind, I don't know how but after using the testing image for few days and now returning to the last official one, everything works normally in the new iOS app, push notifications, sync, everything.

I don't know if the testing server when it started the first time did some cleaning of my vault.

@Gerardv514
Copy link

Are you sure you were on testing? Meaning you physically confirmed via admin/diagnostic page and saw the testing version number?

@gmcinalli
Copy link

@Gerardv514 Yes, I've completely rebuilt the container after changing the version on my compose file.

@deThommy
Copy link

I just don't get it anymore. I'm self-hosted on vaultwarden 1.32.0. Cannot make Bitwarden iOS Apps work on iOS18 ("an error occurred"). Webvault, windows clients, browser extensions and MacOS Sonoma all are still working -- YET i just tried logging into several website using Passkey on my iOS18 devices and to my surprise it worked like it always has (even though I'm not even logged in with Bitwarden, but the Passkey-Pop up just works. Does that make sense? For me it doesnt

@Gerardv514
Copy link

I just don't get it anymore. I'm self-hosted on vaultwarden 1.32.0. Cannot make Bitwarden iOS Apps work on iOS18 ("an error occurred"). Webvault, windows clients, browser extensions and MacOS Sonoma all are still working -- YET i just tried logging into several website using Passkey on my iOS18 devices and to my surprise it worked like it always has (even though I'm not even logged in with Bitwarden, but the Passkey-Pop up just works. Does that make sense? For me it doesnt

What is your iOS client app version?

@deThommy
Copy link

I just don't get it anymore. I'm self-hosted on vaultwarden 1.32.0. Cannot make Bitwarden iOS Apps work on iOS18 ("an error occurred"). Webvault, windows clients, browser extensions and MacOS Sonoma all are still working -- YET i just tried logging into several website using Passkey on my iOS18 devices and to my surprise it worked like it always has (even though I'm not even logged in with Bitwarden, but the Passkey-Pop up just works. Does that make sense? For me it doesnt

What is your iOS client app version?

Latest version that came out 3 days ago: 2024.9.2

@tim-rohrer
Copy link

tim-rohrer commented Sep 30, 2024

The best way to find those is searching for "password": null in a .json export of the vault. But offending are only the ones within "passwordHistory", not the ones within "login".

Deleting (don't forget to also delete from the Bin) and recreating those entries has made it work for me. You cannot use the clone/duplicate feature though, since that appears to keep the password history.

Unfortunately, this doesn't appear to be working for me. I only had one password that was null, which was deleted from the vault and the trash bin.

I'll work later on updating the Vaultwarden image I'm using, but the iOS apps I'm using are 2024.9.2 (1106) from an iPad (18.0) and an iPhone (18.0).

@BlackDex
Copy link
Collaborator

Use testing, all others are not ok right now in some special cases

@tim-rohrer
Copy link

Finally got around to testing and that did work.

Any word on when the fix will be rolled into released versions?

@Gerardv514
Copy link

1.32.1 was just released yesterday.

@gergan
Copy link

gergan commented Oct 6, 2024

I'm still having problems with the iOS app. I did have some null passwords, but not in the passwordHistory. I have changed all of them - one was in the thrash, so I permanently deleted it, and now the export does not have any passwords with null in them. I uninstalled and installed the iOS app, but this did not help. I saw that I have some organizational passwords, which I have exported through the Vaultwarden-Web and they also don't have null passwords. So I'm not sure what's going on and what I could do in order to resolve the issue. And yes I have the newest container, so the fix didn't work for me. And Importing the export in my Bitwarden account worked without errors

@BlackDex
Copy link
Collaborator

BlackDex commented Oct 6, 2024

@gergan
I have no idea. Because we then need to know what the exact output is during the sync to see what potentially could be causing an issue.

If you want to help, please follow the instructions in the comment here (and the comment after that) #4870 (comment)

@gergan
Copy link

gergan commented Oct 6, 2024

I'll look how to export it later. It seems the problem is not the sync or the log-in, the app works just normally (it suggest and supplies passwords in Safari for example), but shows the error on the view-screen (where all the entries should be shown). Sync works just ok, It shows the folders in settings and so on. So it is some dumb validation or something like that, which hinders it to show its main screen.

@BlackDex
Copy link
Collaborator

BlackDex commented Oct 6, 2024

Also @gergan items with password: null are just fine, just not if they are in the passwordHistory.
password: null means no password is configured for that item, and does not cause any issue with any client as far as i know.

@BlackDex
Copy link
Collaborator

BlackDex commented Oct 6, 2024

I'll look how to export it later. It seems the problem is not the sync or the log-in, the app works just normally (it suggest and supplies passwords in Safari for example), but shows the error on the view-screen (where all the entries should be shown). Sync works just ok, It shows the folders in settings and so on. So it is some dumb validation or something like that, which hinders it to show its main screen.

Maybe you can share a screenshot on what you mean? Because I'm not really following what the current issue then is.

@Gerardv514
Copy link

It seems the problem is not the sync or the log-in, the app works just normally

You should also post a new issue since this thread is for sync and log in issues. In the new thread you need to provide more information and logs, and not just saying I’m having the same problem. There could be something totally different going on than what was addressed here and therefore on the technical side is not the same problem.

@gergan
Copy link

gergan commented Oct 6, 2024

I'll create a new one probably in the evening - but just to show what I mean. Here are some screenshots, for the problem I have. The App could sync, work generally - but the search and the main view show this error
Bitwarden Web redacted
Screenshot 2024-10-06 at 15 45 39 jpeg
Screenshot 2024-10-06 at 15 46 46 jpeg

@BlackDex
Copy link
Collaborator

BlackDex commented Oct 6, 2024

That could have everything to do with the sync which is returned, or maybe not, but what Vaultwarden returns, is what the client needs to parse and decrypt. If there is anything wrong or strange with the response, then this might be a result of this.

@florianmulatz
Copy link

Hi Guys - just telling - since I've updated the vaultwarden-docker-container to 1.32.1 the issue disappeared

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested, or question from user Third party Needs an update from the third party library troubleshooting There might be bug or it could be user error, more info needed
Projects
None yet
Development

Successfully merging a pull request may close this issue.