Variable recurring ACH payments

I’m building a system that needs to process recurring ACH payments. The client bills customers based on usage, so the amounts will vary from month to month. I’m using the Square Web Payments SDK to capture the authorization and generate a bnon token. I then send the bnon to my backend and create a bank account id (bact) token for it using the create_bank_account API. The bact is sent back to the front end to be converted to a bauth, using the Web Payments SDK, ach.tokenize function, using the parameters outlined here: Store and Charge Bank Accounts on File

The call to the ach.tokenize function fails every time, with Square’s server returning a 500 error. When I inspect the network call, I can see that the field frequency.monthly.days.daysOfMonth is being sent as an empty array, , despite hardcoding it as [1] in my application. This is the only thing that looks like it could be causing the issue.

Are there any other reasons the backend would throw a generic 500 error?