Hoping someone can help me with turnstile. I had disabled the contact page due to massive spam attacks a few years ago and I just read about turnstile of recent. I am trying to enable it, but failed to get it to work. I do not see the verify you are human
button on my contact page. Testing the contact page, I get this erorr when I submit.
Human verification failed for this form, please try again
The log shows
[2025-09-21 04:13:51] grav.DEBUG: Turnstile validation - entire form data: ["name","email","message"] [] []
[2025-09-21 04:13:51] grav.DEBUG: Turnstile validation - raw POST data keys: ["data","cf-turnstile-response","__form-name__","__unique_form_id__","form-nonce"] [] []
[2025-09-21 04:13:51] grav.DEBUG: Turnstile validation - token present: NO [] []
[2025-09-21 04:13:51] grav.WARNING: Turnstile validation failed: missing token response [] []
[2025-09-21 04:13:51] grav.WARNING: Form Captcha (turnstile) validation failed: [/contact] Details: {"error":"missing-input-response"} [] []
I did create a widget at cloudflare and have inputted my keys under form:
turnstile:
theme: light
site_key: 0xxxxxxd3J
secret_key: 0x4xxxxx7_1PQ
Added these in my form.md
.
.
.
- name: message
label: Message
size: long
placeholder: Enter your message
type: textarea
validate:
required: true
pattern: '^((?!https?:\/\/)(?:\R|.))*$'
message: 'Links not allowed.'
- name: captcha
type: turnstile
theme: light
.
.
.
.
process:
- turnstile: true
- email:
from: "{{ config.plugins.email.from }}"
I have also added these from above suggestion with no go output.
{% block javascripts %}
{% do assets.addJs('https://challenges.cloudflare.com/turnstile/v0/api.js', {'priority':130, 'loading': 'defer'}) %}
{% include 'partials/statCounter.html.twig' %}
{% endblock %}
{{ assets.js() }}
Set this to false
js_pipeline_include_externals: false
Lastly, I am using the Receptar theme which has not been updated since 5 years ago.