Auth0 namespaced custom claim convention
Auth0 enforces a strict rule on access tokens: any custom claim must be a URI under a namespace you control. Trying to add `roles` directly does nothing — it's silently dropped. Instead use `https://yourapp.com/roles` (or any URL you own).
This is enforced in Auth0 Actions/Rules. The recommended pattern is to define a single namespace constant (`const NAMESPACE = "https://yourapp.com/"`) and prefix all custom claims with it. The debugger's Custom claims panel shows the full namespaced key, so you can verify the namespace is consistent.