balena dashboard login - An error has occurred for wrong password

For email/password authentication, when using the wrong password, I see only “An error has occurred” at the top of the screen when using Edge, Chrome or Firefox browsers on MacOS. Using the browser developer tools, I fetched some context for you (request payload omitted for obvious reasons :-). I don’t have any special browser add-ons that would explain this.

Attempt on Edge:

Request URL: https://api.balena-cloud.com/login_
Request Method: POST
Status Code: 429 
Remote Address: 3.229.114.198:443
Referrer Policy: origin-when-cross-origin
access-control-allow-credentials: true
access-control-allow-headers: Content-Type, Authorization, Application-Record-Count, MaxDataServiceVersion, X-Requested-With, X-Balena-Client
access-control-allow-methods: GET, PUT, POST, PATCH, DELETE, OPTIONS, HEAD
access-control-allow-origin: https://dashboard.balena-cloud.com
access-control-max-age: 86400
content-length: 17
content-type: text/html; charset=utf-8
date: Fri, 04 Sep 2020 05:03:52 GMT
etag: W/"11-z...7O5gDA"
retry-after: 3600
status: 429
vary: X-HTTP-Method-Override, Accept-Encoding
x-content-type-options: nosniff
x-frame-options: DENY
:authority: api.balena-cloud.com
:method: POST
:path: /login_
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-ZA,en-GB;q=0.9,en;q=0.8,en-US;q=0.7
content-length: 58
content-type: application/json
origin: https://dashboard.balena-cloud.com
referer: https://dashboard.balena-cloud.com/
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-site
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36 Edg/85.0.564.44
x-balena-client: balena-sdk/15.6.0

Attempt on Chrome:

Request URL: https://api.balena-cloud.com/login_
Request Method: POST
Status Code: 429 
Remote Address: 18.210.71.79:443
Referrer Policy: origin-when-cross-origin
access-control-allow-credentials: true
access-control-allow-headers: Content-Type, Authorization, Application-Record-Count, MaxDataServiceVersion, X-Requested-With, X-Balena-Client
access-control-allow-methods: GET, PUT, POST, PATCH, DELETE, OPTIONS, HEAD
access-control-allow-origin: https://dashboard.balena-cloud.com
access-control-max-age: 86400
content-length: 17
content-type: text/html; charset=utf-8
date: Fri, 04 Sep 2020 06:03:02 GMT
etag: W/"11-zyeKM...37O5gDA"
retry-after: 49
status: 429
vary: X-HTTP-Method-Override, Accept-Encoding
x-content-type-options: nosniff
x-frame-options: DENY
:authority: api.balena-cloud.com
:method: POST
:path: /login_
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9,de;q=0.8
content-length: 58
content-type: application/json
origin: https://dashboard.balena-cloud.com
referer: https://dashboard.balena-cloud.com/
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-site
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
x-balena-client: balena-sdk/15.6.0

Firefox:

Request:

Host: api.balena-cloud.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://dashboard.balena-cloud.com/
x-balena-client: balena-sdk/15.6.0
content-type: application/json
Content-Length: 58
Origin: https://dashboard.balena-cloud.com
DNT: 1
Connection: keep-alive
TE: Trailers

Response:

HTTP/2.0 401 Unauthorized
date: Fri, 04 Sep 2020 06:09:40 GMT
content-type: text/plain; charset=utf-8
content-length: 12
x-frame-options: DENY
x-content-type-options: nosniff
access-control-allow-origin: https://dashboard.balena-cloud.com
access-control-allow-methods: GET, PUT, POST, PATCH, DELETE, OPTIONS, HEAD
access-control-allow-headers: Content-Type, Authorization, Application-Record-Count, MaxDataServiceVersion, X-Requested-With, X-Balena-Client
access-control-allow-credentials: true
access-control-max-age: 86400
vary: X-HTTP-Method-Override, Accept-Encoding
etag: W/"c-dAxxx7AOlYk"
X-Firefox-Spdy: h2

Hi, thanks for reporting this. To be sure I understand correctly, you would like to see a more descriptive message, right, something like “The combination of e-mail and password is invalid”?

Yes, thanks. Something that indicates that the login has failed. Instead, the generic banner at the top does not indicate whether there has been a system failure or whether it is a client issue.

Thank you for reporting this issue. It has been passed to the dashboard team, who have said they will improve the message.