Troubleshooting

Cloudflare Turnstile Fehler und Fehlerbehebung

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:

  1. Falsche genaue Seiten-URL – insbesondere auf Cloudflare-Challenge-Seiten, wo der Kontext strenger ist
  2. Falscher Sitekey – vom falschen Element oder einer anderen Widget-Instanz erfasst
  3. 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=1 in Ihrer Umfrageanfrage. Die JSON-Antwort kann den user_agent des 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 Turnstileeingang
  • g-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?

  1. Stellen Sie sicher, dass pageurl genau mit der Seite übereinstimmt, auf der das Widget geladen wird.
  2. Überprüfen Sie, ob die Seite das Token in cf-turnstile-response, g-recaptcha-response oder beiden erwartet.
  3. Überprüfen Sie, ob die Seite eine Callback-Funktion anstelle (oder zusätzlich zu) einem versteckten Feld verwendet.
  4. 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:

  1. Überprüfen Sie den Sitekey – Extrahieren Sie ihn aus data-sitekey oder turnstile.render()
  2. Überprüfen Sie die Seiten-URL – Verwenden Sie die genaue URL, einschließlich Protokoll und Pfad
  3. Überprüfen Sie den Token-Pfad – Verwendet die Seite cf-turnstile-response, g-recaptcha-response oder einen Rückruf?
  4. json=1 verwenden – Verwenden Sie beim Abfragen von Turnstile-Ergebnissen immer JSON-Antworten
  5. 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
Kommentare sind für diesen Artikel deaktiviert.

Verwandte Beiträge

Comparisons Headless vs. Headed Chrome für CAPTCHA-Tests in eigener QA
Wann sich Headless-Chrome und wann Headed-Chrome für CAPTCHA-Tests in eigenen CI- und QA-Pipelines eignet, und welche Auswirkungen die Wahl auf Stabilität und L...

Wann sich Headless-Chrome und wann Headed-Chrome für CAPTCHA-Tests in eigenen CI- und QA-Pipelines eignet, und...

Apr 17, 2026
Comparisons WebDriver vs. Chrome DevTools Protocol in eigener CAPTCHA-QA
Vergleich von Web Driver und Chrome Dev Tools Protocol für QA-Tests gegen die eigene CAPTCHA-Integration: Stärken, Grenzen und Einsatzempfehlungen.

Vergleich von Web Driver und Chrome Dev Tools Protocol für QA-Tests gegen die eigene CAPTCHA-Integration: Stär...

Apr 17, 2026