Troubleshooting

ERROR_NO_SLOT_AVAILABLE: Queue Management Solutions

ERROR_NO_SLOT_AVAILABLE means all CaptchaAI workers for your requested CAPTCHA type are busy. This is a transient error — wait and retry.


Why This Happens

Cause Frequency
Peak usage hours Common during business hours
Burst of concurrent requests When you submit many tasks at once
Specific type overloaded Some CAPTCHA types have fewer workers
Temporary capacity constraint Rare, auto-resolves in seconds

Basic Retry Logic

import time
import requests


def submit_with_slot_retry(api_key, method, params, max_retries=5):
    """Submit task with automatic retry on NO_SLOT_AVAILABLE."""
    delay = 3

    for attempt in range(max_retries):
        resp = requests.post("https://ocr.captchaai.com/in.php", data={
            "key": api_key,
            "method": method,
            "json": 1,
            **params,
        }, timeout=30)
        result = resp.json()

        if result.get("status") == 1:
            return result["request"]

        error = result.get("request", "")

        if error == "ERROR_NO_SLOT_AVAILABLE":
            print(f"No slot available. Retry in {delay}s (attempt {attempt + 1})")
            time.sleep(delay)
            delay = min(delay * 1.5, 15)  # Cap at 15 seconds
            continue

        # Non-retriable error
        raise RuntimeError(f"Submit error: {error}")

    raise RuntimeError("Max retries exceeded — no slots available")

Throttled Batch Submission

Avoid triggering NO_SLOT by pacing your submissions:

import time
import requests


def submit_batch_throttled(api_key, tasks, rate_per_second=2):
    """Submit tasks at a controlled rate."""
    interval = 1.0 / rate_per_second
    task_ids = []

    for task in tasks:
        while True:
            resp = requests.post("https://ocr.captchaai.com/in.php", data={
                "key": api_key,
                "method": task["method"],
                "json": 1,
                **task["params"],
            }, timeout=30)
            result = resp.json()

            if result.get("status") == 1:
                task_ids.append(result["request"])
                break

            if result.get("request") == "ERROR_NO_SLOT_AVAILABLE":
                time.sleep(5)
                continue

            raise RuntimeError(result.get("request"))

        time.sleep(interval)

    return task_ids

Pre-Check Capacity

Check if slots are likely available before submitting large batches:

def check_capacity(api_key):
    """Quick check: submit a small test to see if slots are open."""
    resp = requests.post("https://ocr.captchaai.com/in.php", data={
        "key": api_key,
        "method": "base64",
        "body": "/9j/4AAQSkZJRg==",  # Tiny test image
        "json": 1,
    }, timeout=10)
    result = resp.json()

    if result.get("request") == "ERROR_NO_SLOT_AVAILABLE":
        return False
    return True

Scheduling Around Peak Hours

CaptchaAI capacity varies by time:

Time (UTC) Capacity Recommendation
00:00–06:00 High availability Best for batch jobs
06:00–12:00 Moderate Normal operations
12:00–18:00 Peak demand Expect occasional NO_SLOT
18:00–24:00 Moderate Good for batches
import datetime


def should_batch_now():
    """Check if current time is good for batch processing."""
    hour = datetime.datetime.utcnow().hour
    if 0 <= hour < 6:
        return True  # Off-peak
    if 18 <= hour < 24:
        return True  # Moderate
    return False  # Peak hours — use slower rate

Troubleshooting

Issue Cause Fix
Persistent NO_SLOT for minutes Heavy platform load Wait 5-10 minutes and retry
Only certain types affected Type-specific capacity Try off-peak or reduce batch size
Error appears in bursts Submitting too fast Throttle to 2-3 tasks/second
Happens only at certain times Peak hours Schedule batches for off-peak

FAQ

How long should I wait between retries?

Start with 3 seconds and increase by 50% each retry, capping at 15 seconds. Most slot issues resolve within 5-10 seconds.

Is NO_SLOT billed?

No. Failed submissions are not charged. Only successful solves are billed.

Should I switch providers on NO_SLOT?

No. Brief slot unavailability is normal for all providers. Implement retry logic instead — it's simpler and more reliable.



Handle capacity gracefully — get CaptchaAI.

Discussions (0)

No comments yet.