Die meisten Cloudflare Turnstile-Fehler sind nicht zufällig. Sie lassen sich in drei Kategorien einteilen: Fehler in der Anfragephase (Ihre Übermittlung an die API wird abgelehnt), Fehler in der Ergebnisphase (Abfrage schlägt fehl oder Zeitüberschreitung) und Fehler bei der Zielseitenvalidierung (die API gibt ein gültiges Token zurück, die Seite lehnt es jedoch weiterhin ab).
Die drei größten Turnstilespezifischen Probleme sind:
- Falsche genaue Seiten-URL – insbesondere auf Cloudflare-Challenge-Seiten, wo der Kontext strenger ist
- Falscher Sitekey – vom falschen Element oder einer anderen Widget-Instanz erfasst
- Token wurde über den falschen Pfad angewendet – die Seite erwartet
cf-turnstile-response, einen Rückruf oder beides
CaptchaAI löst Turnstile mit einer 100 % Erfolgsquotein weniger als 10 Sekunden. Wenn Ihre Integration fehlschlägt, liegt das Problem fast immer in den von Ihnen gesendeten Parametern oder in der Art und Weise, wie Sie das zurückgegebene Token anwenden.
Turnstilespezifische Fehlerstellen
Bevor Sie sich mit Fehlercodes befassen, sollten Sie die drei Dinge verstehen, die Turnstile von anderen Captcha-Typen unterscheiden:
1. Die genaue Seiten-URL ist wichtiger
Turnstile-Token sind eng an den Seitenkontext gebunden. Auf Cloudflare-Challenge-Seiten (dem ganzseitigen Verifizierungsbildschirm) führt die Verwendung der falschen URL – sogar eines geringfügig anderen Pfads – zur Ablehnung des Tokens.
2. Zwei Token-Anwendungspfade
Das zurückgegebene Token kann auf zwei Arten angewendet werden, und die Verwendung des falschen Tokens schlägt stillschweigend fehl:
| Methode | Wann zu verwenden |
|---|---|
Verstecktes Feld – einfügen in cf-turnstile-response (und manchmal g-recaptcha-response) |
Wenn die Seite ein Standardformular mit einer versteckten Eingabe verwendet |
Rückruffunktion – Rufen Sie die in turnstile.render() oder data-callback definierte Funktion auf |
Wenn die Seite eine programmgesteuerte Validierung anstelle eines Formulars verwendet |
3. Token sind nur für den einmaligen Gebrauch bestimmt
Ein Turnstile-Token kann nur einmal verifiziert werden. Wenn Ihre Automatisierung es versehentlich zweimal übermittelt oder eine Racebedingung vorliegt, schlägt der zweite Versuch fehl.
Fehler in der Anforderungsphase
Dies geschieht, wenn die Aufgabe an https://ocr.captchaai.com/in.php gesendet wird.
ERROR_WRONG_USER_KEY
Ursache: Das Format des API-Schlüssels ist falsch (sollte 32 Zeichen lang sein).
Fix: Überprüfen Sie den Schlüssel voncaptchaai.com/api.php.
ERROR_KEY_DOES_NOT_EXIST
Ursache: Der Schlüssel ist korrekt formatiert, aber nicht mit einem aktiven Konto verknüpft.
Fix: Überprüfen Sie Ihr Dashboard. Stellen Sie sicher, dass das Konto aktiv ist und der Schlüssel korrekt ist.
ERROR_ZERO_BALANCE
Ursache: In Ihrem Plan sind keine kostenlosen Threads enthalten.
Fix: Warten Sie, bis Threads frei werden, die Parallelität verringert wird oder ein Upgrade durchgeführt wird.
ERROR_PAGEURL
Ursache: Der Parameter pageurl fehlt.
Fix: Fügen Sie die vollständige URL hinzu – Protokoll, Domäne und Pfad:
pageurl=https://example.com/login
ERROR_BAD_PARAMETERS
Ursache: Erforderliche Parameter fehlen oder sind fehlerhaft. Für Turnstilee sind folgende Parameter erforderlich:
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key |
Zeichenfolge | Ja | Ihr CaptchaAI-API-Schlüssel |
method |
Zeichenfolge | Ja | Muss turnstile sein |
sitekey |
Zeichenfolge | Ja | Turnstile-Widget-Sitekey |
pageurl |
Zeichenfolge | Ja | Vollständige Seiten-URL |
Optional, aber nützlich:
| Parameter | Typ | Beschreibung |
|---|---|---|
action |
Zeichenfolge | Wert von data-action oder des Parameters action von turnstile.render() |
proxy |
Zeichenfolge | Format: login:password@IP:PORT |
proxytype |
Zeichenfolge | HTTP, HTTPS, SOCKS4, SOCKS5 |
Fix: Überprüfen Sie, ob alle erforderlichen Felder vorhanden und korrekt eingegeben sind.
HTML- oder 500/502-Antworten
Ursache: Vorübergehender serverseitiger Fehler.
Fix: Warten Sie 5–10 Sekunden und versuchen Sie es erneut.
So finden Sie den Turnstile-Sitekey
Der Sitekey ist der am häufigsten falsche Parameter. Hier finden Sie es:
Option 1 – das data-sitekey-Attribut:
<div class="cf-turnstile" data-sitekey="0x4AAAAAAAB1example"></div>
Option 2 – ein turnstile.render()-Aufruf:
turnstile.render('#captcha-container', {
sitekey: '0x4AAAAAAAB1example',
callback: function(token) {
document.getElementById('cf-turnstile-response').value = token;
}
});
Option 3 – Abfangen des Render-Aufrufs (erweitert):
Wenn der Sitekey dynamisch geladen wird, können Sie turnstile.render neu definieren, bevor das Widget initialisiert wird, um die Parameter zu erfassen:
// Inject this before the Turnstile script loads
const originalRender = window.turnstile.render;
window.turnstile.render = function(container, params) {
console.log('Sitekey:', params.sitekey);
console.log('Action:', params.action);
return originalRender.call(this, container, params);
};
Fehler in der Ergebnisphase
Dies geschieht beim Abfragen von https://ocr.captchaai.com/res.php.
CAPCHA_NOT_READY
Kein Fehler. Die Lösung ist noch im Gange. Das Lösen des Turnstilees bei CaptchaAI dauert normalerweise weniger als 10 Sekunden.
Fix: 5 Sekunden warten und erneut abfragen.
ERROR_WRONG_ID_FORMAT
Ursache: Die Captcha-ID enthält nicht numerische Zeichen.
Fix: Verwenden Sie die genaue ID, die von in.php zurückgegeben wurde, unverändert.
ERROR_WRONG_CAPTCHA_ID
Ursache: Die ID stimmt mit keiner übermittelten Aufgabe überein.
Fix: Stellen Sie sicher, dass Sie die richtige ID aus der Übermittlungsantwort abfragen.
ERROR_EMPTY_ACTION
Ursache: Der Parameter action fehlt in Ihrer Umfrageanfrage.
Fix: Immer action=get einschließen:
https://ocr.captchaai.com/res.php?key=YOUR_KEY&action=get&id=CAPTCHA_ID&json=1
Hinweis: Verwenden Sie für Turnstile immer
json=1in Ihrer Umfrageanfrage. Die JSON-Antwort kann denuser_agentdes Solvers enthalten, den einige Cloudflare-geschützte Seiten für eine erfolgreiche Token-Validierung benötigen.
ERROR_CAPTCHA_UNSOLVABLE
Ursache: Die Lösung ist fehlgeschlagen – möglicherweise falscher Sitekey oder eine nicht unterstützte Seitenkonfiguration.
Fix: Überprüfen Sie den Sitekey, aktualisieren Sie die Anfrage und versuchen Sie es erneut.
ERROR_INTERNAL_SERVER_ERROR
Ursache: Serverseitiges Problem.
Fix: Warten Sie 10 Sekunden und versuchen Sie es erneut.
Fehler bei der Validierung der Zielseite
Diese sind am schwierigsten zu debuggen, da die API ein Token erfolgreich zurückgibt, die Zielseite es jedoch ablehnt.
Fehler 1: Token in das falsche Feld eingefügt
Symptom: Das Formular wird gesendet, aber die Seite gibt einen Validierungsfehler zurück oder wird aktualisiert.
Turnstileseiten können den Token in verschiedenen Bereichen erwarten:
cf-turnstile-response– der primäre versteckte Turnstileeingangg-recaptcha-response– einige Seiten verwenden dies als Fallback
Fix: Überprüfen Sie das Formular der Seite für beide Felder. In der Browser-Automatisierung:
# Selenium — inject into both fields for safety
driver.execute_script("""
var cfField = document.querySelector('[name="cf-turnstile-response"]');
var gField = document.querySelector('[name="g-recaptcha-response"]');
if (cfField) cfField.value = arguments[0];
if (gField) gField.value = arguments[0];
""", token)
Fehler 2: Rückruf nicht ausgelöst
Symptom: Das Token befindet sich im Feld, aber das Formular blockiert weiterhin die Übermittlung.
Ursache: Die Seite verwendet eine Callback-Funktion anstelle (oder zusätzlich) des ausgeblendeten Felds. Der Rückruf verarbeitet zusätzliche Logik wie das Aktivieren der Schaltfläche „Senden“ oder das Senden einer AJAX-Anfrage.
Fix: Rückruf finden und aufrufen:
// Check data-callback attribute
const callbackName = document.querySelector('.cf-turnstile').getAttribute('data-callback');
if (callbackName && window[callbackName]) {
window[callbackName](token);
}
// Or if it was passed in turnstile.render()
// You may need to intercept the render call to capture it
Fehler 3: Falscher genauer Seitenkontext
Symptom: Token wurde trotz korrektem Sitekey und neuer Lösung abgelehnt.
Ursache: Der in der API-Anfrage verwendete pageurl stimmt nicht mit dem tatsächlichen Kontext der Seite überein. Dies kommt besonders häufig vor bei:
- Cloudflare-Challenge-Seiten – Die URL kann wichtige Abfrageparameter oder Pfadkomponenten enthalten
- Einzelseitige Anwendungen – die sichtbare URL kann von der URL abweichen, die das Turnstile-Widget geladen hat
Fix: Verwenden Sie die DevTools-Registerkarte „Netzwerk“, um die genaue URL zu finden, von der das Turnstile-Widget geladen wird. Verwenden Sie diese URL als pageurl.
Fehler 4: Wiederverwendung des Tokens
Symptom: Die erste Lösung funktioniert, die folgenden schlagen fehl.
Ursache: Turnstilemarken sind für den einmaligen Gebrauch bestimmt. Nach der Überprüfung durch den Cloudflare-Server wird das Token ungültig.
Fix: Fordern Sie für jede Formularübermittlung eine neue Lösung an. Token nicht zwischenspeichern oder wiederverwenden.
Schnelle Referenz zum Beheben von Fehlern
| Fehler/Symptom | Bühne | Wahrscheinliche Ursache | Beheben |
|---|---|---|---|
ERROR_WRONG_USER_KEY |
Senden | Ungültiger API-Schlüssel | Überprüfen Sie den 32-stelligen Schlüssel |
ERROR_KEY_DOES_NOT_EXIST |
Senden | Ungültiger Schlüssel | Überprüfen Sie das Dashboard |
ERROR_ZERO_BALANCE |
Senden | Keine freien Threads | Warten oder Plan aktualisieren |
ERROR_PAGEURL |
Senden | pageurl fehlt |
Vollständige URL hinzufügen |
ERROR_BAD_PARAMETERS |
Senden | Sitekey, Methode oder PageURL fehlen | Überprüfen Sie alle erforderlichen Felder |
CAPCHA_NOT_READY |
Umfrage | Lösung läuft | Warten Sie 5 Sekunden und versuchen Sie es erneut |
ERROR_WRONG_ID_FORMAT |
Umfrage | Nicht numerische Captcha-ID | Verwenden Sie die genaue ID von in.php |
ERROR_WRONG_CAPTCHA_ID |
Umfrage | Ungültige Captcha-ID | Überprüfen Sie die Einreichungs-ID |
ERROR_EMPTY_ACTION |
Umfrage | action=get fehlt |
Aktionsparameter hinzufügen |
| Token von Seite abgelehnt | Validierung | Falsches Feld, Rückruf nicht ausgelöst, falsche URL | Überprüfen Sie den Feldnamen, rufen Sie einen Rückruf an und überprüfen Sie die genaue Seiten-URL |
| Die zweite Lösung schlägt fehl | Validierung | Wiederverwendung von Token | Fordern Sie pro Einreichung ein neues Token an |
Python: Komplette Turnstile-Lösung
import time
import requests
API_KEY = "YOUR_CAPTCHAAI_API_KEY"
SITEKEY = "0x4AAAAAAAB1example"
PAGE_URL = "https://example.com/login"
SUBMIT_URL = "https://ocr.captchaai.com/in.php"
RESULT_URL = "https://ocr.captchaai.com/res.php"
def solve_turnstile(api_key, sitekey, pageurl):
"""Submit a Turnstile challenge and return the solved token."""
# Submit
submit_resp = requests.post(
SUBMIT_URL,
data={
"key": api_key,
"method": "turnstile",
"sitekey": sitekey,
"pageurl": pageurl,
"json": 1,
},
timeout=30,
)
submit_resp.raise_for_status()
submit_data = submit_resp.json()
if submit_data.get("status") != 1:
raise RuntimeError(f"Submit failed: {submit_data}")
captcha_id = submit_data["request"]
print(f"Task created — captcha ID: {captcha_id}")
# Wait before first poll (Turnstile is fast — 10 seconds is usually enough)
time.sleep(10)
# Poll for result
for _ in range(60):
result_resp = requests.get(
RESULT_URL,
params={
"key": api_key,
"action": "get",
"id": captcha_id,
"json": 1,
},
timeout=30,
)
result_resp.raise_for_status()
result_data = result_resp.json()
if result_data.get("request") == "CAPCHA_NOT_READY":
time.sleep(5)
continue
if result_data.get("status") == 1:
return result_data["request"]
raise RuntimeError(f"Polling error: {result_data}")
raise TimeoutError("Turnstile solve timed out")
# Usage
token = solve_turnstile(API_KEY, SITEKEY, PAGE_URL)
print(f"Solved token: {token[:80]}...")
# Inject into cf-turnstile-response and/or g-recaptcha-response
# Then submit the form
Node.js: Komplette Turnstile-Lösung
const API_KEY = "YOUR_CAPTCHAAI_API_KEY";
const SITEKEY = "0x4AAAAAAAB1example";
const PAGE_URL = "https://example.com/login";
const SUBMIT_URL = "https://ocr.captchaai.com/in.php";
const RESULT_URL = "https://ocr.captchaai.com/res.php";
function sleep(ms) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
async function solveTurnstile(apiKey, sitekey, pageurl) {
// Submit
const submitResp = await fetch(SUBMIT_URL, {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
key: apiKey,
method: "turnstile",
sitekey: sitekey,
pageurl: pageurl,
json: "1",
}),
});
const submitData = await submitResp.json();
if (submitData.status !== 1) {
throw new Error(`Submit failed: ${JSON.stringify(submitData)}`);
}
const captchaId = submitData.request;
console.log(`Task created — captcha ID: ${captchaId}`);
// Turnstile is fast — wait 10 seconds before first poll
await sleep(10_000);
// Poll for result
for (let i = 0; i < 60; i++) {
const resultResp = await fetch(
`${RESULT_URL}?${new URLSearchParams({
key: apiKey,
action: "get",
id: captchaId,
json: "1",
})}`
);
const resultData = await resultResp.json();
if (resultData.request === "CAPCHA_NOT_READY") {
await sleep(5_000);
continue;
}
if (resultData.status === 1) {
return resultData.request;
}
throw new Error(`Polling error: ${JSON.stringify(resultData)}`);
}
throw new Error("Turnstile solve timed out");
}
// Usage
solveTurnstile(API_KEY, SITEKEY, PAGE_URL)
.then((token) => {
console.log(`Solved token: ${token.slice(0, 80)}...`);
// Inject into cf-turnstile-response and/or g-recaptcha-response
})
.catch(console.error);
Turnstile vs. Cloudflare Challenge: Womit haben Sie es zu tun?
| Signal | Turnstile | Cloudflare Challenge |
|---|---|---|
| Was Sie sehen | Eingebettetes Widget auf der Seite (Kontrollkästchen oder unsichtbar) | Ganzseitiger Cloudflare-Verifizierungsbildschirm |
| Was CaptchaAI zurückgibt | Ein Token zum Einfügen in das Formular | Ein cf_clearance-Cookie |
| API-Methode | turnstile |
cloudflare_challenge |
| Proxy erforderlich? | Optional | Ja (erforderlich) |
Wenn Sie an einer ganzseitigen Cloudflare-Challenge teilnehmen (kein eingebettetes Widget), benötigen Sie dasCloudflare Challenge-LöserStattdessen wird ein cf_clearance-Cookie zurückgegeben und ein Proxy benötigt.
FAQ
Warum schlägt das Turnstile fehl, auch wenn die Anfrage korrekt aussieht?
Die drei häufigsten Ursachen: (1) pageurl ist leicht falsch – insbesondere auf Cloudflare-Challenge-Seiten, (2) der Sitekey wurde vom falschen Element erfasst oder (3) das Token wird in das falsche Feld oder den falschen Callback-Pfad eingefügt.
Was ist der häufigste Turnstilefehler?
Verwendung der falschen genauen Seiten-URL. Turnstile-Tokens sind eng an den Seitenkontext gebunden – selbst ein anderer Pfad oder fehlende Abfrageparameter können zur Ablehnung führen.
Was bedeutet CAPCHA_NOT_READY?
Die Lösung ist noch im Gange. Warten Sie 5 Sekunden und fragen Sie erneut ab. Das Lösen des Turnstilees dauert in der Regel weniger als 10 Sekunden.
Was soll ich tun, wenn die API ein Token zurückgibt, die Seite es aber trotzdem ablehnt?
- Stellen Sie sicher, dass
pageurlgenau mit der Seite übereinstimmt, auf der das Widget geladen wird. - Überprüfen Sie, ob die Seite das Token in
cf-turnstile-response,g-recaptcha-responseoder beiden erwartet. - Überprüfen Sie, ob die Seite eine Callback-Funktion anstelle (oder zusätzlich zu) einem versteckten Feld verwendet.
- Stellen Sie sicher, dass der Token nur einmal verwendet wird – Turnstile-Token sind für den einmaligen Gebrauch bestimmt.
Unterstützt CaptchaAI Proxys für Turnstile?
Ja. Fügen Sie Ihrer Anfrage proxy und proxytype hinzu. Proxys sind für eigenständige Turnstile-Widgets optional, werden aber auf Cloudflare-Challenge-Seiten empfohlen.
Was ist der Unterschied zwischen Turnstile und Cloudflare Challenge?
Turnstile ist ein eingebettetes Widget, das einen Token zurückgibt. Cloudflare Challenge ist eine ganzseitige Überprüfung, die ein cf_clearance-Cookie zurückgibt. Sie verwenden unterschiedliche API-Methoden und unterschiedliche Integrationsmuster, obwohl es sich bei beiden um Cloudflare-Produkte handelt.
Korrigieren Sie Ihren Turnstile-Workflow
Wenn Ihre Turnstile-Integration fehlschlägt:
- Überprüfen Sie den Sitekey – Extrahieren Sie ihn aus
data-sitekeyoderturnstile.render() - Überprüfen Sie die Seiten-URL – Verwenden Sie die genaue URL, einschließlich Protokoll und Pfad
- Überprüfen Sie den Token-Pfad – Verwendet die Seite
cf-turnstile-response,g-recaptcha-responseoder einen Rückruf? json=1verwenden – Verwenden Sie beim Abfragen von Turnstile-Ergebnissen immer JSON-Antworten- Token nicht wiederverwenden – Fordern Sie für jede Einreichung eine neue Lösung an
Beginnen Sie mit demCaptchaAI Turnstilelöser, überprüfen Sie Ihre Parameter anhand derAPI-Dokumente, und lesenSo funktioniert Cloudflare Turnstilewenn Sie Hintergrundinformationen zur Widget-Mechanik benötigen.
Iterationsprotokoll
| Iteration | Konzentrieren Sie sich | Änderungen |
|---|---|---|
| Entwurf 1 | Struktur und Inhalt | Erster Entwurf zur Fehlerbehebung – 3 Fehlerstufen, Tabelle mit zu behebenden Fehlern, FAQ |
| Entwurf 2 | Technische Genauigkeit | Fehlercodes, Turnstileparameter und Tokenpfade anhand von captchaai.com/api-docs. überprüft. Parametertabellen hinzugefügt. Bestätigt method=turnstile und beide Felder cf-turnstile-response / g-recaptcha-response. |
| Entwurf 3 | Code und Injektionstiefe | Lösungsbeispiele für Python und Node.js hinzugefügt. Sitekey-Extraktionsmethoden hinzugefügt (3 Ansätze). Selen-Injektionscode für beide Token-Felder hinzugefügt. Rückruferkennungscode hinzugefügt. |
| Entwurf 4 | Differenzierungsinhalt | Vergleichstabelle Turnstile vs. Cloudflare Challenge hinzugefügt. json=1-Anforderungshinweis für user_agent hinzugefügt. Render-Interception-Technik für dynamische Sitekeys hinzugefügt. |
| Entwurf 5 | Endgültige Qualitätssicherungspolitur | Es wurde überprüft, dass alle Fehlercodes mit den offiziellen Dokumenten übereinstimmen. Kurzreferenztabelle hinzugefügt. Verschärftes Intro. Warnung zu Einweg-Token hinzugefügt. Bestätigte Querverweise zu Cluster-Artikeln. FAQ-Antworten sind schemabereit. |
Visuelles Asset-Briefing
Heldenbild
- Alt-Text: Entwickler beheben Cloudflare Turnstile-Fehler – Anforderungsfluss, Token-Injektion und Validierungsfehler
- Muss anzeigen: Technischer Fehlerbehebungsablauf mit Fehlerphasen und Fehlerbehebungspfaden
- Dateiname: cloudflare-turnstile-errors-troubleshooting-hero.png
Bild im Artikel 1
- Platzierung: Nach „Fehler im Ergebnisstadium“
- Typ: Entscheidungsbaum
- Alt-Text: Entscheidungsbaum für Cloudflare Turnstile-Fehler – Anforderungsfehler vs. Abfragefehler vs. Seitenablehnung
- Dateiname: cloudflare-turnstile-error-decision-tree.png
Bild im Artikel 2
- Platzierung: Nach „Fehler bei der Zielseitenvalidierung“
- Typ: Ursachen-und-Lösungen-Diagramm
- Alt-Text: Diagramm, das zeigt, warum Turnstile-Tokens abgelehnt werden, und die Lösung für jede Ursache
- Dateiname: cloudflare-turnstile-validation-causes-fixes.png
Verwandte Artikel
- Cloudflare Challenge: Wie es funktioniert
- GeeTest vs. reCAPTCHA Vergleich
- Cloudflare Turnstile Token-Ablauf