medusajs/medusa

[Bug]: GMD (Gambian Dalasi) missing from default currency list — admin region-create page crashes

Open

#15265 opened on May 2, 2026

View on GitHub
 (2 comments) (0 reactions) (0 assignees)TypeScript (22,539 stars) (2,090 forks)batch import
good first issuetype: bug

Description

Bug

When a Medusa store has GMD as a supported currency, the admin's regions create page crashes with the React error boundary.

Browser console:

TypeError: Cannot read properties of undefined (reading 'code')
    at region-create-*.js:1:4048
    at Array.map (<anonymous>)
    at Object.render (region-create-*.js:1:4019)

Root cause

GMD is a valid ISO 4217 code (Gambian Dalasi, used by The Gambia) but is not present in the hardcoded currency lists shipped with the admin:

  • packages/core/utils/src/defaults/currencies.ts (consumed as @medusajs/utils/dist/defaults/currencies.js)
  • packages/admin/dashboard/src/lib/data/currencies.ts

Several admin pages (regions, pricing, etc.) iterate store.supported_currencies and look each one up in those maps. Any currency missing from the maps yields undefined, and accessing fields like .code or .symbol_native throws.

Reproduction

  1. Insert a row for GMD into the currency table directly. (The public Currency module service exposes only read methods, so direct DB insert or a custom migration is currently the only path.)
    INSERT INTO currency (code, symbol, symbol_native, name, decimal_digits, rounding, raw_rounding)
    SELECT 'gmd', 'D', 'D', 'Gambian Dalasi', 2, rounding, raw_rounding
    FROM currency WHERE code = 'usd' LIMIT 1
    ON CONFLICT (code) DO NOTHING;
    
  2. In admin, set GMD as the store's default supported currency (Settings → Store).
  3. Navigate to Settings → Regions → Create. → Crash.

Proposed fix

Add a GMD entry to both files:

GMD: {
  code: "GMD",
  name: "Gambian Dalasi",
  symbol: "D",
  symbol_native: "D",
  decimal_digits: 2,
  rounding: 0,
  name_plural: "Gambian Dalasis", // utils only — dashboard schema doesn't have name_plural
}

Same shape as the surrounding entries (e.g. ZMK, ZWL).

Environment

  • Medusa: 2.14.2
  • Hosting: Medusa Cloud (Develop plan)
  • pnpm: 10.30.2, Node 20

Workaround

Until merged, you can apply pnpm patches against @medusajs/utils@2.14.2 and @medusajs/dashboard@2.14.2 to inject the entry locally. Both files have the same alphabetical layout — append after ZWL.

Note on scope

Filing this as GMD-specific. There are ~50 other ISO 4217 active fiat codes also missing (e.g. SLE, MRU, ZMW, VES, ZWG, STN, HTG); happy to file a follow-up issue or expand this PR if maintainers prefer a single sweep.

Contributor guide