Symptoms

Attempt to renew/purchase subscription (or perform some other operation that requires terms and conditions acceptance) fails with an exception similar to:

Parse page error: ' /usr/local/bm/var/run/wnd/dwcache//c4b400a57fb9d3215ba9f7598ddbbb3c.xml ' syntax error at line 8: syntax error .
Error Code: 0xa3ffa0c7.
Report ID: 12345

Cause

The reason of the issue is a bug with id #PBA-68751 ("Parse page error on T&C screen in CCP").

Resolution

The workaround is:

  1. Find the affected Terms and Conditions (you can get this information from the log of the report generated)
  2. Add a space or any other symbol to this terms.

In case the workaround above did not help it might be needed to edit (add a space or any other symbol) other Terms and Conditions. To get the ids of the terms find the following select query made in bTermCondition::getTermsByPlanForAccount method when error was returned:

[16-08-08 06:30:06.784 GenericWork RQ410210 TH15031 TRC]      +++[5] void bTermCondition::getTermsByPlanForAccount(Int, Int, std::set<STLRT::Type::Numeric<int>, std::less<STLRT::Type::Numeric<int> >, std::allocator<STLRT::Type::Numeric<int> > >&)(AccountID: 1000001, PlanID: 1234)
[16-08-08 06:30:06.785 RDBMS       RQ410210 TH15031 INF] Prepare [0x7f75782cbd50]: SELECT "TC"."TermID" FROM "TermConditionForPlan" "TCFP" CROSS JOIN "TermCondition" "TC" WHERE ((("TC"."TermID" = "TCFP"."TermID") AND ("TCFP"."PlanID" = $1)) AND ("TC"."Active" = $2)) AND (("TC"."AcceptType" = $3) OR ( NOT ("TC"."TermID" IN (SELECT "AT"."TermID" FROM "AcceptedTerms" "AT" WHERE ("AT"."AccountID" = $4) AND ("AT"."PlanID" = $5))))) UNION SELECT "TC"."TermID" FROM "AcceptedTerms" "AT" CROSS JOIN "TermCondition" "TC" WHERE (((("AT"."AccountID" = $6) AND ("AT"."PlanID" = $7)) AND ("AT"."TermID" = "TC"."TermID")) AND ("TC"."Active" = $8)) AND ( NOT ("TC"."TermID" IN (SELECT "TC"."TermID" FROM "AcceptedTerms" "AT" CROSS JOIN "TermCondition" "TC" WHERE ((("AT"."AccountID" = $9) AND ("AT"."PlanID" = $10)) AND ("AT"."TermID" = "TC"."TermID")) AND (("TC"."AcceptType" <> $11) OR ("AT"."Version" = "TC"."Version")))))
[16-08-08 06:30:06.785 RDBMS       RQ410210 TH15031 INF] Execute [0x7f75782cbd50]: 1234, 1, 0, 1000001, 1234, 1000001, 1234, 1, 1000001, 1234, 10
[16-08-08 06:30:06.788 RDBMS       RQ410210 TH15031 DBG] Fetch [0x7f75782cbd50]: 101
[16-08-08 06:30:06.788 RDBMS       RQ410210 TH15031 DBG] Fetch [0x7f75782cbd50]: 102
[16-08-08 06:30:06.788 RDBMS       RQ410210 TH15031 DBG] Fetch [0x7f75782cbd50]: 103
[16-08-08 06:30:06.788 RDBMS       RQ410210 TH15031 DBG] Fetch [0x7f75782cbd50]: 304
[16-08-08 06:30:06.788 RDBMS       RQ410210 TH15031 DBG] Fetch [0x7f75782cbd50]: 305

Edit one by one T&C with ids returned in Fetch (in this case: 101, 102, 103, 304, 305).

Internal content