Bug
Exchange rate conversion is broken for all currency pairs. The browser blocks
the request to api.frankfurter.app due to a CORS error.
Root Cause
The Frankfurter API has migrated from api.frankfurter.app to api.frankfurter.dev.
The old domain now returns a 301 redirect to the new domain, but the redirect
response does not include the Access-Control-Allow-Origin header.
Browsers block the request before following the redirect.
Steps to Reproduce
- Open a group
- Add an expense with currency conversion
- "Oops, we could not get the most recent rates. Enter a custom rate below."
- Open the browser console → Network tab
Expected
Exchange rates load successfully.
Actual
"Oops, we could not get the most recent rates. Enter a custom rate below."

Bug
Exchange rate conversion is broken for all currency pairs. The browser blocks
the request to
api.frankfurter.appdue to a CORS error.Root Cause
The Frankfurter API has migrated from
api.frankfurter.apptoapi.frankfurter.dev.The old domain now returns a 301 redirect to the new domain, but the redirect
response does not include the
Access-Control-Allow-Originheader.Browsers block the request before following the redirect.
Steps to Reproduce
Expected
Exchange rates load successfully.
Actual
"Oops, we could not get the most recent rates. Enter a custom rate below."