CommunityCodierung & Entwicklunggithub.com

getedgehq/http-error-triage

Führen Sie diese Routine durch, bevor Sie aus einem HTTP-Fehler einer Drittanbieter-API Schlüsse ziehen. Trennt ein echtes Berechtigungs-/Kontingentproblem von einem CDN- oder WAF-Block, einem falschen Endpunkt oder einer Client-Signatur-Sperrung. Verwenden Sie dies immer, wenn eine API 401/403/402/429 zurückgibt und Sie kurz davor sind zu sagen: 'der Schlüssel ist tot', 'Guthaben ist aufgebraucht', 'der Plan hat keinen Zugriff' oder 'wir sind ratenbegrenzt'.

Was ist http-error-triage?

Diese Skill-Anleitung namens 'HTTP error triage' hilft Entwicklern und KI-Agenten, die wahre Ursache von HTTP-Fehlern (insbesondere 401, 403, 402, 429) bei Drittanbieter-APIs zu identifizieren, anstatt voreilige Schlüsse zu ziehen. Der Skill basiert auf einem realen Vorfall, bei dem ein fehlender User-Agent-Header zu einer sechstägigen Fehlinterpretation eines 403-Fehlers führte, obwohl der API-Schlüssel gültig und das Guthaben ausreichend war. Die Anleitung bietet drei einfache Kontrollen, die vor einer Diagnose durchgeführt werden sollten: 1) Senden der Anfrage mit ungültigen und ohne Anmeldedaten, um zu prüfen, ob der Fehler wirklich von Ihrem Schlüssel abhängt. 2) Zugriff auf eine nicht existierende URL und die Startseite, um zu erkennen, ob der Block auf Edge-Ebene (CDN/WAF) erfolgt. 3) Auslesen der Antwort-Header, um zu unterscheiden, ob der Fehler von der Infrastruktur (z.B. Cloudflare) oder der API stammt. Der Skill enthält außerdem eine Tabelle bekannter Signaturen für häufige Fehlerkonstellationen, Standard-Header-Empfehlungen für serverseitige API-Aufrufe (insb. User-Agent) und eine Anleitung zur Kostenmessung vor einer massiven Nutzung. Der Fokus liegt darauf, Fehlinterpretationen zu vermeiden und präzise Befunde zu liefern. Unterstützte Plattformen sind API-Clients in Python (urllib) und vergleichbare Umgebungen; die Prinzipien sind jedoch sprachunabhängig.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/getedgehq/skills/tree/main/http-error-triage

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

HTTP-Fehler-Triage (HTTP error triage)

Ein HTTP-Fehler sagt Ihnen, dass eine Anfrage fehlgeschlagen ist. Meistens sagt er Ihnen nicht, warum. Aus einem 403 zu schließen "der Schlüssel ist tot" ist eine Vermutung, die eine Zahl trägt.

Entstanden aus einem echten Vorfall (2026-07-30): Eine Drittanbieter-API zur Kontaktanreicherung gab für sechs Tage bei jedem Aufruf 403 error code: 1010 zurück. Dies wurde als "Schlüssel nicht berechtigt", "Guthaben aufgebraucht", "monatliches Kontingent erreicht" gedeutet. Auf dieser Annahme basierend wurde eine 756-zeilige Browser-Automatisierungs-Workaround gebaut, und ein Kunde wurde beinahe gebeten, einen Tarif zu überprüfen, der in Ordnung war. Die eigentliche Ursache war ein fehlender User-Agent, weshalb das CDN den Client am Edge sperrte. Ein Header behob das Problem: 200 OK, volle Daten, und das Guthaben war die ganze Zeit vorhanden.

Führen Sie diese drei Kontrollen vor Ihrer Diagnose durch

1. Die Kontrolle mit ungültigen Anmeldedaten. Senden Sie die gleiche Anfrage mit einem absichtlich ungültigen Schlüssel und noch einmal ganz ohne Schlüssel.

for label, key in [("real", REAL_KEY), ("garbage", "0"*36), ("empty", "")]:
    ...  # gleiche URL, gleiche Methode, gleiche Header

Wenn alle drei den gleichen Status und Body zurückgeben, liegt der Fehler nicht an Ihrem Schlüssel. Er enthält keine Informationen über Berechtigung, Kontingent oder Gültigkeit. Hören Sie auf, über den Schlüssel nachzudenken.

2. Die Kontrolle mit einem nicht existierenden Pfad. Fragen Sie einen Pfad an, der definitiv nicht existiert, und die Startseite der Website.

GET https://api.example.com/definitely-not-a-real-path-12345
GET https://api.example.com/
GET https://www.example.com/          # deren Marketing-Seite

Wenn der API-Fehler auch von der Marketing-Seite zurückkommt, werden Sie vor dem Origin-Server blockiert. Nichts am API-Aufruf wird helfen.

3. Lesen Sie die Antwort-Header, nicht nur den Body.

except urllib.error.HTTPError as e:
    print(e.code, e.headers.get("server"), e.read()[:200])

server: cloudflare bei einem "auth"-Fehler ist der verräterische Hinweis. Ebenso cf-ray, x-amzn-waf, akamai. Das sind Infrastruktur, nicht die API.

Bekannte Signaturen

SymptomTatsächliche UrsacheFix
403 + Body error code: 1010, server: cloudflareCloudflare hat die Client-Signatur gesperrtSenden Sie einen echten Browser-User-Agent
Gleicher Fehler für jeden Pfad inkl. /Edge/WAF-Block oder IP-SperreÄndern Sie UA, dann IP/Proxy
402Tatsächlich kein Guthaben mehr: Die Anfrage wurde authentifiziertAufladen; der Schlüssel ist in Ordnung
429 direkt nach einem ErfolgEchte RatenbegrenzungAnfragen verlangsamen, Backoff hinzufügen
400 mit einer FeldmeldungSie haben die API erreicht und die Auth wurde akzeptiertKorrigieren Sie die Nutzlast; das sind gute Nachrichten

Ein Validierungsfehler mit 400 ist ein Erfolgssignal für die Triage: Er beweist, dass die Authentifizierung akzeptiert wurde.

Standard-Header für jeden serverseitigen API-Aufruf

Python's urllib sendet User-Agent: Python-urllib/3.x, was viele WAFs sofort sperren. Setzen Sie immer:

headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
                  "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0 Safari/537.36",
    "Accept": "application/json",
    "Content-Type": "application/json",
}

Messen Sie dann die Kosten vor jeder Massenabfrage

Sobald es funktioniert, schätzen Sie die Ausgaben nicht. Lesen Sie die Nutzung vor und nach einem Aufruf und lesen Sie das eigene Abrechnungsfeld des Anbieters in der Antwort.

before = usage(); result = call(); after = usage()
print("berechnet:", result.get("billing"), "| gemessen:", before - after)

Was Sie melden sollten

Geben Sie an, was Sie getestet haben und was noch unbekannt ist. "Beide Schlüssel 403" ist kein Befund, wenn ein leerer Schlüssel den gleichen 403 zurückgibt. Sagen Sie stattdessen: "403 ist hier nicht aussagekräftig, ein Null-Schlüssel gibt ihn auch zurück; die Ursache liegt vorgelagert zur Authentifizierung."

Individual skills in this repo

This repo contains 18 individual skills — each has its own dedicated page.

getedgehq/agent-evals

Build evals for an AI agent that already does real work. Use when someone asks "how do I know my agent is right", wants to test an agent before trusting it, compare models on cost versus quality, or turn production failures into tests. Walks from first tasks and yes/no verifiers, to isolated environments, to a trace-driven improvement loop.

getedgehq/cli-ux-review

Audit a command-line tool for user-friendliness — clear situation / next-step / options in every output, colour-highlighted runnable commands, no raw jargon, no silent hangs. Invoke for "CLI UX audit", "review my CLI", "is this CLI intuitive", or before any CLI release.

getedgehq/generate-image

Generate images with OpenAI GPT Image 2 via the Codex CLI, billed through the user's ChatGPT Plus subscription (no OpenAI API key, no per-image API cost). Use when the user asks to create, generate, or make an image, picture, illustration, icon, hero graphic, or concept art from a text prompt.

getedgehq/harness-first

Diagnose and fix an unreliable, expensive, or unsafe LLM agent by auditing its harness (golden set, judge, cost caps, data layer, action approvals, tracing) before blaming or swapping the model. Use when someone says an agent is "burning tokens", "hallucinating", "brittle", gives inconsistent answers, asks whether to switch to a cheaper/better model, or wants to ship an agent or prompt change to customers.

getedgehq/linkedin-media-prep

Convert, crop, resize, and compress images and videos for optimal LinkedIn upload quality and file size. Use when the user wants to prepare a photo, image, or video for LinkedIn (profile picture, cover photo, post image, article featured image, post video, or video ad), optimize file size for LinkedIn, crop and resize for LinkedIn dimensions, convert HEIC/RAW/PNG/MOV to LinkedIn-ready JPEG or MP4, or mentions LinkedIn media requirements, specs, or limits.

getedgehq/monid

>-

getedgehq/opendraft

An 18-agent pipeline that turns one topic line into a drafted

getedgehq/people-search

Find and rank professional people for recruiting, partnerships, sales, or research from user-provided data, public web sources, an authenticated search session, or a connected provider. Use for people discovery, LinkedIn or Sales Navigator search design, profile-list ranking, or provider filter translation.

getedgehq/rocketlist

Turn a CV into a shortlist of live startup roles from Rocketlist's public job board, including adjacent job titles the person would never have searched for, each with its published salary, the evidence for the fit, and a direct apply link. Use for "find roles I would be a strong fit for", career pivots, remote or VC-backed job hunts, and salary-visible role discovery.

getedgehq/security-audit-checklist

Run a comprehensive security audit across application code, cloud infrastructure, containers, CI/CD pipelines, and infrastructure-as-code. Covers privacy compliance, OWASP basics, secret leakage, API security, IAM misconfigurations, storage exposure, Kubernetes hardening, and network security. Use when the user asks to audit, review, or harden app or cloud security, check for secrets, scan for XSS/SQLi, verify security headers, review Terraform/CloudFormation, audit AWS/GCP/Azure configs, or perform any security-focused review.

getedgehq/shadcn-first

>-

getedgehq/skills

Develop or review a branded long-form YouTube channel using Simon Kaiser's public creator-led approach: audience fit, recurring formats, natural brand integration, Time with Brand, and an organic, paid, and Shorts strategy. Use for channel strategy, format briefs, and pilots.

getedgehq/skills

Build a YouTube strategy, evidence-backed idea slate, and title plus thumbnail package using Paddy Galloway's public method. Use when planning a channel, choosing concepts, or preparing a video before filming.

getedgehq/skills

Build or review a buyer-centered strategic narrative using Andy Raskin's public method. Use for sales or investor deck stories, homepage positioning, keynotes, launch narratives, and why-now messaging.

getedgehq/skills

Turn a product URL, launch brief, or approved script into a production-ready launch video. Use for product reveals, feature announcements, SaaS launches, and narrated product films; not for generic explainers or editing existing footage.

getedgehq/strip-image-ai-metadata

Strip C2PA and AI-generation metadata from images (PNG, JPEG, WebP) to remove "Generated by AI" / "ChatGPT" / "DALL-E" labels that platforms like LinkedIn, Instagram, and X display. Use when the user wants to clean AI-generated images before posting, remove AI attribution from photos, strip C2PA manifests, sanitize image metadata for professional use, or verify whether an image contains C2PA data.

getedgehq/top-down-comms

>-

getedgehq/workplan

Create, update, or close work plans for multi-step tasks. Use when starting refactors, bug lists, feature work, migrations, or any task with 2+ steps. Also use after auto-compaction to re-orient. Triggers: "workplan", "work plan", "create a plan", "what's the plan", "where was I", or when Claude detects

Verwandte Skills