Expand my Community achievements bar.

Personalization block query too complex

Avatar

Community Advisor

Hello,

we have personalization block that has 5k lines with conditional content and we run to error below. Is there a option or server config option to increase processing limits?

The max number of conditions can add up to 2000

 

Marcel_Szimonisz_0-1673511686139.png



Marcel

12 Replies

Avatar

Employee Advisor

Hi Marcel,

 

Depending on your version of Campaign, this issue should already be addressed if your version is 7.3.1 or 8.4.3 and above based on bug reference NEO-48807.

 

Regards,

Craig

 

 

Avatar

Community Advisor

Hello Graig,
thanks a lot for information.

i cannot find NEO-48807 where do i see more information
We have version 9349 installed

Avatar

Community Advisor

Okey i can see the version :

Release 7.3.2 - Build 9356


Fixes this issue. Can you give me more info about the bug?  and possible workarounds in the meantime? We think to split the huge perso block in to more blocks 

 

Marcel

Avatar

Community Advisor

Hey Marcel,

Can you check if you have any form conflicts as a result of a recent upgrade, if you do, accept the latest version and merge any customizations.

 

Please see attached more details on the NEO-48807 bug.

 

The “query is too complex" issues encountered were due to multiple factors occurring while
preparing the delivery update into the database following properties changes during delivery
execution.


A guardrail in ACC code was introduced to prevent stack overflow in a parsing recursive
process as it was observed that this stack overflow in many cases resulted in unpredictable
server crashes.


The limit is 1600 recursive calls on Linux. With this guardrail, if any process crosses this limit,
to prevent the stack overflow, the process errors out with "query is too complex" error.


Previous to the upgrade, the limit might have been crossed (without the guardrail) to no
harm, but hitting the guardrail preventively stops the delivery execution from provoking a
stack overflow resulting in crashes.


The first “query is too complex" issue occurred while retrieving from the database in a single
query all the potential offer templates to include into the overall delivery template. As the
number of potential offer templates is huge in the failing deliveries (more than the limit of
1600 set by the guardrail), the "too complex query" problem occurred - The fix consists in
splitting the retrieval of all the potential offer templates into chunks of 500 offer templates.


The second “query is too complex" issue was caused by an existing bug where the URLs of
images were inserted in the text part of the message even if they are not rendered but are
considered trackable URLs instead of image URLs. During delivery processing, ACC was
checking in the database if these URLs were previously used or whether they were new
ones. In cases where the number of these false trackable URLs was more than the limit set
by the guardrail, the "too complex query" problem occurred - The fix consists in not inserting
these non-renderable offer image URLs in text mode

Avatar

Community Advisor

Hello @david--garcia 
i do not know how to list forms with conflicts. this happened for us when we pushed some packages and we always confirmed changes to forms.


Avatar

Employee Advisor

@Marcel_Szimonisz - 

Can you please elaborate on "always confirmed changes to forms"?

 

Avatar

Community Advisor

Everytime we deployed package. In the log we had message that you need to confirm changes in form affected and we did that. I do not know how to select all pending confirmations in bulk.

We have implemented pre-processing

https://experienceleague.adobe.com/docs/campaign-classic/using/sending-messages/tracking-messages/tr...

 

for this issue will let you know if that worked for us.

Marcel
Marcel

Avatar

Community Advisor

It have not helped. We will try to upgrade server to 9356

Avatar

Community Advisor

None of the issue reason is our case. We simply have 10k lines of conditions, there is no text version. It simply works when this block is bit smaller.

<%
	 if(services.indexOf("xyz")!=-1){
%>
<div  style="margin: 0px auto; max-width: 600px"> 

.. litle bit more of HTML from MLMJ around 6K characters
</div>
<%
	}
%>

 

Avatar

Community Advisor

Would be nice if you could attach the full content of the personalization block.

Avatar

Community Advisor

Hello @Marcel_Szimonisz 

 

Currently, you have one personalization block for all 2000 conditions. Split these conditions into multiple personalization blocks, and it should work.

 

 


     Manoj
     Find me on LinkedIn

Avatar

Community Advisor

Hello @_Manoj_Kumar_ i have split that in to multiple perso blocks and it did not help. We tried also redo all logic with pre-processing instructions which makes the whole perso block with 2000 conditions 100 lines but still on delivery it fails with the query to complex. We will try to upgrade and will let you know as mentioned above.

 

Marcel