Troubleshooting a TypeError: Argument 1 passed to _stripe_isNoDecimalCurrency() must be of the type string, null given
Symptom
After updating to WHMCS 8.4.0, installations using the Stripe Payment Gateway may experience the following TypeError
error:
TypeError: Argument 1 passed to _stripe_isNoDecimalCurrency() must be of the type string, null given, called in /whmcs/modules/gateways/stripe.php
Cause
This error occurs because a transaction that exists in your Stripe account references a settlement currency that is not configured in WHMCS.
Solution
Apply the 8.4.1 Maintenance Release via the Utilities > Update WHMCS page.
Hotfix
A hotfix has been created for 8.4.0 only to correct this behavior:
Workaround
Adding your Stripe account's settlement currency to WHMCS will resolve the error.
To do this:
1. Log in to the WHMCS Admin Area and go to Billing > Gateway Log.
2. Use the Search/Filter tab to search for Stripe transactions that occured between 31st August 2021 (the date on which this problem began) and the current date. For example:

3. Review the debugging data from the search results for the currency
values. For example:
fee_details =>
0 =>
amount => 49
application =>
currency => eur
description => Stripe processing fees
type => stripe_fee
A single log entry contains more than one currency value. Make certain that you review all of them.
4. Compare the currencies in the Gateway Log entries to the currencies at Configuration > System Settings > Currencies.
5. Use interface to add the extra currencies that you identified in Step 4.
This example adds the EUR
currency:

6. When you are finished entering the currency's details, click Add Currency
After you add the Stripe settlement currency to WHMCS, the daily automation tasks will run at the next scheduled time.