Hi Dave,
For me, I ran the following in MySQL CLI, this would be the equivalent to running a SQL statement in PHPMyAdmin.
select * from tblclients where id=47 \G;
In this example, id=47 was one of the clients profiles that had the problem. For the 3 tables below, there was erroneous data, possible encrypted, I am not sure, but it was special characters.
cardnum:
startdate:
expdate:
I backed up the database and then ran an update statement for each of the tables:
update tblclients set cardnum="" where id=47;
update tblclients set startdate="" where id=47;
update tblclients set expdate="" where id=47;
This cleared out the fields and then I was able to properly charge the card without the previous error. This data was apparently breaking the migration process WHMCS is trying to perform on the backend.
As I had multiple clients with this problem and none of this field data was needed for me I executed the following to fix all of the clients.
update tblclients set cardnum="";
update tblclients set startdate="";
update tblclients set expdate="";
This solved the problem for me for all clients, now there is a secondary issue where WHMCS thinks there is a "default" card ahead of the real one, but I was instructed that deleting that when the problem occurs will solve the problem. I haven't bothered with that yet, as I have just manually selected the correct card. If recurring billing breaks due to the secondary issue this is what they said I needed to do: