Erreurs de l’API DeepSeek : diagnostic et résolution
Rechercher les erreurs d'API deepseekabo, les dépassements de temps de connexion et les problèmes avec les clients de coding. Commencez par une petite requête, puis suivez les étapes de l'erreur retournée.
Sur cette page
Commencer iciUtiliser des données de connexion correctesEnvoyer une demande de diagnosticRéférence d'état et de notificationCorriger l'authentification et l'accès au modèleCorriger les erreurs de contingent, de solde et de parallèleCorriger les demandes non soutenues et les grands contextesCorriger 502 Bad GatewayCorriger 504 Gateway TimeoutCorrection des dépassements de temps de connexion, erreurs DNS et TLSListe de vérification Claude Code CLIListe de vérification du CodexListe de vérification OpenCodeUne réponse s'efface au milieuRépéter sans boucle continuePréparer un rapport d'assistance utileapi.example.invalid est une adresse d’exemple. Utilisez l’URL de base indiquée dans les paramètres de connexion de votre compte DeepSeek ABO.
Commencer ici#
- Noter la version client, le modèle sélectionné, le chemin de demande, le statut HTTP, le message d'erreur et l'heure avec fuseau horaire. Noter un identifiant de requête retourné si disponible; il n'est pas garanti.
- Vérifier Votre abonnement, Consommation et le mode de facturation de la clé sous Clés API. La connexion au site Web et la clé API d'inférence sont des données d'accès différentes.
- Testez la requête minimale ci-dessous avec la même clé et le même réseau que le client défectueux. Un appel de chat-complications réussi ne confirme ni messages, ni réponses, ni outils client avancés.
- Lire l'état et le message en commun. Les erreurs peuvent être emballées différemment; un texte utile peut être inclus dans
error.message,error.code,detailou dans une simple réponse proxy HTML.
Supprimer les clés, les en-têtes d'authentification, les cookies, le code privé et les raccourcis avant de les partager. Ne pas envoyer une sortie complète de l'environnement et ne pas activer un protocole HTTP détaillé avec une vraie clé.
Utiliser des données de connexion correctes#
| Client | Configuration de l'URL de base | Emplacement final de la demande |
|---|---|---|
| OpenAI SDK / Chat Completions | https://api.example.invalid/v1 | /v1/chat/completions |
OpenCode avec @ai-sdk/openai-compatible | https://api.example.invalid/v1 | /v1/chat/completions |
Claude Code CLI, ANTHROPIC_BASE_URL | https://api.example.invalid | /v1/messages |
Codex, fournisseur de réponses base_url | https://api.example.invalid/v1 | /v1/responses |
Pour les SDK, le critère final n'est pas inclus dans l'URL de base Claude Code /v1/messages; utiliser l'origine sans /v1. L'hôte du site deepseeksub.com n'est pas l'hôte de l'API d'inférence. Le proxy public représente les chemins ci-dessus et /v1/modelsprêt; ne vous fiez pas à des chemins inédits ou /v1/responses/compact.
Utiliser deepseek-flash, deepseek-v4-proou son Alias de service deepseek-pro. Un tarif appelé Pro ne choisit pas automatiquement le modèle Pro. Les anciennes clés peuvent être limitées à Flash; voir Modèles et compatibilité.
Envoyer une demande de diagnostic#
Kit CODING_PLAN_API_KEY sécurisé dans le terminal de la commande, comme décrit ci-dessous: Clés API. Ces exemples de shell utilisent la syntaxe macOS/Linux. Les utilisateurs de Windows peuvent utiliser l'exemple de python avec l'environnement PowerShell sous clé API. Démarrer rapidement l'API.
Vérifiez d’abord la résolution DNS, la connexion TLS et l’accessibilité HTTP sans clé ni génération :
curl --silent --show-error --connect-timeout 10 --max-time 20 \
--output /dev/null --write-out 'HTTP %{http_code}\n' \
https://api.example.invalid/v1/modelsUn refus d'authentification, normalement 401, confirme une réponse HTTP, mais pas la clé, le modèle ou la fonction Upstream. HTTP 000 cURL est l'identification d'une réponse manquante, pas l'état du serveur. 502/503/504 signifie qu'un composant HTTP a répondu, mais que le chemin du service doit être examiné.
Envoyez ensuite une brève demande de texte. Elle peut consommer des quotas ou des crédits API. La commande ne se répète pas automatiquement. La limite de 90 secondes est un budget diagnostique, pas une garantie de latence.
curl --silent --show-error --connect-timeout 10 --max-time 90 \
--write-out '\nHTTP %{http_code}; total %{time_total}s\n' \
https://api.example.invalid/v1/chat/completions \
-H "Authorization: Bearer ${CODING_PLAN_API_KEY:?Set CODING_PLAN_API_KEY first}" \
-H 'Content-Type: application/json' \
--data '{"model":"deepseek-flash","messages":[{"role":"user","content":"Say hello briefly."}],"max_tokens":128,"stream":false}'Les erreurs HTTP n'entraînent pas nécessairement un code d'extension cURL à zéro; lisez l'état d'exécution. Lorsqu'un reasoning est activé, un petit budget de sortie peut être utilisé avant le texte final de la réponse. finish_reason et consommation avant que vous ne considériez le texte vide comme une erreur de connexion.
Installer pour Python openai et httpxet fixe ensuite des limites de temps explicites; désactive les répétitions SDK pendant le diagnostic:
import os
import httpx
from openai import OpenAI
client = OpenAI(
api_key=os.environ["CODING_PLAN_API_KEY"],
base_url="https://api.example.invalid/v1",
timeout=httpx.Timeout(90.0, connect=10.0),
max_retries=0,
)
response = client.chat.completions.create(
model="deepseek-flash",
messages=[{"role": "user", "content": "Say hello briefly."}],
max_tokens=128,
stream=False,
)
print(response.choices[0].message.content)La limite de temps de lecture Python limite l'attente des données réseau, pas nécessairement la durée totale d'un flux.
Référence d'état et de notification#
Les clients, les proxys et les fournisseurs Upstream peuvent les emballer autrement ou fournir d'autres erreurs. HTTP 502/504 et 422 ci-dessous décrivent les réponses possibles aux postes intermédiaires ou aux fournisseurs, pas de codes de facturation spécifiques.
| État | Message ou symptôme | Première étape |
|---|---|---|
| 400 | Unsupported request field, Unsupported model | Supprimer les champs non pris en charge; utiliser un identifiant de modèle de service |
| 400 | Stored Responses are not enabled | Supprimer: store ou envoyer: store: false; Envoyer l'historique de manière explicite |
| 400 | Hosted tools require a separate tariff, Custom tool format is not enabled | Supprimer l'outil hébergé ou personnalisé non pris en charge; utiliser les outils de fonction client pris en charge |
| 400 | Only metered text input is enabled, Tools must be an array, Only a single completion is supported | Utiliser du texte, un tableau d'outils pris en charge et: n: 1 ou lâcher: n |
| 400 | MULTI_INVALID_OUTPUT_LIMIT, MULTI_UNSUPPORTED_OVERRIDE | Utiliser la limite de sortie entière positive; supprimer les overbooks de routage et les options non prises en charge: extra_body Options |
| 401 | API key required, ACCESS_DENIED | Vérifier les données d'accès transmises, le déroulement et la révocation |
| 403 | MODEL_DENIED, ACCESS_DENIED | Vérifier les qualifications de modèle de la clé et l'accès au compte |
| 402 | INSUFFICIENT_BALANCE | Vérifier les crédits API, les montants réservés et le mode de facturation |
| 404 | Point d'évaluation/modèle introuvable | Vérifiez l'hôte. /v1Chemin et modèle définitifs |
| 409 | Conflit de demande/d'autorisation | Arrêter les doubles tentatives; signaler le conflit persistant |
| 413 | Demande trop grande, MULTI_REQUEST_TOO_LARGE | Réduire l'historique, les fichiers insérés et les schémas d'outils |
| 422 | Échec de la validation des paramètres | Corriger le champ appelé à partir d'une demande minimale |
| 429 | PLAN_EXHAUSTED | Vérifier le tarif actif, les fenêtres en vigueur, le contingent réservé et le mode de facturation |
| 429 | CONCURRENCY_LIMIT, RATE_LIMIT | Réduire les tâches parallèles ou la fréquence des demandes |
| 500 | Erreur interne / erreur du fournisseur | Sauvegarder les données de diagnostic; répéter les erreurs temporaires limitées |
| 502 | Passerelle défaillante (Bad Gateway) | Distinguer les erreurs client/réseau des erreurs de passerelle/upstream |
| 503 | MODEL_UNAVAILABLE, SIAPI_BILLING_UNAVAILABLE, SIAPI_BILLING_NOT_CONFIGUREDou erreur proxy | Vérifier l'état du service; les erreurs de facturation/configuration persistantes nécessitent un support |
| 504 | Délai d’attente de la passerelle dépassé (Gateway Timeout) | Réduire l'échelle de travail; distinguer les limites de temps de la passerelle et du client |
| Pas de statut HTTP | Dépassement du temps, ADN, TLS, rupture de connexion | Suivre les étapes du réseau ci-dessous |
Corriger l'authentification et l'accès au modèle#
- Utilisez une clé de service créée par la clé API Clés APIet pas de jeton d'enregistrement Clerk ou de jeton officiel DeepSeek /OpenAI-/Anthropic-Schlüssel.
- Envoi de la demande de diagnostic
Authorization: Bearer <key>. Vérifiez les espaces supplémentaires, les substituants inchangés et les variables d'environnement manquantes dans le processus client réel. - Remplacez les clés expirées ou retirées et mettez à jour le client. Redémarrez les applications de bureau/IDE après avoir modifié leur source de données d'accès; une exportation shell ne met pas à jour une application en cours.
- Dans
MODEL_DENIEDEn cas d'absence d'une clé plus ancienne d'accès Pro, créez un nouveau modèle avec les modèles requis. Échangez une clé valide non seulement en raison de 502 ou d'un dépassement de temps. - Si l'accès est refusé, envoiez un message d'erreur corrigé au support et l'heure, jamais la clé complète.
Corriger les erreurs de contingent, de solde et de parallèle#
- Lisez le message:
PLAN_EXHAUSTED,RATE_LIMITetCONCURRENCY_LIMITnécessitent des mesures différentes. - Dans
PLAN_EXHAUSTEDVérifiez qu'un tarif autorisé est actif et que la demande de jetons consommés et réservés s'inscrit dans les deux fenêtres en vigueur. Votre abonnement; l'erreur ne garantit pas les champs de réinitialisation ou unRetry-AfterEn-tête. - Entrée rapide et budget de sortie si la réservation ne convient pas. Par consomme 3,5 fois le contingent équivalent Flash. Les demandes ouvertes ou imprécises peuvent conserver des réservations; une minuterie locale ne prouve pas la libération.
- Vérifiez le mode de facturation. Seul le tarif n'utilise jamais de crédits. Seul le crédit API n'utilise pas de tarifs. Automatiquement, si le solde est activé, le solde insuffisant peut entraîner les erreurs suivantes:
INSUFFICIENT_BALANCE. Le recours activé permet la consommation d'argent; décide consciemment. - Dans
CONCURRENCY_LIMITArrête les agents parallèles et attends les tâches en cours.RATE_LIMITArrêtez la boucle de demande et réduisez la fréquence. Les réservations non résolues nécessitent une assistance. - Notez
Retry-AfterDans le cas contraire, utilisez des intervalles d'attente limités pour des limites de taux temporaires. Certaines secondes d'attente ne résolvent pas une fenêtre de 5 heures ou 7 jours épuisée.
Corriger les demandes non soutenues et les grands contextes#
- Commencez par la pure demande de diagnostic de texte. Complétez le streaming, l'historique, les outils et les options de rétroaction individuellement.
- Supprimer
store: true,previous_response_id,background,metadataainsi que les paramètres qui remplacent le routage du fournisseur dans les requêtes directes. Ces options ne font pas partie de l’interface publique actuelle. Joignez l’historique de la conversation à la requête au lieu de vous appuyer sur des réponses stockées. - Supprimer les outils hébergés par le fournisseur comme
type: web_searchet les outils de réponse avec:type: custom. Les outils de schéma JSON exécutés du côté du client sont différents: Une fonction client appeléeweb_searchn'est pas rejeté pour son seul nom. - Utilisez du texte pour les médias refusés. La validation publique actuelle rejette les saisies de médias; les capacités du modèle Upstream ne suppriment pas cette restriction.
- Commencez une nouvelle conversation avec un bref résumé avec 413 erreurs de longueur contextuelle, supprimez les grands fichiers et les schémas d'outils inutilisés et réduisez le budget de sortie. La taille des messages HTTP et le contexte du modèle sont des limites distinctes.
- Commencez une nouvelle conversation en cas d'erreur par un jeu de thinking exclusivement crypté ou édité. Le pont a besoin d'une résonation de texte clair pour la lecture prise en charge; n'utilisez pas de résonation cryptée par le fournisseur pour d'autres services.
Corriger 502 Bad Gateway#
- État sécurisé, heure et réponse corrigée. Les erreurs HTML peuvent provenir d'un proxy avant une réponse de l'API JSON; ce n'est pas automatiquement un problème clé.
- Vérifier État du service La page d'état seule ne vérifie pas une seule demande; exécute le test ci-dessus sans clé.
- Renvoie également le test 502, pause la génération et l'hôte de connexion et l'heure. Processus de passerelle, connexion Upstream ou intermédiaires peuvent être impliqués; la cause nécessite des protocoles de service.
- Si l'accessibilité fonctionne, essayez une courte demande sans tâches parallèles. Ne casse qu'un seul client, comparez les paramètres URL et proxy. Comparez, si possible, un réseau alternatif pour limiter les problèmes locaux de proxy/VPN.
- Répétez au maximum deux fois après environ 2 et 5 secondes avec une dispersion aléatoire; arrêtez-vous ensuite et contactez le support. Vérifiez la consommation avant d'envoyer une nouvelle fois si la première demande a pu atteindre le modèle; une nouvelle demande peut entraîner un nouveau coût.
Corriger 504 Gateway Timeout#
- Confirmez une réponse HTTP-504 réelle.
APITimeoutError,ReadTimeout,ETIMEDOUTPar contre, le code d'exit 28 cURL sans réponse HTTP est un dépassement du temps client/réseau. - Noter le temps passé et si les données de flux sont arrivées. Les mêmes temps d'erreur indiquent une limite de temps, mais ne identifient pas le composant responsable.
- Essayez un nouveau prompt de texte court avec une limite de sortie plus petite et sans agents parallèles. En cas de succès, le contexte et les fonctions optionnelles s'ajoutent progressivement.
- Utilise le streaming pour les longues réponses si elles sont prises en charge. Il montre des progrès, mais ne supprime pas les limites d'exécution en amont ou proxy.
- Si le client indique d'abord sa durée de lecture/vide documentée à l'intérieur d'un budget fini. Une limite de temps supérieure ne répare pas HTTP 504 généré par la passerelle.
- Vérifiez la consommation et le quota réservé, puis appliquez la règle de nouvelle tentative limitée ci-dessous. Si de petites requêtes renvoient systématiquement une erreur 504, communiquez leurs heures à l’assistance.
Correction des dépassements de temps de connexion, erreurs DNS et TLS#
| Symptôme | Signification | Prochaine étape |
|---|---|---|
| Échec du code d'extension cURL 6 / résolution hôte | Échec de la requête DNS | Vérifier api.example.invalid; Vérifier le résolveur et le réseau |
| Code d'extension cURL 7 / Connexion refusée | Impossible de connecter TCP | Vérifier le pare-feu, le proxy, le VPN et le port 443. |
Code de sortie cURL 28 / ConnectTimeout / ETIMEDOUT | Dépassé | Distinguer la connexion de l'attente des données |
ReadTimeout / APITimeoutError | Le client a fini d'attendre | Comparer une requête courte; Vérifier la limite de temps de lecture et les répétitions |
| Erreur de certificat cURL 35 ou 60 / TLS | Échec de l'examen de la main ou du certificat | Vérifier l'heure du système, la mémoire du certificat et, le cas échéant, le CA d'organisation |
| Réinitialiser la connexion / flux séparé | L'interligne ou l'interligne a fermé le lien | Sauvegarder la sous-édition et comparer le chemin réseau |
- Exécutez le test sans clé dans le même environnement que le client: terminal, conteneur, hôte distant ou IDE. Un navigateur fonctionnant ailleurs ne confirme pas cet environnement.
- Vérifier
HTTP_PROXY,HTTPS_PROXYetALL_PROXYlocal sur routage obsolète. Ne publiez pas d'URL proxy avec des données d'accès. Notez les paramètres de réseau requis au lieu de les contourner aveuglément. - Désactivez d'abord les problèmes d'ADN, de pare-feu et de certificat. Ne désactivez pas l'essai TLS ni n'utilisez
curl -kcomme solution. - Si vous rencontrez des timeouts uniquement lorsque vous avez de grandes requêtes, que vous avez un contexte/une sortie réduit et que vous vérifiez les paramètres de connexion, de lecture et de diffusion.
- Arrêtez les boucles de répétition et vérifiez la consommation. Un délai ou l'annulation ne prouve ni le traitement d'upstream arrêté, ni la consommation de jetons zéro ou une réservation partagée.
Liste de vérification Claude Code CLI#
- Notation
claude --version. DéfinissezANTHROPIC_BASE_URL, puishttps://api.example.invalidet utilisez votre clé de service commeANTHROPIC_AUTH_TOKEN. Vérifier les données d'accès et les paramètres d'accès enregistrés contradictoires localement. - Kit
ANTHROPIC_MODELet les variables de modèle standard pour Opus/Sonnet/Haiku et les sous-agents de la Manuel du code Claude Le choix de modèle en arrière-plan peut échouer, même si le chat principal fonctionne. - Redémarrez le CLI dans ce terminal et testez une nouvelle conversation courte. Un test de message direct utilise
/v1/messagesunmessagesArray, un positifmax_tokensetanthropic-version: 2023-06-01. - Vérifiez à 404 un double
/v1ou un point d'appui non pris en charge. Vérifiez 400 outils, médias et données de thinking en utilisant les étapes ci-dessus. - Si Chat Completions fonctionne, mais que les messages ne fonctionnent pas, rapportez l'erreur Messages séparément. La conversion du journal ne confirme pas chaque fonction client. Ce guide shell s'applique au CLI; les intégrations de bureau/gérées peuvent utiliser d'autres paramètres.
Liste de vérification du Codex#
- Notation
codex --version. Configuration sécurisée et catalogue de modèles. Rassemblez les modifications; les tables TOML doubles peuvent empêcher le démarrage avant toute demande HTTP. - Dans
~/.codex/config.tomldoit:model_providerde s'adapter au tableau des fournisseurs;base_url, puishttps://api.example.invalid/v1etwire_api, puisresponses. Utilisez un identifiant de modèle de service et unenv_keyavec le nom de la variable d'environnement contenant votre clé. - Redémarrer dans cet environnement et tester une nouvelle session.
/v1/responsesTest utiliséinput,max_output_tokensetstore: false. Le succès du chat-complétement seul n'est pas un test du Codex. - Pour les recherches hébergées, les outils personnalisés, les réponses enregistrées ou les champs non pris en charge, suivez les étapes appropriées ci-dessus. Le client ne peut pas générer de requêtes prises en charge, enregistrer la version et les erreurs de support; l'échange répété de clés n'aide pas.
- Choisissez le chemin à 404 pendant la compression.
/v1/responses/compactn'est pas fourni par le proxy public actuel. Commencez une nouvelle session avec un bref résumé; vérifiez les compétences du fournisseur/modèle du client installé avant d'activer le compactage externe. - Vérifier les flux suspendus
stream_idle_timeout_ms,request_max_retriesetstream_max_retriesdans les paramètres du fournisseur. Désactivez les répétitions automatiques pendant le diagnostic, si elles sont prises en charge. Conservez les métadonnées du modèle existantes au lieu de copier la taille du contexte d'autres fournisseurs.
Liste de vérification OpenCode#
- Notation
opencode --version. Dans/connectChoisissezOtheret utilise le même identifiant de fournisseur que dansopencode.jsonpar exemple:coding-plan. - Utiliser
npm: "@ai-sdk/openai-compatible",options.baseURL: "https://api.example.invalid/v1"et un identifiant de modèle de service précis comme clé sousmodels. Un nom d'affichage n'est pas un identifiant de modèle API. - Rassemblez JSON valide, redémarrez si nécessaire et sélectionnez le modèle avec
/models. Si le fournisseur manque, vérifiez la syntaxe et l'emplacement avant de modifier les données d'accès. - Reconnectez la clé sous l'identifiant du fournisseur approprié en cas d'erreur d'authentification.
/v1exactement une fois, et ne pas ajouter:/chat/completions, puisbaseURL. - Essayez une nouvelle conversation courte, puis des outils et un contexte plus long. Suivez les étapes de demande/réseau lors d'une interruption de 400 ou d'une rupture de flux; notez les fournisseurs et les modèles d'assistance.
Une réponse s'efface au milieu#
- Vérifiez le signal final du protocole et les erreurs. HTTP 200 ne garantit pas la génération terminée au démarrage du flux.
- Distinction d'une limite de sortie (
finish_reason: lengthou un résultat de réponse incomplet) à partir d'un flux séparé. Une limite budgétaire nécessite une poursuite consciente ou un budget plus important; une interruption nécessite un diagnostic de réseau/temporaire. - Marquez les versions partielles comme incomplètes. N'influe pas sur une nouvelle génération et ne répète pas les actions d'outil partiellement exécutées. Vérifiez à l'avance si un outil a déjà modifié des fichiers ou exécuté des actions externes.
- Vérifier Consommation. L'absence de données finales de consommation peut laisser une réservation ouverte ou incertaine pour le vote. L'absence de données d'utilisation ou de connexion fermée ne signifie pas un coût zéro.
- Conserver le dernier type d'événement, le temps passé et le message d'erreur corrigé. Voir Réponses en streaming.
Répéter sans boucle continue#
Préciser les requêtes non valides et les erreurs d'authentification/accès avant les répétitions. Notez les limites temporaires de 429 ou 500/502/503/504 Retry-After s'il existe; sinon deux répétitions au maximum avec des temps d'attente et de dispersion croissants, arrêter après. Si le contingent est épuisé, il faut d'abord régler la fenêtre ou la facturation. Les erreurs persistantes de configuration du modèle/du calcul nécessitent un support.
Désactivez les répétitions qui se chevauchent dans le SDK, le client et votre propre script pendant le diagnostic. Les requêtes avec Timeout peuvent avoir déjà été exécutées; vérifiez la consommation et décidez d'envoyer à nouveau. La génération répétée est une nouvelle demande potentiellement payante, pas de poursuite garantie ou de répétition gratuite.
Préparer un rapport d'assistance utile#
Utiliser Aide & Contact et ajoutez les éléments suivants sans secrets ni contenu privé:
Time and timezone:
Client / version / operating system:
API host and final path (no query secrets):
Model ID / streaming on or off:
HTTP status, or network exception / cURL exit code:
Sanitized error code and message:
Elapsed time / whether response data arrived:
Request ID (only if returned):
Key billing mode / plan reset / pending usage:
Does the no-key probe work? Does one short text request work?
Minimal request with key and private prompt removed:Les paramètres de connexion ont été testés le 6 novembre 2026 contre la mise en œuvre du projet. Les paramètres du client peuvent changer en fonction de la version. Références: Configuration de la passerelle Claude Code, Référence de configuration du Codex, Fournisseur OpenCode personnaliséet Codes de sortie cURL.
Instructions mises à jour le 5 novembre 2026 · Tous les guides