I'm not sure what label=problem #2 is supposed to do, because you aren't numbering your problems. Even a “safe” title such as
\begin{boxProblem}{abc} Description \end{boxProblem}
will produce nothing if \ref{problem abc} is used; only \pageref would print something sensible.
A label should only contain standard printable characters or underscores; other characters are actually allowed, but control sequences such as \exists definitely aren't. I'm inclined to think you wouldn't like to do something like
\pageref{problem $(\exists n\in Z)(x^2 + y^2 = z^2)$}
anyway. For instance, spaces would count and, even if that would be going to work,
\pageref{problem $(\exists n\in Z)(x^2+y^2=z^2)$}
would not refer to the stated problem.
A possible solution is to use the xparse library and add a (parenthesized) optional argument for a label when the title is not “label safe”.
\documentclass{article} \usepackage[many]{tcolorbox} \tcbuselibrary{xparse} \NewTColorBox{boxProblem}{O{sidebyside=false, lower separated = true} m D(){#2}}{ colback=purple!5!white, colframe=violet, colupper=violet!50!black, fontupper=\bfseries, fonttitle=\bfseries, label = {problem #3}, title={#2}, #1 } \begin{document} \begin{boxProblem}{abc} Description \end{boxProblem} \begin{boxProblem}{$(\exists n\in Z)(x^2 + y^2 = z^2)$}(FLT) Description \end{boxProblem} \pageref{problem abc} \pageref{problem FLT} \end{document}

The braces around {problem #3} protect against having = in the title or optional label argument.
Or just drop label=#2 altogether.
label. To make the error go away, it suffices to replacelabel = problem #2,bylabel = problem,but this won't lead to uniquely labeled boxes. You could use a counter or another way to label them, e.g. by using a third argument. What do you prefer?