"Cannot reach your data" error on segment

@Guillaume_Cisco Thanks for your answer. To notice the problem has appear the day of the last update of Google Chrome. I’m trying and keep you informed.

Nevertheless, we face this issue on all browsers (Mozilla, Safari). The issue has appeared the same day.

Thanks

Safari and chrome both use the webkit engine, so I think the limitation is related.
You can know more about the RFC and the browser implementation here (last update comes from Sept 2020).

The 414 http status code (Request-URI Too Long) status appears if a URI is longer than the server can handle.

In a nutshell, it looks like you encounters these issues since the last chrome update and because the SQL query is very big.

@Guillaume_Cisco

Just tried with version 86 of Chrome, same issue :frowning:

Below is the message we have on this request on Google Chrome. CORS policy is on Forest’s side ? Have you change your policy on this subject these last days ?

Access to XMLHttpRequest at ‘https://www.culturepay.fr/forest/TransferCode/count?fields[TransferCode]=id%2Cmember%2Cvalidity_month&fields[member]=company_name&searchExtended=0&timezone=Europe%2FParis&segmentQuery=SELECT%20tc.id FROM%20transfer_codes%20tc INNER%20JOIN%20members%20m%20%20ON%20m.id%20%3D%20tc.member_id WHERE%20m.used_for_test%20%3D%20false AND%20tc.closed%20%3D%20true AND%20tc.first_summary_sent_at%20IS%20NOT%20NULL AND%20tc.last_summary_sent_at%20IS%20NOT%20NULL AND%20NOT%20EXISTS( %20%20SELECT%20c.id%20 %20%20FROM%20contracts%20c %20%20WHERE%20c.transfer_code_id%20%3D%20tc.id %20%20AND%20c.state%20>%3D8 %20%20AND%20c.state%20<%3D%209 %20%20AND%20c.payment_engaged%20%3D%20false %20%20AND%20c.pay_managed_by_culturepay%20%3D%20true %20%20AND%20c.definitive_to_be_paid_to_employee_amount_cents%20!%3D%200 ) %20%20 AND%20((tc.dsn_succeeded%20%3D%20true %20%20%20%20%20%20%20%20AND%20((tc.urssaf_amount_cents%20!%3D%200 %20%20%20%20%20%20%20%20%20%20%20%20%20%20AND%20tc.urssaf_payment_engaged%20%3D%20false %20%20%20%20%20%20%20%20%20%20%20%20%20%20AND%20tc.urssaf_payment_managed_by_culturepay%20%3D%20true) %20%20%20%20%20%20%20%20%20%20%20%20OR %20%20%20%20%20%20%20%20%20%20%20%20%20%20(tc.audiens_retraite_amount_cents%20!%3D%200 %20%20%20%20%20%20%20%20%20%20%20%20%20%20AND%20tc.audiens_retraite_payment_engaged%20%3D%20false %20%20%20%20%20%20%20%20%20%20%20%20%20%20AND%20tc.audiens_retraite_payment_managed_by_culturepay%20%3D%20true) %20%20%20%20%20%20%20%20%20%20%20%20OR %20%20%20%20%20%20%20%20%20%20%20%20%20%20(tc.audiens_prevoyance_amount_cents%20!%3D%200 %20%20%20%20%20%20%20%20%20%20%20%20%20%20AND%20tc.audiens_prevoyance_payment_engaged%20%3D%20false %20%20%20%20%20%20%20%20%20%20%20%20%20%20AND%20tc.audiens_prevoyance_payment_managed_by_culturepay%20%3D%20true) %20%20%20%20%20%20%20%20%20%20%20%20OR %20%20%20%20%20%20%20%20%20%20%20%20(tc.conges_spectacle_amount_cents%20!%3D%200 %20%20%20%20%20%20%20%20%20%20%20%20%20%20AND%20tc.conges_spectacle_payment_engaged%20%3D%20false %20%20%20%20%20%20%20%20%20%20%20%20%20%20AND%20tc.conges_spectacle_payment_managed_by_culturepay%20%3D%20true))) %20%20%20%20%20%20%20%20%20%20%20%20OR %20%20%20%20%20%20%20%20%20%20%20%20(%20tc.ducs_pole_emploi_succeeded%20%3D%20true %20%20%20%20%20%20%20%20%20%20%20%20%20%20AND%20tc.pole_emploi_amount_cents%20!%3D%200 %20%20%20%20%20%20%20%20%20%20%20%20%20%20AND%20tc.pole_emploi_payment_engaged%20%3D%20false %20%20%20%20%20%20%20%20%20%20%20%20%20%20AND%20tc.pole_emploi_payment_managed_by_culturepay%20%3D%20true) %20%20%20%20%20%20) AND%20(SELECT%20MIN(tc1.min_calculation) %20%20FROM%20( %20%20%20%20SELECT%20CASE%20WHEN%20tc_down.urssaf_amount_cents%20!%3D%200%20AND%20tc_down.urssaf_payment_engaged%20%3D%20false%20AND%20tc_down.urssaf_payment_managed_by_culturepay%20%3D%20true %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20THEN%20tc_down.urssaf_amount_cents %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ELSE%20NULL %20%20%20%20%20%20%20%20%20%20END%20as%20min_calculation %20%20%20%20FROM%20transfer_codes%20tc_down %20%20%20%20WHERE%20tc_down.id%20%3D%20tc.id %20UNION %20%20%20%20SELECT%20CASE%20WHEN%20tc_down.audiens_retraite_amount_cents%20!%3D%200%20AND%20tc_down.audiens_retraite_payment_engaged%20%3D%20false%20AND%20tc_down.audiens_retraite_payment_managed_by_culturepay%20%3D%20true %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20THEN%20tc_down.audiens_retraite_amount_cents %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ELSE%20NULL %20%20%20%20%20END%20%20as%20min_calculation %20%20%20%20FROM%20transfer_codes%20tc_down %20%20%20%20WHERE%20tc_down.id%20%3D%20tc.id %20%20%20%20UNION %20%20%20%20SELECT%20CASE%20WHEN%20tc_down.audiens_prevoyance_amount_cents%20!%3D%200%20AND%20tc_down.audiens_prevoyance_payment_engaged%20%3D%20false%20AND%20tc_down.audiens_prevoyance_payment_managed_by_culturepay%20%3D%20true %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20THEN%20tc_down.audiens_prevoyance_amount_cents %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ELSE%20NULL %20%20%20%20END%20%20as%20min_calculation %20%20%20%20FROM%20transfer_codes%20tc_down %20%20%20%20WHERE%20tc_down.id%20%3D%20tc.id UNION %20%20%20%20SELECT%20CASE%20WHEN%20tc_down.conges_spectacle_amount_cents%20!%3D%200%20AND%20tc_down.conges_spectacle_payment_engaged%20%3D%20false%20AND%20tc_down.conges_spectacle_payment_managed_by_culturepay%20%3D%20true %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20THEN%20tc_down.conges_spectacle_amount_cents %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ELSE%20NULL %20%20%20%20%20%20%20%20%20%20END%20%20as%20min_calculation %20%20%20%20FROM%20transfer_codes%20tc_down %20%20%20%20WHERE%20tc_down.id%20%3D%20tc.id UNION %20%20%20%20SELECT%20CASE%20WHEN%20tc_down.pole_emploi_amount_cents%20!%3D%200%20AND%20tc_down.pole_emploi_payment_engaged%20%3D%20false%20AND%20tc_down.pole_emploi_payment_managed_by_culturepay%20%3D%20true %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20THEN%20tc_down.pole_emploi_amount_cents %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ELSE%20NULL %20%20%20%20%20%20%20%20%20%20END%20%20as%20min_calculation %20%20%20%20FROM%20transfer_codes%20tc_down %20%20%20%20WHERE%20tc_down.id%20%3D%20tc.id%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20 %20%20%20%20)%20as%20tc1 %20%20) %20%20<%3D %20%20(SELECT%20SUM(summary.transferCodeBalance)%20%2B%20SUM(summary.chargesEngagement)%20%2B%20SUM(summary.commissionEngagement)%20%2B%20SUM(summary.contractBalance)%20%2B%20SUM(summary.contractEngagement)%20%20%20 FROM (SELECT %20%20(SELECT%20CASE%20WHEN%20COUNT(cs.id)%20%3D%200%20THEN%200%20ELSE%20SUM(cs.amount_cents%20*%20(CASE%20WHEN%20cs.accounting_category%20%3D%200%20THEN%20-1%20ELSE%201%20END))%20END %20%20%20%20FROM%20cashflows%20cs %20%20%20%20WHERE%20cs.cash_ownerable_id%20%3D%20tc_down.id %20%20%20%20AND%20cs.cash_ownerable_type%20%3D%20’TransferCode’)%20as%20transferCodeBalance%2C (%2B%20(CASE%20WHEN%20tc_down.urssaf_payment_managed_by_culturepay%20%3D%20true%20AND%20tc_down.urssaf_payment_engaged%20%3D%20true%20THEN%20-%20tc_down.urssaf_amount_cents%20ELSE%200%20END) %2B%20(CASE%20WHEN%20tc_down.audiens_retraite_payment_managed_by_culturepay%20%3D%20true%20AND%20tc_down.audiens_retraite_payment_engaged%20%3D%20true%20THEN%20-%20tc_down.audiens_retraite_amount_cents%20ELSE%200%20END) %2B%20(CASE%20WHEN%20tc_down.audiens_prevoyance_payment_managed_by_culturepay%20%3D%20true%20AND%20tc_down.audiens_prevoyance_payment_engaged%20%3D%20true%20THEN%20-%20tc_down.audiens_prevoyance_amount_cents%20ELSE%200%20END) %2B%20(CASE%20WHEN%20tc_down.conges_spectacle_payment_managed_by_culturepay%20%3D%20true%20AND%20tc_down.conges_spectacle_payment_engaged%20%3D%20true%20THEN%20-%20tc_down.conges_spectacle_amount_cents%20ELSE%200%20END) %2B%20(CASE%20WHEN%20tc_down.pole_emploi_payment_managed_by_culturepay%20%3D%20true%20AND%20tc_down.pole_emploi_payment_engaged%20%3D%20true%20THEN%20-%20tc_down.pole_emploi_amount_cents%20ELSE%200%20END) -%20(SELECT%20CASE%20WHEN%20COUNT(cs.id)%20%3D%200%20THEN%200%20ELSE%20SUM(cs.amount_cents%20*%20(CASE%20WHEN%20cs.accounting_category%20%3D%200%20THEN%20-1%20ELSE%201%20END))%20END %20%20%20%20FROM%20cashflows%20cs %20%20%20%20WHERE%20cs.cash_ownerable_id%20%3D%20tc_down.id %20%20%20%20AND%20cs.cash_ownerable_type%20%3D%20’TransferCode’ %20%20%20%20AND%20cs.category%20>%3D%202 %20%20%20%20AND%20cs.category%20<%3D%206))%20as%20chargesEngagement%2C (%2B%20(CASE%20WHEN%20commission_payment_engaged%20%3D%20true%20THEN%20 %20%20-other_commission_amount_cents %20%20%2B(SELECT%20CASE%20WHEN%20COUNT(c.id)%20%3D%200%20THEN%200%20ELSE%20SUM(-c.culturepay_commission_cents)%20END %20%20%20%20FROM%20contracts%20c %20%20%20%20WHERE%20c.transfer_code_id%20%3D%20tc_down.id %20%20%20%20AND%20c.state%20>%3D%208 %20%20%20%20AND%20c.state%20<%3D%209) -%20(SELECT%20CASE%20WHEN%20COUNT(cs.id)%20%3D%200%20THEN%200%20ELSE%20SUM(cs.amount_cents%20*%20(CASE%20WHEN%20cs.accounting_category%20%3D%200%20THEN%20-1%20ELSE%201%20END))%20END %20%20%20%20FROM%20cashflows%20cs %20%20%20%20WHERE%20cs.cash_ownerable_id%20%3D%20tc.id %20%20%20%20AND%20cs.cash_ownerable_type%20%3D%20’TransferCode’ %20%20%20%20AND%20cs.category%20%3D10) ELSE%200%20END))%20as%20commissionEngagement%2C (%2B%20(SELECT%20CASE%20WHEN%20COUNT(cs.id)%20%3D%200%20THEN%200%20ELSE%20SUM(cs.amount_cents%20*%20(CASE%20WHEN%20cs.accounting_category%20%3D%200%20THEN%20-1%20ELSE%201%20END))%20END %20%20%20%20FROM%20cashflows%20cs %20%20%20%20INNER%20JOIN%20contracts%20c%20ON%20c.id%20%3D%20cs.cash_ownerable_id %20%20%20%20WHERE%20cs.cash_ownerable_type%20%3D%20’Contract’ %20%20%20%20AND%20c.transfer_code_id%20%3D%20tc_down.id))%20as%20contractBalance%2C (%2B%20(SELECT%20CASE%20WHEN%20COUNT(c.id)%20%3D%200%20THEN%200%20ELSE%20-SUM(c.definitive_to_be_paid_to_employee_amount_cents)%20END %20%20%20%20FROM%20contracts%20c %20%20%20%20WHERE%20c.transfer_code_id%20%3D%20tc_down.id%20 %20%20%20%20AND%20c.payment_engaged%20%3D%20true) -%20(SELECT%20CASE%20WHEN%20COUNT(cs.id)%20%3D%200%20THEN%200%20ELSE%20SUM(cs.amount_cents%20*%20(CASE%20WHEN%20cs.accounting_category%20%3D%200%20THEN%20-1%20ELSE%201%20END))%20END %20%20%20%20FROM%20cashflows%20cs %20%20%20%20INNER%20JOIN%20contracts%20c%20ON%20c.id%20%3D%20cs.cash_ownerable_id %20%20%20%20WHERE%20cs.cash_ownerable_type%20%3D%20’Contract’ %20%20%20%20AND%20c.transfer_code_id%20%3D%20tc_down.id %20%20%20%20AND%20cs.category%20%3D%201))%20as%20contractEngagement FROM%20transfer_codes%20tc_down WHERE%20tc_down.id%20%3D%20tc.id)%20as%20summary)%3B’ from origin ‘https://app.forestadmin.com’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

Thanks @Guillaume,

Are you sure you are well on the chrome 86? And it did not automatically updated it to the last version?

If I understand correctly you should have seen 413 http status code error and not CORS errors, right?
You can know more about how to test with an old version of chrome here.

We did not change anything from my knowledge regarding the CORS policy on Forest’s side.

Hi @Guillaume_Cisco

I confirm I try on Google 86 and I’ve blocked the update (the same way you suggest). To sum up :

  • I have NOT seen any 413 error (your colleague talked to me about it but I did not face it on my side)
  • I see 404 error and the message I forwarded to you above

Any other idea ?

@Guillaume_Cisco

For your information, I’ve just tried to reduce the request and lightened it around 20%, and we still face the same issue

Thanks again for your investigation on your side

Hello @Guillaume,

With Chrome 90 on my end, it seems the 414 error disappears when I truncate the URL you pasted above to its first 8770 characters (from 10049).
I get a 401 error which is normal as I am not authenticated on you platform.

That seems to be more that the 20% reduction you indicated earlier.

Could you please double check the length of the URL you tried?

Hi @anon79585656

The request (that I copy paste below) is 6493 character-long. So below the 8770 characters you tried.

https://www.culturepay.fr/forest/TransferCode/count?fields[TransferCode]=id,member,validity_month&fields[member]=company_name&searchExtended=0&timezone=Europe/Paris&segmentQuery=SELECT transfer_codes.id FROM transfer_codes INNER JOIN members ON members.id = transfer_codes.member_id WHERE transfer_codes.id IN ( SELECT selection.tcId FROM(SELECT transfer_codes.id as tcId, CASE WHEN urssaf_payment_engaged = false AND urssaf_payment_managed_by_culturepay = true THEN urssaf_amount_cents + (SELECT CASE WHEN COUNT(cashflows.id) = 0 THEN 0 ELSE SUM(cashflows.amount_cents * (CASE WHEN cashflows.accounting_category = 0 THEN -1 ELSE 1 END)) END FROM cashflows WHERE cashflows.cash_ownerable_id = transfer_codes.id AND cashflows.cash_ownerable_type = 'TransferCode' AND cashflows.category = 2) ELSE 0 END as urssEng, CASE WHEN audiens_retraite_payment_engaged = false AND audiens_retraite_payment_managed_by_culturepay = true THEN audiens_retraite_amount_cents + (SELECT CASE WHEN COUNT(cashflows.id) = 0 THEN 0 ELSE SUM(cashflows.amount_cents * (CASE WHEN cashflows.accounting_category = 0 THEN -1 ELSE 1 END)) END FROM cashflows WHERE cashflows.cash_ownerable_id = transfer_codes.id AND cashflows.cash_ownerable_type = 'TransferCode' AND cashflows.category = 3) ELSE 0 END as retraiteEng, CASE WHEN audiens_prevoyance_payment_engaged = false AND audiens_prevoyance_payment_managed_by_culturepay = true THEN audiens_prevoyance_amount_cents + (SELECT CASE WHEN COUNT(cashflows.id) = 0 THEN 0 ELSE SUM(cashflows.amount_cents * (CASE WHEN cashflows.accounting_category = 0 THEN -1 ELSE 1 END)) END FROM cashflows WHERE cashflows.cash_ownerable_id = transfer_codes.id AND cashflows.cash_ownerable_type = 'TransferCode' AND cashflows.category = 4) ELSE 0 END as prevEng, CASE WHEN conges_spectacle_payment_engaged = false AND conges_spectacle_payment_managed_by_culturepay = true THEN conges_spectacle_amount_cents + (SELECT CASE WHEN COUNT(cashflows.id) = 0 THEN 0 ELSE SUM(cashflows.amount_cents * (CASE WHEN cashflows.accounting_category = 0 THEN -1 ELSE 1 END)) END FROM cashflows WHERE cashflows.cash_ownerable_id = transfer_codes.id AND cashflows.cash_ownerable_type = 'TransferCode' AND cashflows.category = 5) ELSE 0 END as ccsEng, CASE WHEN pole_emploi_payment_engaged = false AND pole_emploi_payment_managed_by_culturepay = true THEN pole_emploi_amount_cents + (SELECT CASE WHEN COUNT(cashflows.id) = 0 THEN 0 ELSE SUM(cashflows.amount_cents * (CASE WHEN cashflows.accounting_category = 0 THEN -1 ELSE 1 END)) END FROM cashflows WHERE cashflows.cash_ownerable_id = transfer_codes.id AND cashflows.cash_ownerable_type = 'TransferCode' AND cashflows.category = 6) ELSE 0 END as pesEng, ((SELECT CASE WHEN COUNT(cs.id) = 0 THEN 0 ELSE SUM(cs.amount_cents * (CASE WHEN cs.accounting_category = 0 THEN -1 ELSE 1 END)) END FROM cashflows cs WHERE cs.cash_ownerable_id = transfer_codes.id AND cs.cash_ownerable_type = 'TransferCode') + (CASE WHEN urssaf_payment_engaged = true THEN - urssaf_amount_cents ELSE 0 END) + (CASE WHEN audiens_retraite_payment_engaged = true THEN - audiens_retraite_amount_cents ELSE 0 END) + (CASE WHEN audiens_prevoyance_payment_engaged = true THEN - audiens_prevoyance_amount_cents ELSE 0 END) + (CASE WHEN conges_spectacle_payment_engaged = true THEN - conges_spectacle_amount_cents ELSE 0 END) + (CASE WHEN pole_emploi_payment_engaged = true THEN - pole_emploi_amount_cents ELSE 0 END) - (SELECT CASE WHEN COUNT(cashflows.id) = 0 THEN 0 ELSE SUM(cashflows.amount_cents * (CASE WHEN cashflows.accounting_category = 0 THEN -1 ELSE 1 END)) END FROM cashflows INNER JOIN transfer_codes tc1 ON tc1.id = cashflows.cash_ownerable_id AND tc1.id = transfer_codes.id AND cashflows.cash_ownerable_type = 'TransferCode' AND ((cashflows.category = 2 AND tc1.urssaf_payment_engaged = true) OR (cashflows.category = 3 AND tc1.audiens_retraite_payment_engaged = true) OR (cashflows.category = 4 AND tc1.audiens_prevoyance_payment_engaged = true) OR (cashflows.category = 5 AND tc1.conges_spectacle_payment_engaged = true) OR (cashflows.category = 6 AND tc1.pole_emploi_payment_engaged = true))) + (CASE WHEN commission_payment_engaged = true THEN -other_commission_amount_cents +(SELECT CASE WHEN COUNT(contracts.id) = 0 THEN 0 ELSE SUM(-contracts.culturepay_commission_cents) END FROM contracts WHERE contracts.transfer_code_id = transfer_codes.id AND contracts.state >= 8 AND contracts.state <= 9) - (SELECT CASE WHEN COUNT(cashflows.id) = 0 THEN 0 ELSE SUM(cashflows.amount_cents * (CASE WHEN cashflows.accounting_category = 0 THEN -1 ELSE 1 END)) END FROM cashflows INNER JOIN transfer_codes tc2 ON tc2.id = cashflows.cash_ownerable_id AND tc2.id = transfer_codes.id WHERE cashflows.cash_ownerable_id =transfer_codes.id AND cashflows.cash_ownerable_type = 'TransferCode' AND cashflows.category =10 AND tc2.commission_payment_engaged = true) ELSE 0 END) + (SELECT CASE WHEN COUNT(cs.id) = 0 THEN 0 ELSE SUM(cs.amount_cents * (CASE WHEN cs.accounting_category = 0 THEN -1 ELSE 1 END)) END FROM cashflows cs INNER JOIN contracts c ON c.id = cs.cash_ownerable_id WHERE cs.cash_ownerable_type = 'Contract' AND c.transfer_code_id = transfer_codes.id) + (SELECT CASE WHEN COUNT(c.id) = 0 THEN 0 ELSE -SUM(c.definitive_to_be_paid_to_employee_amount_cents) END FROM contracts c WHERE c.transfer_code_id = transfer_codes.id AND c.payment_engaged = true) - (SELECT CASE WHEN COUNT(cs.id) = 0 THEN 0 ELSE SUM(cs.amount_cents * (CASE WHEN cs.accounting_category = 0 THEN -1 ELSE 1 END)) END FROM cashflows cs INNER JOIN contracts c ON c.id = cs.cash_ownerable_id WHERE cs.cash_ownerable_type = 'Contract' AND c.transfer_code_id = transfer_codes.id AND cs.category = 1)) as solde FROM transfer_codes INNER JOIN members m ON m.id = transfer_codes.member_id WHERE m.used_for_test = false AND closed = true AND first_summary_sent_at IS NOT NULL AND last_summary_sent_at IS NOT NULL AND NOT EXISTS( SELECT c.id FROM contracts c WHERE c.transfer_code_id = transfer_codes.id AND c.state >=8 AND c.state <= 9 AND c.payment_engaged = false AND c.pay_managed_by_culturepay = true AND c.definitive_to_be_paid_to_employee_amount_cents != 0 )) as selection WHERE (selection.urssEng <= selection.solde AND selection.urssEng > 0) OR (selection.retraiteEng <= selection.solde AND selection.retraiteEng > 0) OR (selection.prevEng <= selection.solde AND selection.prevEng > 0) OR (selection.ccsEng <= selection.solde AND selection.ccsEng > 0) OR (selection.pesEng <= selection.solde AND selection.pesEng >0 ))

Thank you.

Do you still get a 414 error on this one? On my end I get a 401 error for both url encoded (8662 characters) and the one you pasted.

I confirm I’ve a 414 error on Mozilla, and a CORS error on Chrome