Hi Kris,
Thanks for your question. It is nice to see the progress with voting contest set up on your site.
When a user tries to vote and see the error message (Request failed), the browser console shows a 406 Not Acceptable response. This means that the server was not able to provide a valid reply in the format expected by the browser.
Issue Summary
The request works when opened directly in the browser (GET), but fails with
406 Not Acceptable
when sent via JavaScript (POST).
This confirms the issue is caused by the LiteSpeed/ModSecurity firewall (WAF).
Why it Happens
-
The POST request has a larger payload (~
35 KB
) and includes parameters such as
task=participant.ajaxVote
that trigger a security rule.
-
With a direct GET request, the firewall does not detect a problem, so the response is returned normally.
In short, this is a server-side security configuration issue, not an software bug, and it needs to be addressed at the hosting/server level.
Solution
-
Check the ModSecurity audit log to see which rule ID is triggered.
-
Whitelist or disable that specific rule for this request/URL.
-
If you are on shared hosting, ask your hosting provider to adjust the WAF rules for this script:
index.php?option=com_competition&task=participant.ajaxVote
(e.g., the affected path: index.php?option=com_competition...
).