Stripe Balance Transaction Data Type errors

  • 130Views
  • Last Post 2 weeks ago
0
votes
Joseph Naujokas posted this 5 weeks ago

Our attempts to replicate the Stripe BalanceTransaction table are consistently failing.  The run logs report the following error:  "Object error / Value was either too large or too small for an Int32.: [Value: '-2182099740', Table: "BalanceTransactions", Column: "Amount", Id: '']"

Doing our own investigation for the data in the account, we have not identified any records that approach the indicated value (over $-2b??).  The closest we could find was some kind of balancing entry for $-17985916 ($-17m).

Moreover, we adjusted the size of the target table (Redshift "bigint" data type) in order to accommodate this value - but that change had no effect.

Two questions:

1) Can you tell us the ID of the record that is throwing this error?

2) Why did changing the data type of the target table have no effect on the error? Is this error being thrown by some internal intermediary table that you use for processing the data before loading to the destination?

Thanks in advance.

Order By: Standard | Newest | Votes
0
votes
Olena Romanchuk posted this 4 weeks ago

Dear Joseph,

 

1. Have you tried to select the data from the BalanceTransactions table? If this value is present there, Query will return the same error. Please try to do it and inform us about the result.

 

2. The change of field length in the Target table is not helping in this case because the error is returned at the stage of reading data from Source

 

Best regards,

Olena

Customer Support Engineer   

0
votes
Joseph Naujokas posted this 4 weeks ago

"Have you tried to select the data from the BalanceTransactions table? If this value is present there, Query will return the same error."

Assuming by "the BalanceTransactions table" that you mean the source Stripe API /balancetransaction API, as I said in the original post, per our investigation we have not identified any records that approach the indicated value (over $-2b??).  The closest we could find was some kind of balancing entry for $-17985916 ($-17m).  

 

0
votes
Joseph Naujokas posted this 4 weeks ago

Also note that adding a filter to exclude records that are too large or too small (Amount > -2147483647 and amount < 2147483647) did not fix the error.

0
votes
Olena Romanchuk posted this 4 weeks ago

Hello Joseph,

 

We need to be sure if the issue happened during the reading records from the Source or during the inserting them to Target.

That's why we ask you to use Skyvia Query.

Having the query results helps us to proceed with investigation.

 

Best regards,

Olena

Customer Support Engineer 

 

     

0
votes
Joseph Naujokas posted this 3 weeks ago

Per the Skyvia Query results, There are no records in the Target table.  To illustrate the behavior I have saved a simple Skyvia SQL query as "stripe.balancetransactions".

-1
votes
Olena Romanchuk posted this 3 weeks ago

Hello Joseph,
It is correct, there are no records in Target table. 
Could you please run the query against the Stripe connection which is the Source? 

0
votes
Joseph Naujokas posted this 3 weeks ago

"Could you please run the query against the Stripe connection which is the Source? "

I already answered that:

"Have you tried to select the data from the BalanceTransactions table? If this value is present there, Query will return the same error."

Assuming by "the BalanceTransactions table" that you mean the source Stripe API /balancetransaction API, as I said in the original post, per our investigation we have not identified any records that approach the indicated value (over $-2b??).  The closest we could find was some kind of balancing entry for $-17985916 ($-17m).  

 

0
votes
Olena Romanchuk posted this 3 weeks ago

Dear Joseph, 

Our team will change the data type of the BalanceTransaction Amount column in our Stripe connector to INT64 in this case. 
I will inform you when it is implemented. 


0
votes
Joseph Naujokas posted this 3 weeks ago

OK I have two followup questions based on your response:

1) I appreciate your willlingness to adjust your logic, but the current INT data type SHOULD be able to accommodate our data.  I still do not understand what is the source of that large value, as we can't see any transactions in the source Stripe account larger than $-17985916 ?  Can you explain where your package is getting that value?  Specifically can you identify the ID of the transaction record itself?

2) Assuming that we still need to proceed with the INT64 change, do you have an ETA on when your team will implement it?

0
votes
Olena Romanchuk posted this 3 weeks ago

Dear Joseph,

The datatype of the Amount column is UINT (only positive values). When the large UINT value is coming it is being casted to INT32 which may have negative values. In this case it is casted into a negative number because of The Most Significant Bit (MSB) which is incorrectly interpreted and results in wrong value. 

The change will be available after the next Skyvia update release. I will inform you aditionally when it is implemented.

Best regards,

 

Olena

Customer Support Engineer

Skyvia

0
votes
Joseph Naujokas posted this 3 weeks ago

Thank you for the detailed explanation.  I still don't quite understand why the amount value being reported in the log is so large, but it sounds like the issue isn't the amount, it's the negative value.

Can you give us ANY general idea of the timeframe for the release of the next Skyvia update?  3 weeks? 3 months? 

0
votes
Olena Romanchuk posted this 2 weeks ago

Hello Joseph, 

It usually takes a couple of weeks, but we will do our best to release it earlier. 
I will revert to you as soon as possible. 

Close